Bug 216790 - configuration dialogue crashes getting icon for export tools not loaded
Summary: configuration dialogue crashes getting icon for export tools not loaded
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Setup-Plugins (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-30 12:09 UTC by Jonathan Marten
Modified: 2022-01-23 09:15 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.0


Attachments
Patch to fix (partial revert of r1050193) (552 bytes, patch)
2009-11-30 12:11 UTC, Jonathan Marten
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Marten 2009-11-30 12:09:18 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

The application crashes when trying to open the "Configure digiKam" preferences dialogue.  The relevant part of the backtrace is:

Thread 1 (Thread 0xb32f0740 (LWP 1921)):
[KCrash Handler]
#6  KIPI::Plugin::actions (this=0x0, widget=0x0) at /ws/trunk/kdegraphics/libs/libkipi/libkipi/plugin.cpp:89
#7  0xb77d6d9f in KIPI::PluginLoader::Info::icon (this=0xbd73640) at /ws/trunk/kdegraphics/libs/libkipi/libkipi/pluginloader.cpp:171
#8  0xb77d9e4d in PluginCheckBox (this=0xd63c650, info=0xbd73640, parent=0xd6372b0) at /ws/trunk/kdegraphics/libs/libkipi/libkipi/pluginloader.cpp:355
#9  0xb77d6f3c in ConfigWidget (this=0xd6372b0, parent=0xd638eb0) at /ws/trunk/kdegraphics/libs/libkipi/libkipi/pluginloader.cpp:380
#10 0xb77d6fd4 in KIPI::PluginLoader::configWidget (this=0xb55f038, parent=0xd638eb0) at /ws/trunk/kdegraphics/libs/libkipi/libkipi/pluginloader.cpp:344
#11 0x081000a1 in SetupPlugins (this=0xd637de8, parent=0x0) at /ws/trunk/extragear/graphics/digikam/utilities/setup/setupplugins.cpp:73
#12 0x080e80b2 in Setup (this=0xbfab998, parent=0x0) at /ws/trunk/extragear/graphics/digikam/utilities/setup/setup.cpp:224
#13 0x080e8b93 in Digikam::Setup::exec (parent=0x9cab200, page=Digikam::Setup::LastPageUsed) at /ws/trunk/extragear/graphics/digikam/utilities/setup/setup.cpp:336
#14 0x0823b1f7 in Digikam::DigikamApp::setup (this=0x9cab200) at /ws/trunk/extragear/graphics/digikam/digikam/digikamapp.cpp:2125
#15 0x0824b2ed in Digikam::DigikamApp::qt_metacall (this=0x9cab200, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbf8cb190)
    at /ws/BUILD.keelhaul/extragear-trunk-BUILD/graphics/digikam/digikam/digikamapp.moc:223
#16 0xb556f3f0 in QMetaObject::metacall (object=0x9cab200, cl=QMetaObject::InvokeMetaMethod, idx=74, argv=0xbf8cb190) at kernel/qmetaobject.cpp:237
#17 0xb558090b in QMetaObject::activate (sender=0xbd096a8, m=0x843d300, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3395
#18 0xb5a4e5bd in QAction::triggered (this=0xbd096a8, _t1=false) at .moc/debug-shared/moc_qaction.cpp:263
#19 0xb5a4fc37 in QAction::activate (this=0xbd096a8, event=QAction::Trigger) at kernel/qaction.cpp:1245
#20 0xb5f833c2 in QMenuPrivate::activateCausedStack (this=0x9ca24b8, causedStack=@0xbf8cb278, action=0xbd096a8, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:971
#21 0xb5f8a550 in QMenuPrivate::activateAction (this=0x9ca24b8, action=0xbd096a8, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1064
#22 0xb5f8f6b8 in QMenu::mouseReleaseEvent (this=0xb376ea0, e=0xbf8cbb44) at widgets/qmenu.cpp:2269
#23 0xb67f58ca in KMenu::mouseReleaseEvent (this=0xb376ea0, e=0xbf8cbb44) at /ws/trunk/kdelibs/kdeui/widgets/kmenu.cpp:469
#24 0xb5ac650f in QWidget::event (this=0xb376ea0, event=0xbf8cbb44) at kernel/qwidget.cpp:7903
#25 0xb5f8b3c2 in QMenu::event (this=0xb376ea0, e=0xbf8cbb44) at widgets/qmenu.cpp:2368
#26 0xb5a57e4d in QApplicationPrivate::notify_helper (this=0x9c245d8, receiver=0xb376ea0, e=0xbf8cbb44) at kernel/qapplication.cpp:4251
#27 0xb5a5b1c9 in QApplication::notify (this=0xbf8cc190, receiver=0xb376ea0, e=0xbf8cbb44) at kernel/qapplication.cpp:3837
#28 0xb6709197 in KApplication::notify (this=0xbf8cc190, receiver=0xb376ea0, event=0xbf8cbb44) at /ws/trunk/kdelibs/kdeui/kernel/kapplication.cpp:302
#29 0xb55682bd in QCoreApplication::notifyInternal (this=0xbf8cc190, receiver=0xb376ea0, event=0xbf8cbb44) at kernel/qcoreapplication.cpp:704
#30 0xb5a635a3 in QApplicationPrivate::sendMouseEvent (receiver=0xb376ea0, event=0xbf8cbb44, alienWidget=0x0, nativeWidget=0xb376ea0, buttonDown=0xb637cb18, lastMouseReceiver=@0xb637cb1c, 
    spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#31 0xb5aecd9f in QETWidget::translateMouseEvent (this=0xb376ea0, event=0xbf8cbfd8) at kernel/qapplication_x11.cpp:4294
#32 0xb5aeb653 in QApplication::x11ProcessEvent (this=0xbf8cc190, event=0xbf8cbfd8) at kernel/qapplication_x11.cpp:3499
#33 0xb5b1b16e in QEventDispatcherX11::processEvents (this=0x9c245b8, flags=@0xbf8cc06c) at kernel/qeventdispatcher_x11.cpp:132
#34 0xb55673a1 in QEventLoop::processEvents (this=0xbf8cc0d0, flags=@0xbf8cc0a8) at kernel/qeventloop.cpp:149
#35 0xb556761d in QEventLoop::exec (this=0xbf8cc0d0, flags=@0xbf8cc0d8) at kernel/qeventloop.cpp:197
#36 0xb556a11a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#37 0xb5a55044 in QApplication::exec () at kernel/qapplication.cpp:3590
#38 0x083131ed in main (argc=5, argv=0xbf8cc384) at /ws/trunk/extragear/graphics/digikam/digikam/main.cpp:195

It appears that, for plugins which are configured not to be loaded, d->m_plugin is NULL at pluginloader.cpp:171 (recently changed by r1050193).  Checking for d->m_plugin==NULL here and returning KIcon("unknown") does not crash and correctly opens the settings dialogue - and in the "Kipi Plugins" page all of the not-loaded plugins are shown with the "unknown" icon, thus confirming.
Comment 1 Jonathan Marten 2009-11-30 12:11:19 UTC
Created attachment 38708 [details]
Patch to fix (partial revert of r1050193)

Fixes the crash, although still displays the "unknown" icon for plugins that are not loaded.
Comment 2 caulier.gilles 2009-11-30 12:19:25 UTC
SVN commit 1056488 by cgilles:

fix crash in plugin loader about icon availability
fix headers
BUGS: 216790


 M  +2 -1      imagecollection.cpp  
 M  +0 -1      imagecollectionselector.cpp  
 M  +2 -4      imagecollectionshared.cpp  
 M  +2 -1      imageinfoshared.cpp  
 M  +0 -1      interface.cpp  
 M  +0 -1      plugin.cpp  
 M  +2 -2      pluginloader.cpp  
 M  +0 -1      uploadwidget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1056488
Comment 3 Jonathan Marten 2009-11-30 14:14:01 UTC
Many thanks for the quick fix!