Bug 298237

Summary: Widget explorer is empty when using separate install dirs
Product: [Plasma] plasma4 Reporter: Christophe Marin <christophe>
Component: widget explorerAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: anaceciliamb, notmart
Priority: NOR    
Version: 4.9-git   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 4.10

Description Christophe Marin 2012-04-16 09:43:45 UTC
Using master

For various reasons, my setup is a bit exotic, every KDE module is installed in its own prefix, KDEDIRS, XDG paths and the libraries path are set accordingly.

No issue except with plasma. When trying to add widgets and/or activities, the bar is empty and the debug output seems to indicate that the code assumes that everything is installed in the same prefix (which is a bad assumption)

Debug output when pressing the button:

plasma-desktop(9940)/libplasma Plasma::PackageStructure::setPath: "/kde/inst/kactivities/share/apps/plasma/packages//org.kde.desktop.widgetexplorer" invalid, basePath is ""
plasma-desktop(9940)/libplasma Plasma::DeclarativeWidgetPrivate::execute: File name empty!
plasma-desktop(9940)/libplasma Plasma::Applet::listCategories: Unknown category:  "Newspaper Layout" says it is in the "Containments" category which is unknown to us
plasma-desktop(9940)/libplasma Plasma::Applet::listCategories: Unknown category:  "Default Desktop" says it is in the "Containments" category which is unknown to us
plasma-desktop(9940)/libplasma Plasma::Applet::listCategories: Unknown category:  "Search and Launch" says it is in the "Containments" category which is unknown to us
plasma-desktop(9940)/libplasma Plasma::Applet::listCategories: Unknown category:  "Akonotes list plasmoid" says it is in the "PIM" category which is unknown to us
plasma-desktop(9940)/libplasma Plasma::Applet::listCategories: Unknown category:  "Akonotes note plasmoid" says it is in the "PIM" category which is unknown to us

Debug output when pressing the activities button:

plasma-desktop(9940)/libplasma Plasma::PackageStructure::setPath: "/kde/inst/kactivities/share/apps/plasma/packages//org.kde.desktop.activitymanager" invalid, basePath is ""
plasma-desktop(9940)/libplasma Plasma::DeclarativeWidgetPrivate::execute: File name empty!
ControllerWindow::resizeEvent QSize(-1, -1)
Comment 1 Christophe Marin 2012-08-09 12:11:55 UTC
Still valid in master
Comment 2 Marco Martin 2012-08-14 11:17:31 UTC
Git commit ad6ef647c13add41857758045868ff4773c709ea by Marco Martin.
Committed on 14/08/2012 at 13:13.
Pushed by mart into branch 'master'.

try to be more flexible in path search

this may be a possible solution to packages not being loaded with non standard install paths

M  +17   -1    plasma/desktop/shell/activitymanager/activitymanager.cpp

http://commits.kde.org/kde-workspace/ad6ef647c13add41857758045868ff4773c709ea
Comment 3 Marco Martin 2012-08-14 11:19:17 UTC
the above patch is just for the activity manager (that should have the same problem as the widget explorer)
can somebody test with master if it solves the issue?
the expected result is the activity manager working, the widget explorer not working
Comment 4 Christophe Marin 2012-08-14 11:38:33 UTC
The patch had no effect on the activity manager afaics

kactivitiesmanagerd output:
# kactivitymanagerd 
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
running in thread Resources 
This is the current thread id for Resources 140122652120832 QThread(0x12a5660) 
running in thread Activities 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
running in thread Features 
This is the current thread id for Features 140122561439488 QThread(0x138f880) 
QObject::setParent: Cannot set parent, new parent is in a different thread
These are the disabled plugins: ("activitymanager_plugin_dummy", "activitymanager_plugin_nepomuk") 
Loading library for: "activitymanager_plugin_globalshortcuts" 
Creating Factory: "activitymanager_plugin_globalshortcuts" 
Creating plugin: "activitymanager_plugin_globalshortcuts" 
Initializing plugin: "activitymanager_plugin_globalshortcuts" 
This is the current thread id for Activities 140122900887424 QThread(0x1130060) 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
Loading library for: "activitymanager_plugin_slc" 
Creating Factory: "activitymanager_plugin_slc" 
Creating plugin: "activitymanager_plugin_slc" 
Initializing plugin: "activitymanager_plugin_slc" 
Loading library for: "activitymanager_plugin_virtualdesktopswitch" 
Creating Factory: "activitymanager_plugin_virtualdesktopswitch" 
Creating plugin: "activitymanager_plugin_virtualdesktopswitch" 
Initializing plugin: "activitymanager_plugin_virtualdesktopswitch" 
VirtualDesktopSwitch::init 
Loading library for: "activitymanager_plugin_activityranking" 
Creating Factory: "activitymanager_plugin_activityranking" 
Creating plugin: "activitymanager_plugin_activityranking" 
Initializing plugin: "activitymanager_plugin_activityranking" 
running in thread ActivityRanking 
Loading library for: "activitymanager_plugin_sqlite" 
Creating Factory: "activitymanager_plugin_sqlite" 
Creating plugin: "activitymanager_plugin_sqlite" 
Initializing plugin: "activitymanager_plugin_sqlite" 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
This is the current thread id for Activities 140122569832192 QThread(0x13305b0) 
etc...

plasma-desktop log:
# plasma-desktop
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusObjectPath: invalid path ""
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
plasma-desktop(17840)/libplasma Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability 
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
No cache
link XMLID_34_ hasn't been detected!
link XMLID_34_ hasn't been detected!
link XMLID_36_ hasn't been detected!
QGraphicsLinearLayout::insertItem: cannot insert null item
QGraphicsLinearLayout::insertItem: cannot insert null item
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
Object::connect: No such signal OrgKdeActivityManagerActivitiesInterface::presenceChanged(bool) in /kde/src/kdebase/kactivities/src/lib/consumer.cpp:48
QGraphicsScene::addItem: item has already been added to this scene
file:///kde/inst/kde-workspace/share/apps/plasma/plasmoids/notifier/contents/ui/devicenotifier.qml:170:5: QML QDeclarativeListView_QML_21: Possible anchor loop detected on vertical anchor.
QGraphicsScene::addItem: item has already been added to this scene
link XMLID_34_ hasn't been detected!
link XMLID_34_ hasn't been detected!
link XMLID_36_ hasn't been detected!
Using cache
plasma-desktop(17840)/plasma StatusNotifierItemSource::refreshCallback: DBusMenu disabled for this application 
QGridLayoutEngine::addItem: Cell (0, 1) already taken
QGridLayoutEngine::addItem: Cell (1, 1) already taken
QGridLayoutEngine::addItem: Cell (3, 1) already taken
Using cache
tp-qt 0.9.3.1 WARN: Error parsing config file for connection manager "haze" - introspecting  
tp-qt 0.9.3.1 WARN: Error parsing config file for connection manager "haze" - introspecting  
tp-qt 0.9.3.1 WARN: Error parsing config file for connection manager "haze" - introspecting  
QTextHtmlParser::applyAttributes: Unknown color name '4279505682'
Using cache
Using cache
Using cache
Using cache
Using cache
Using cache


And the activities bar (alt-A) is empty
Comment 5 Christophe Marin 2012-10-29 16:57:36 UTC
Still valid in master.
Comment 6 Christophe Marin 2012-10-29 17:15:52 UTC
now that I think about it, widget-explorer is probably not the appropriate component. 
As mentioned in the plasma debug output, basePath is empty, likely because kdelibs/plasma ignores the KDEDIRS value
Comment 7 Aaron J. Seigo 2012-11-07 01:16:31 UTC
this is fixed in libplasma2 as Package::setPath now uses standard dir checking to find where it might be.

changing this in libplasma1 raises too much potential for problems. as the Package API has changed in libplasma2, we'll need to be checking for breakages with packages when porting to libplasma2, so fall out should be catchable there.