SUMMARY When opening the Advanced Search dialog, Digikam crashes for me STEPS TO REPRODUCE 1. Start Digikam 2. Open the Advanced Search dialog OBSERVED RESULT Digikam crashes. Thread 1 "digikam" received signal SIGSEGV, Segmentation fault. 0x00007ffff4d766d2 in QObject::setObjectName(QString const&) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 (gdb) bt #0 0x00007ffff4d766d2 in QObject::setObjectName(QString const&) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #1 0x00007ffff7a9c7c4 in Digikam::SearchFieldChoice::setupValueWidgets(QGridLayout*, int, int) (this=0x55555708d330, layout=0x555556cd3370, row=3, column=3) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchfields.cpp:2184 #2 0x00007ffff7a97c54 in Digikam::SearchField::setup(QGridLayout*, int) (this=0x55555708d330, layout=0x555556cd3370, line=3) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchfields.cpp:1066 #3 0x00007ffff7a84be4 in Digikam::SearchFieldGroup::addField(Digikam::SearchField*) (this=0x555556298fd0, field=0x55555708d330) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchfieldgroup.cpp:64 #4 0x00007ffff7a7e927 in Digikam::SearchGroup::setup(Digikam::SearchGroup::Type) (this=0x5555563e9700, type=Digikam::SearchGroup::FirstGroup) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchgroup.cpp:104 #5 0x00007ffff7a77335 in Digikam::SearchView::createSearchGroup() (this=0x55555783c010) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchview.cpp:280 #6 0x00007ffff7a7657d in Digikam::AbstractSearchGroupContainer::addSearchGroup() (this=0x55555783c010) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchview.cpp:63 #7 0x00007ffff7a76dd6 in Digikam::SearchView::setup() (this=0x55555783c010) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchview.cpp:205 #8 0x00007ffff7a75378 in Digikam::SearchWindow::SearchWindow() (this=0x5555569b0200) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchwindow.cpp:82 #9 0x00007ffff7aae6f1 in Digikam::SearchTabHeader::searchWindow() const (this=0x5555577d20a0) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchtabheader.cpp:426 #10 0x00007ffff7aaee16 in Digikam::SearchTabHeader::newAdvancedSearch() (this=0x5555577d20a0) at /home/krikar/dev/kde/digikam/core/utilities/searchwindow/searchtabheader.cpp:515 #11 0x00007ffff7a723fa in Digikam::SearchTabHeader::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5555577d20a0, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffffffcb60) at /home/krikar/dev/kde/digikam/build/core/utilities/searchwindow/gui_searchwindow_obj_autogen/EWIEGA46WW/moc_searchtabheader.cpp:128 #12 0x00007ffff4d7d1f0 in () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #13 0x00007ffff5919fb6 in QAbstractButton::clicked(bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #14 0x00007ffff591a1de in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #15 0x00007ffff591b6b3 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #16 0x00007ffff591b875 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #17 0x00007ffff5864cf6 in QWidget::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #18 0x00007ffff59c0283 in QPushButton::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #19 0x00007ffff5821dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #20 0x00007ffff582ae77 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #21 0x00007ffff4d4619a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #22 0x00007ffff582a0a7 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #23 0x00007ffff587fed4 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #24 0x00007ffff58831f4 in () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #25 0x00007ffff5821dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #26 0x00007ffff582abb8 in QApplication::notify(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #27 0x00007ffff4d4619a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #28 0x00007ffff512a4d8 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #29 0x00007ffff512bb45 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #30 0x00007ffff51037ac in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #31 0x00007fffd2ac4ffe in () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #32 0x00007fffe592b17d in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #33 0x00007fffe592b400 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 EXPECTED RESULT The Advanced Search dialog should be opened. SOFTWARE/OS VERSIONS Linux/KDE Plasma: KDE neon 5.24 KDE Plasma Version: 5.24.1 KDE Frameworks Version: 5.91.0 Qt Version: 5.15.3 Digikam built from sources (879b7a80be6525b77741df2f9afc9bbeee20fa9c) ADDITIONAL INFORMATION It seems to me as the label (in method SearchFieldChoice::setupValueWidgets) is never created after setting the model. m_comboBox->m_label is NULL when the crash happens. Changing the setModel to setSearchModel appears to fix the crash, see patch below. diff --git a/core/utilities/searchwindow/searchfields.cpp b/core/utilities/searchwindow/searchfields.cpp index 058c08493b..677db67cd7 100644 --- a/core/utilities/searchwindow/searchfields.cpp +++ b/core/utilities/searchwindow/searchfields.cpp @@ -2173,7 +2173,7 @@ void SearchFieldChoice::setupValueWidgets(QGridLayout* layout, int row, int colu connect(m_model, SIGNAL(checkStateChanged(QVariant,bool)), this, SLOT(checkStateChanged())); - m_comboBox->setModel(m_model); + m_comboBox->setSearchModel(m_model); // set object name for style sheet
Right. This is due to mys last changes to rename internal method setModel to setSearchModel to prevent hidden redefintion of functions with Qt API. Sounds like i forget to rename this call... Gilles
Git commit bd50917da8c01492fdc5916f49d21598f39203a3 by Gilles Caulier. Committed on 18/02/2022 at 17:21. Pushed by cgilles into branch 'master'. Fix crash due to wrong called method to setup search model. FIXED-IN: 8.0.0 M +1 -1 core/utilities/searchwindow/searchfields.cpp https://invent.kde.org/graphics/digikam/commit/bd50917da8c01492fdc5916f49d21598f39203a3