luspi / photoqt Goto Github PK
View Code? Open in Web Editor NEWPhotoQt Image Viewer (mirror repo) - https://photoqt.org
License: GNU General Public License v2.0
PhotoQt Image Viewer (mirror repo) - https://photoqt.org
License: GNU General Public License v2.0
Loading multiple folders and then starting a slideshow causes it to get stuck between the first 2 images.
I had selected 700+ pictures in 4 folders containing sub-folders with the images and then selected randomize and loop and then started the slideshow before the weird behavior started.
I wasn't sure if I had updated to 2.6 on windows yet and checked the about dialog which said 2.5. So I downloaded and installed 2.6 installer from the website photoqt.org. However the about dialog still said 2.5, tested again in sandbox and same result, so it is not a leftover or failure to update. Upon closer inspection the features seem to be that of 2.5 with 2.6 features missing. The installer is labeled 2.6. Linux had proper version and features.
TL;DR Windows installer on photoqt.org appears to be 2.5 instead of claimed 2.6 version.
I have been using PhotoQT for a very long time as my primary viewer for images. I have always set an additional quit shortcut to ESC as this feels much more natural than using Q. A recent update made it so ESC is no longer able to quit the program which I have assigned in Settings > Shortcuts > Quit PhotoQT
Hi
I have photoqt 2.5 on Arch Linux, installed from AUR.
When I open photoqt, 'photoqt update' dialog shows up, I click on 'Continue' button
and then photoqt crashes.
Here is the backtrace of the crash:
Thread 7 (Thread 0x7fec60e7c640 (LWP 1897)):
#0 0x00007fec74e7e15a in __futex_abstimed_wait_common () from /usr/lib/libc.so.6
#1 0x00007fec74e80960 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libc.so.6
#2 0x00007fec75414cfc in QWaitConditionPrivate::wait (deadline=..., deadline=..., this=0x55e779592150) at thread/qwaitcondition_unix.cpp:146
#3 QWaitCondition::wait (this=this@entry=0x55e779a90d98, mutex=mutex@entry=0x55e779a90d90, deadline=...) at thread/qwaitcondition_unix.cpp:225
#4 0x00007fec779aebef in QSGRenderThreadEventQueue::takeEvent (wait=true, this=0x55e779a90d88) at /usr/include/qt/QtCore/qdeadlinetimer.h:68
#5 QSGRenderThread::processEventsAndWaitForMore (this=0x55e779a90cf0) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:936
#6 QSGRenderThread::run (this=0x55e779a90cf0) at /usr/src/debug/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1053
#7 0x00007fec7540d8cc in QThreadPrivate::start (arg=0x55e779a90cf0) at thread/qthread_unix.cpp:331
#8 0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#9 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6
Thread 6 (Thread 0x7fec62573640 (LWP 1896)):
#0 0x00007fec74e7e15a in __futex_abstimed_wait_common () from /usr/lib/libc.so.6
#1 0x00007fec74e80960 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libc.so.6
#2 0x00007fec626341fc in cnd_wait () at ../mesa-22.0.1/include/c11/threads_posix.h:155
#3 util_queue_thread_func () at ../mesa-22.0.1/src/util/u_queue.c:294
#4 0x00007fec6262d88c in impl_thrd_routine () at ../mesa-22.0.1/include/c11/threads_posix.h:87
#5 0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#6 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6
Thread 5 (Thread 0x7fec6ace3640 (LWP 1892)):
#0 0x00007fec74efa2af in poll () from /usr/lib/libc.so.6
#1 0x00007fec738bf976 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7fec640029e0, timeout=<optimized out>, context=0x7fec64000c30) at ../glib/glib/gmain.c:4516
#2 g_main_context_iterate.constprop.0 (context=context@entry=0x7fec64000c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
#3 0x00007fec738666c5 in g_main_context_iteration (context=0x7fec64000c30, may_block=1) at ../glib/glib/gmain.c:4276
#4 0x00007fec7560157a in QEventDispatcherGlib::processEvents (this=0x7fec64000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5 0x00007fec755ad88b in QEventLoop::exec (this=0x7fec6ace2bd0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6 0x00007fec75410a56 in QThread::exec (this=this@entry=0x7fec7760f640 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7 0x00007fec775b33a9 in QDBusConnectionManager::run (this=0x7fec7760f640 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /usr/src/debug/qtbase/src/dbus/qdbusconnection.cpp:179
#8 0x00007fec7540d8cc in QThreadPrivate::start (arg=0x7fec7760f640 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:331
#9 0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#10 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6
Thread 4 (Thread 0x7fec6894a640 (LWP 1894)):
#0 0x00007fec74e7e15a in __futex_abstimed_wait_common () from /usr/lib/libc.so.6
#1 0x00007fec74e80960 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libc.so.6
#2 0x00007fec626341fc in cnd_wait () at ../mesa-22.0.1/include/c11/threads_posix.h:155
#3 util_queue_thread_func () at ../mesa-22.0.1/src/util/u_queue.c:294
#4 0x00007fec6262d88c in impl_thrd_routine () at ../mesa-22.0.1/include/c11/threads_posix.h:87
#5 0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#6 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6
Thread 3 (Thread 0x7fec6a355640 (LWP 1893)):
#0 0x00007fec74efa2af in poll () from /usr/lib/libc.so.6
#1 0x00007fec738bf976 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7fec5c0025e0, timeout=<optimized out>, context=0x7fec5c000c30) at ../glib/glib/gmain.c:4516
#2 g_main_context_iterate.constprop.0 (context=context@entry=0x7fec5c000c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4206
#3 0x00007fec738666c5 in g_main_context_iteration (context=0x7fec5c000c30, may_block=1) at ../glib/glib/gmain.c:4276
#4 0x00007fec7560157a in QEventDispatcherGlib::processEvents (this=0x7fec5c000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#5 0x00007fec755ad88b in QEventLoop::exec (this=0x7fec6a354be0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6 0x00007fec75410a56 in QThread::exec (this=this@entry=0x55e77957c1e0) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7 0x00007fec769a9d00 in QQmlThreadPrivate::run (this=0x55e77957c1e0) at /usr/src/debug/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:155
#8 0x00007fec7540d8cc in QThreadPrivate::start (arg=0x55e77957c1e0) at thread/qthread_unix.cpp:331
#9 0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#10 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6
Thread 2 (Thread 0x7fec70cfb640 (LWP 1891)):
#0 0x00007fec74efa2af in poll () from /usr/lib/libc.so.6
#1 0x00007fec736b463b in ?? () from /usr/lib/libxcb.so.1
#2 0x00007fec736b637b in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3 0x00007fec70e74b12 in QXcbEventQueue::run (this=0x55e779474db0) at /usr/src/debug/qtbase/src/plugins/platforms/xcb/qxcbeventqueue.cpp:228
#4 0x00007fec7540d8cc in QThreadPrivate::start (arg=0x55e779474db0) at thread/qthread_unix.cpp:331
#5 0x00007fec74e815c2 in start_thread () from /usr/lib/libc.so.6
#6 0x00007fec74f06584 in clone () from /usr/lib/libc.so.6
Thread 1 (Thread 0x7fec71272d80 (LWP 1890)):
#0 0x00007fec74e8334c in __pthread_kill_implementation () from /usr/lib/libc.so.6
#1 0x00007fec74e364b8 in raise () from /usr/lib/libc.so.6
#2 0x00007fec74e20534 in abort () from /usr/lib/libc.so.6
#3 0x00007fec74e2045c in __assert_fail_base.cold () from /usr/lib/libc.so.6
#4 0x00007fec74e2f116 in __assert_fail () from /usr/lib/libc.so.6
#5 0x00007fec745e0e7f in LockSemaphoreInfo () from /usr/lib/libGraphicsMagick.so.3
#6 0x00007fec745b0238 in GetMagickInfo () from /usr/lib/libGraphicsMagick.so.3
#7 0x00007fec76f6fb42 in Magick::CoderInfo::CoderInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libGraphicsMagick++.so.12
#8 0x000055e7780aed4a in PQImageFormats::readFromDatabase() ()
#9 0x000055e7780b0815 in PQImageFormats::PQImageFormats() ()
#10 0x000055e77815f48b in PQStartup::performChecksAndMigrations() ()
#11 0x000055e778091e3e in PQStartup::qt_metacall(QMetaObject::Call, int, void**) ()
#12 0x00007fec76960396 in QQmlObjectOrGadget::metacall (this=0x7ffdca597f90, type=QMetaObject::InvokeMetaMethod, index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlobjectorgadget.cpp:51
#13 0x00007fec768621a8 in CallMethod (callType=QMetaObject::InvokeMetaMethod, callArgs=0x7fec69716598, engine=0x55e77956d580, argTypes=0x0, argCount=0, returnType=43, index=<optimized out>, object=...) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1318
#14 CallPrecise (object=..., data=..., engine=engine@entry=0x55e77956d580, callArgs=callArgs@entry=0x7fec69716598, callType=callType@entry=QMetaObject::InvokeMetaMethod) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1572
#15 0x00007fec76864182 in QV4::QObjectMethod::callInternal (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2130
#16 0x00007fec76873b5d in QV4::Moth::VME::interpret (frame=0x7ffdca5983a0, engine=0x55e77956d580, code=0x7fec69716550 " \270\025i\354\177") at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:757
#17 0x00007fec7687783f in QV4::Moth::VME::exec (frame=<optimized out>, engine=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:466
#18 0x00007fec768194ce in QV4::Function::call (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/jsruntime/qv4function.cpp:69
#19 0x00007fec76977f52 in QQmlJavaScriptExpression::evaluate (this=0x55e7795cca00, callData=0x7fec697164d8, isUndefined=0x0) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:212
#20 0x00007fec76932243 in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:224
#21 0x00007fec76933d0c in QQmlBoundSignal_callback (a=0x7ffdca59a040, e=0x55e7796d24e0) at ../../include/QtQml/5.15.3/QtQml/private/../../../../../../qtdeclarative/src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69
#22 QQmlBoundSignal_callback (e=0x55e7796d24e0, a=0x7ffdca59a040) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:341
#23 0x00007fec76957af5 in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x7ffdca59a040) at /usr/src/debug/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:104
#24 0x00007fec755e5fbe in doActivate<false> (sender=0x55e7795a4e40, signal_index=32, argv=0x7ffdca59a040) at kernel/qobject.cpp:3778
#25 0x00007fec77a0f787 in QQuickWindow::closing (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qquickwindow.cpp:583
#26 0x00007fec77a0581a in QQuickWindow::event (this=0x55e7795a4e40, e=0x7ffdca59a180) at /usr/src/debug/qtdeclarative/src/quick/items/qquickwindow.cpp:1836
#27 0x00007fec761a01c6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55e7795a4e40, e=0x7ffdca59a180) at kernel/qapplication.cpp:3637
#28 0x00007fec755b55aa in QCoreApplication::notifyInternal2 (receiver=0x55e7795a4e40, event=0x7ffdca59a180) at kernel/qcoreapplication.cpp:1064
#29 0x00007fec75afe97f in QGuiApplicationPrivate::processCloseEvent (e=0x7fec6c008ab0) at kernel/qguiapplication.cpp:2639
#30 QGuiApplicationPrivate::processCloseEvent (e=0x7fec6c008ab0) at kernel/qguiapplication.cpp:2629
#31 0x00007fec75ae86e5 in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#32 0x00007fec70e76f60 in xcbSourceDispatch (source=<optimized out>) at /usr/src/debug/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105
#33 0x00007fec73869163 in g_main_dispatch (context=0x7fec6c005010) at ../glib/glib/gmain.c:3417
#34 g_main_context_dispatch (context=0x7fec6c005010) at ../glib/glib/gmain.c:4135
#35 0x00007fec738bf9e9 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fec6c005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#36 0x00007fec738666c5 in g_main_context_iteration (context=0x7fec6c005010, may_block=1) at ../glib/glib/gmain.c:4276
#37 0x00007fec7560157a in QEventDispatcherGlib::processEvents (this=0x55e7795521c0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#38 0x00007fec755ad88b in QEventLoop::exec (this=0x7ffdca59a430, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#39 0x00007fec755b8fd7 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#40 0x000055e778087a46 in main ()
Version 2.9.1
Windows 11 22H2
PhotoQT is very likely to crash when pressing any key, even without any other input. Does not always happen but more often than not. I have not found a specific situation for it to happen or not to happen.
Does not happen on keys that by themselves(no modifier as the modifier key crashes) trigger a function.
I did not try and from the dependencies not sure if this image format is supported or not. But I would like to have it...
@luspi Tried to build 4.2 with Qt6 now, however it fails on the following:
[ 61%] Building CXX object CMakeFiles/photoqt.dir/cplusplus/other/pqc_validate.cpp.o
/usr/bin/clang++ -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -DPQMEXIV2 -DPQMEXIV2_ENABLE_BMFF -DPQMIMAGEMAGICK -DPQMLIBARCHIVE -DPQMLIBVIPS -DPQMLOCATION -DPQMMOTIONPHOTO -DPQMPOPPLER -DPQMPUGIXML -DPQMRAW -DPQMVERSION=\"4.2\" -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_MESSAGELOGCONTEXT -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_NO_KEYWORDS -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QMLINTEGRATION_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_QUICK_LIB -DQT_SQL_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/build/photoqt_autogen/include -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2 -I/opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/header -I/opt/local/include -I/opt/local/include/ImageMagick-6 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -isystem /opt/local/libexec/qt6/lib/QtQml.framework/Headers/6.4.3 -isystem /opt/local/libexec/qt6/lib/QtQml.framework/Headers/6.4.3/QtQml -isystem /opt/local/libexec/qt6/lib/QtCore.framework/Headers/6.4.3 -isystem /opt/local/libexec/qt6/lib/QtCore.framework/Headers/6.4.3/QtCore -isystem /opt/local/libexec/qt6/lib/QtCore.framework/Headers -iframework /opt/local/libexec/qt6/lib -isystem /opt/local/libexec/qt6/mkspecs/macx-clang -isystem /opt/local/libexec/qt6/include -isystem /opt/local/libexec/qt6/lib/QtQml.framework/Headers -isystem /opt/local/libexec/qt6/include/QtQmlIntegration -isystem /opt/local/libexec/qt6/lib/QtNetwork.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtQuick.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtGui.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtQmlModels.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtOpenGL.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtWidgets.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtSql.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtSvg.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtConcurrent.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtMultimedia.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtPrintSupport.framework/Headers -isystem /opt/local/libexec/qt6/lib/QtDBus.framework/Headers -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -std=gnu++17 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -mmacosx-version-min=14.0 -MD -MT CMakeFiles/photoqt.dir/cplusplus/other/pqc_validate.cpp.o -MF CMakeFiles/photoqt.dir/cplusplus/other/pqc_validate.cpp.o.d -o CMakeFiles/photoqt.dir/cplusplus/other/pqc_validate.cpp.o -c /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/other/pqc_validate.cpp
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:54:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<Value> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:256:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<DataValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:338:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<StringValueBase> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:420:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<StringValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:452:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<AsciiValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:540:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<CommentValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:627:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<XmpValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:718:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<XmpTextValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:800:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<XmpArrayValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:893:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<LangAltValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:981:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<DateValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:1082:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<TimeValue> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
In file included from /opt/local/include/exiv2/metadatum.hpp:27:
/opt/local/include/exiv2/value.hpp:1238:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<ValueType<T> > AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
In file included from /opt/local/include/exiv2/datasets.hpp:33:
/opt/local/include/exiv2/metadatum.hpp:47:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<Key> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:26:
/opt/local/include/exiv2/datasets.hpp:278:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<IptcKey> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:27:
/opt/local/include/exiv2/basicio.hpp:58:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<BasicIo> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:27:
/opt/local/include/exiv2/basicio.hpp:524:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
std::auto_ptr<Impl> p_;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:27:
/opt/local/include/exiv2/basicio.hpp:724:9: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
std::auto_ptr<Impl> p_;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
In file included from /opt/local/var/macports/build/_opt_svacchanda_SonomaPorts_graphics_photoqt/photoqt/work/photoqt-4.2/cplusplus/main.cpp:98:
In file included from /opt/local/include/exiv2/exiv2.hpp:28:
In file included from /opt/local/include/exiv2/bmffimage.hpp:27:
In file included from /opt/local/include/exiv2/image.hpp:28:
In file included from /opt/local/include/exiv2/exif.hpp:35:
/opt/local/include/exiv2/tags.hpp:143:17: error: no template named 'auto_ptr' in namespace 'std'; did you mean simply 'auto_ptr'?
typedef std::auto_ptr<ExifKey> AutoPtr;
^~~~~~~~~~~~~
auto_ptr
/opt/local/include/exiv2/config.h:105:3: note: 'auto_ptr' declared here
using auto_ptr = std::unique_ptr<T>;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Is it does to version incompatibility or something else? Macports has 0.27.6 at the moment: https://github.com/macports/macports-ports/blob/7aa619147e087b71b2da4a2f916adeb96cbb5859/graphics/exiv2/Portfile#L9
Right now there's an option called
"empty area around image" ticking it closes the viewer when clicking empty area around
Can a option be given that clicking left side empty area changes the image to previous one and
clicking right side empty area changes the image to next one
I think this feature was available in Google Picasa. Thanks
KDE Application Platform org.kde.Platform 6.6 system
Permanently-Deleting works.
Is there a way i could help/provide in more debuggable information?
This action works perfectly for aur-package.
This is what i could find - flatpak/flatpak#1253
/usr/ports/graphics/photoqt/work/photoqt-3.4/cplusplus/main.cpp:149:5: error: no member named 'setlocale' in namespace 'std'; did you mean simply 'setlocale'?
std::setlocale(LC_NUMERIC, "C");
^~~~~~~~~~~~~~
setlocale
/usr/include/locale.h:81:8: note: 'setlocale' declared here
char *setlocale(int, const char *);
^
1 error generated.
#include <clocale>
is missing.
Version: 3.4
clang-16
FreeBSD 13.2
Previously, to scroll through images, you had to turn the mouse wheel by one click. Now you need to make two clicks while scrolling the wheel to scroll to the next image. I would like to bring back the old behavior. Photoqt 2.1.1
Can't printscreen in fullscreen mode.
this is what it says if launched from terminal
QQmlApplicationEngine failed to load component
qrc:/mainwindow.qml:242:5: Type PQTrayIcon unavailable
qrc:/PQTrayIcon.qml:24:1: module "Qt.labs.platform" is not installed
I have built now v. 3.4 on Sonoma, however it crashes on launch:
svacchanda@Sergeys-MacBook-Air Develop % /opt/local/bin/photoqt
PhotoQt v3.4
> Validating configuration...
QSqlDatabasePrivate::addDatabase: duplicate connection name 'shortcutsdefault', old connection removed.
>> Done!
zsh: trace trap /opt/local/bin/photoqt
Windows shows rather raw name for filetypes if photoqt is set to handle them.
For example where filetype should be shown as PNG Image or Portable Network Graphics (with older pqt) it is pqt.pngfile instead, similar happens for every filetype that photoqt is set to handle even though those filetypes are not photoqt specific.
This name is shown in many different places where a "friendly" name is supposed to be shown, like choosing filetype when saving or in explorer (including thirdparty replacements which use the same string)
This issue appeared in v2.4, before that the names did change from default windows behaviour, but they did look more friendly. Tested different versions in windows sandbox to make sure it wasn't caused by anything else.
Tested in Windows 11 22000.493.
I am using Hyprland and would like to apply blur to PhotoQT, but because PhotoQT window is not fully tranparent, no blur is applied by Hyprland on PhotoQT window.
Hey, first time user of PhotoQt here, and let me start by saying that I'm really impressed with it so far!
Currently running PhotoQt v4.1 on Windows 10H22 (10.0.19045.3803)
Info from About > Configuration:
- Exiv2: 0.28.1
- pugixml: 1.13
- LibRaw: 0.21.1-Release
- QtPDF
- LibArchive: 3.6.2
- ImageMagick: 7.1.1
- FreeImage: 3.18
- DevIL: 180
- Video through Qt
- Qt image formats available:
avif, avifs, bmp, cur, gif, heic, heif, icns, ico, jpeg,
jpg, jxl, pbm, pdf, pgm, png, ppm, svg, svgz, tga,
tif, tiff, wbmp, webp, xbm, xpm,
I tried a code search first to see if it would turn up something relevant quick, and it seems I found the relevant part?
photoqt/qml/ongoing/PQWindowButtons.qml
Lines 95 to 104 in 42627ce
and
photoqt/qml/ongoing/PQWindowButtons.qml
Lines 117 to 126 in 42627ce
Ubuntu 22.04 development branch/beta with kernel 5.15.0-25-generic (on Wayland/gnome)
Launching photoqt makes a lot of lines in the journal logs:
apr 07 03:11:24 R00TB00K org.photoqt.PhotoQt.desktop[64710]: Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow.qml:257:5: QML PQThumbnailBar: Binding loop detected for property "y"
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow.qml:331:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow.qml:319:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/shortcuts/PQKeyShortcuts.qml:36:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQContextMenu.qml:319:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQContextMenu.qml:311:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQContextMenu.qml:305:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQThumbnailBar.qml:225:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQThumbnailBar.qml:211:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQLabels.qml:394:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQImage.qml:390:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQImage.qml:384:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/mainwindow/PQImage.qml:290:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/PQCmdReceived.qml:27:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/PQVariables.qml:70:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/PQVariables.qml:48:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/menumeta/PQMainMenu.qml:454:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/menumeta/PQMainMenu.qml:447:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/menumeta/PQMainMenu.qml:50:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/menumeta/PQMetaData.qml:364:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/elements/PQCheckbox.qml:69:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:25 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/menumeta/PQMetaData.qml:52:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/filedialog/PQFileDialog.qml:243:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/elements/PQComboBox.qml:98:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/elements/PQComboBox.qml:98:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/filedialog/parts/PQFileView.qml:642:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/filedialog/parts/PQFileView.qml:636:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/filedialog/parts/PQFileView.qml:65:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:27 R00TB00K org.photoqt.PhotoQt.desktop[64710]: qrc:/filedialog/parts/PQPlaces.qml:305:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
apr 07 03:11:35 R00TB00K systemd[1153]: app-gnome-org.photoqt.PhotoQt-64710.scope: Consumed 3.948s CPU time.
the program itself works properly after launch
To convert, I used the program xl-converter; the source files were PNG. Other viewers open these files without problems.
Hi
I was curious if you'd be interested to implement a sort by dominant/average color of image?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.