Giter Club home page Giter Club logo

Comments (5)

tsujan avatar tsujan commented on August 21, 2024

Confirmed (it's a little random). Thanks for reporting!

from libfm-qt.

tsujan avatar tsujan commented on August 21, 2024

Wait a minute! The backtrace I get doesn't have any line about LXQt:

#0  0x00007f3d6c8794f9 in Fm::FileDialog::firstSelectedDir() const () at /usr/lib/libfm-qt.so.3
#1  0x00007f3d6c87c471 in Fm::FileDialog::updateAcceptButtonState() () at /usr/lib/libfm-qt.so.3
#2  0x00007f3d6c87f247 in  () at /usr/lib/libfm-qt.so.3
#3  0x00007f3d81487a04 in  () at /usr/lib/libQt5Core.so.5
#4  0x00007f3d8147b40b in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#5  0x00007f3d821c4e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#6  0x00007f3d821cc816 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#7  0x00007f3d837fdd98 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.18
#8  0x00007f3d8144a1e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#9  0x00007f3d814a5ad8 in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#10 0x00007f3d814a62d2 in  () at /usr/lib/libQt5Core.so.5
#11 0x00007f3d78c27270 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#12 0x00007f3d78c28f69 in  () at /usr/lib/libglib-2.0.so.0
#13 0x00007f3d78c28fae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#14 0x00007f3d814a6691 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt5Core.so.5
#15 0x00007f3d70b5b282 in  () at /usr/lib/libQt5XcbQpa.so.5
#16 0x00007f3d8144882b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#17 0x00007f3d823bbdcb in QDialog::exec() () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f3d82d91fe9 in KoFileDialog::filename() () at /usr/lib/libkritawidgetutils.so.18
#19 0x00007f3d8383892a in KisMainWindow::saveDocument(KisDocument*, bool, bool, int) ()
    at /usr/lib/libkritaui.so.18
#20 0x00007f3d83839d46 in KisMainWindow::slotFileSaveAs() () at /usr/lib/libkritaui.so.18
#21 0x00007f3d8383e707 in  () at /usr/lib/libkritaui.so.18
#22 0x00007f3d8147aa06 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#23 0x00007f3d821be383 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5
#24 0x00007f3d821c0c06 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5
#25 0x00007f3d82346c35 in  () at /usr/lib/libQt5Widgets.so.5
#26 0x00007f3d8234e2fc in  () at /usr/lib/libQt5Widgets.so.5
#27 0x00007f3d8234f164 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5
#28 0x00007f3d82204e38 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#29 0x00007f3d8235149c in QMenu::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#30 0x00007f3d821c4e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#31 0x00007f3d821ccd91 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#32 0x00007f3d837fdd98 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.18
#33 0x00007f3d8144a1e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#34 0x00007f3d821cbd1a in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5
#35 0x00007f3d8221ffb7 in  () at /usr/lib/libQt5Widgets.so.5
#36 0x00007f3d822229a0 in  () at /usr/lib/libQt5Widgets.so.5
#37 0x00007f3d821c4e3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#38 0x00007f3d821cc816 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#39 0x00007f3d837fdd98 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.18
#40 0x00007f3d8144a1e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#41 0x00007f3d819bb634 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
    at /usr/lib/libQt5Gui.so.5
#42 0x00007f3d819bd186 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#43 0x00007f3d81994bbc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt5Gui.so.5
#44 0x00007f3d70b5b28d in  () at /usr/lib/libQt5XcbQpa.so.5
#45 0x00007f3d8144882b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#46 0x00007f3d81451b18 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#47 0x000056290c232e16 in main ()

I use the latest git libfm-qt.

EDIT: I was wrong. It's a bug in libfm-qt.

from libfm-qt.

tsujan avatar tsujan commented on August 21, 2024

Should be fixed by #159 -- I can't reproduce the crash with it, having used "Save As" 5 times.

BTW, Boudewijn Rempt should have said the bug could be avoided by enabling native file dialogs. Anyhow, there will be no difference with the patch.

from libfm-qt.

comicfans avatar comicfans commented on August 21, 2024

Wow your fix is so fast, so the root cause is that singleShot should use receiver version instead of just functor. nothing to do with mainloop.

from libfm-qt.

tsujan avatar tsujan commented on August 21, 2024

so the root cause is that singleShot should use receiver version instead of just functor. nothing to do with mainloop.

Sometimes, it's necessary to choose an appropriate object, whose destruction guarantees a lambda disconnection (this -- the dialog -- in this case). singleShot lambdas need that most of the time (but not always).

from libfm-qt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.