[Nepomuk] Re: Review Request: Merge nepomuk system tray into kde-runtime

Artem Serebriyskiy v.for.vandal at gmail.com
Wed Jun 29 00:08:23 CEST 2011



> On June 27, 2011, 8:33 a.m., Sebastian Trueg wrote:
> > I will have to review this project in general as I did a while back before looking at the code:
> > The user is not really concerned with the status of any Nepomuk services since that is an implementation detail. Thus, your main widget is not very end user friendly. It could be a great developer tool though if it also provided the possibility to start and stop services.
> > 
> > The there are a few issues:
> > - The tooltip just shows "Running Running Running Running Running" without any details
> > - The menu has two quit actions
> > - The systray applet does not provide actions to suspend/resume strigi or show its detailed status.
> > - I have two entries for the strigi service here
> > 
> > Also I see no need for a plugin system when there is only one single plugin.
> > 
> > So for now I would have to vote against this merge as it does not bring any useful features to the user while at the same time removing essential ones.
> 
> Artem Serebriyskiy wrote:
>     There are more plugins, they are just autogenerated at build time. Separate plugins are necessary only if service want's to export some functionality to user, like suspend/resume for strigi. I will provide separate backend for backup too.
>     
>     About issues:
>     1. Well, I will see what can i do, because tooltips are not working on my system at all.
>     About other issues - well, it is possible that I commited really wrong version, but  all other issues seem incorrect( no offence) ( or may be I don't understand them correctly). See attached screensoot please:
>     2. The menu has one quit action - in context menu.
>     3. The systray applet do provide actions for suspend/resume strigi, both from widget and from context menu. If this actions don't work, then it is a bug and I will fix it.
>     4. There is one entry for strigi service.
>     
>     Other:
>     I think the question about role of this applet - for developer or for user - should be solved later, after we solve this weird situation with 4 issues.
>     
>     Please, attach your screenshot too.
>
> 
> Sebastian Trueg wrote:
>     I would not know how to attach a screenshot. Here is a link though: http://simplest-image-hosting.net/jpg-0-plasma-desktopt22088
>     
>     And here the console log (I renamed it to nepomukcontroller2 to avoid a collision with the one from kde-runtime since I build from your scratch repo): 
>     
>     nepomukcontroller2(26210) KXMLGUIClient::setXMLFile: cannot find .rc file "systraynepomukfilewatchpluginui.rc" for component "nepomukcontroller2" 
>     nepomukcontroller2(26210) Nepomuk::SystrayPluginManager::SystrayPluginManager: Load plugin: "Nepomuk file watch service system tray plugin"
>     nepomukcontroller2(26210) KXMLGUIClient::setXMLFile: cannot find .rc file "systraynepomukqueryservicepluginui.rc" for component "nepomukcontroller2" 
>     nepomukcontroller2(26210) Nepomuk::SystrayPluginManager::SystrayPluginManager: Load plugin: "Nepomuk query service  system tray plugin"
>     nepomukcontroller2(26210) KXMLGUIClient::setXMLFile: cannot find .rc file "systraynepomukstoragepluginui.rc" for component "nepomukcontroller2" 
>     nepomukcontroller2(26210) Nepomuk::SystrayPluginManager::SystrayPluginManager: Load plugin: "Nepomuk storage  system tray plugin"
>     nepomukcontroller2(26210) KXMLGUIClient::setXMLFile: cannot find .rc file "systraystrigipluginui.rc" for component "nepomukcontroller2" 
>     nepomukcontroller2(26210) Nepomuk::SystrayPluginManager::SystrayPluginManager: Load plugin: "Strigi system tray plugin"
>     nepomukcontroller2(26210) KXMLGUIClient::setXMLFile: cannot find .rc file "systraystrigipluginui.rc" for component "nepomukcontroller2" 
>     nepomukcontroller2(26210) Nepomuk::SystrayPluginManager::SystrayPluginManager: Load plugin: "Strigi system tray plugin"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::pluginInitialized: Plugin:  "Nepomuk file watch service"  finish initialization
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::SystrayServiceWidget: Plugin already initialized
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::doInit: Failed to retrieve menu
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "Nepomuk file watch service" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::pluginInitialized: Plugin:  "Nepomuk query service"  finish initialization
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::SystrayServiceWidget: Plugin already initialized
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::doInit: Failed to retrieve menu
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "Nepomuk query service" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::pluginInitialized: Plugin:  "Nepomuk storage"  finish initialization
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::SystrayServiceWidget: Plugin already initialized
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::doInit: Failed to retrieve menu
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "Nepomuk storage" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::pluginInitialized: Plugin:  "strigi_basic"  finish initialization
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::SystrayServiceWidget: Plugin already initialized
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::doInit: Failed to retrieve menu
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "strigi_basic" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "strigi_basic" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::pluginInitialized: Plugin:  "strigi_basic"  finish initialization
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::SystrayServiceWidget: Plugin already initialized
>     nepomukcontroller2(26210) Nepomuk::SystrayServiceWidget::doInit: Failed to retrieve menu
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "strigi_basic" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "strigi_basic" changed status to  "Not started"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "Nepomuk query service" changed status to  "Running"
>     nepomukcontroller2(26210) Nepomuk::SystemTray::updateToolTip: Plugin  "Nepomuk storage" changed status to  "Running"

Ok. I am sorry for all this mess. I was sure that using the same name for new application would be more convinient. In contrary, it creates hard to catch bugs.

So, I was able to reproduce last 2 issues after I do the same thing - rename nepomukcontroller to another name. As you can see in 
>> nepomukcontroller2(26210) KXMLGUIClient::setXMLFile: cannot find .rc file "systraystrigipluginui.rc" for component "nepomukcontroller2"
plugin failed to load ui. Because of this, it failed to create menu and thus to provide any actions. The ui files location is determineg using apps name. I am not sure what name is used - name of executable or name given to KAboutData.

The issuse with 2 strigi plugins was caused by the same problem. It  looks like that ksycoca return 2 plugins for strigi service. One from location ~/kde/share/kde4/services/nepomukcontroller2 and one from ~/kde/share/kde4/services/nepomukcontroller. Because of this, plugin is loaded twice. Or it is possible that only one file actually exists, but ksycoca cached both entries.

Anyway, I renamed application myself. Now it is called nepomuksystray_qt. I hope this name is not in use. After install, you must have no messages like "KXMLGUIClient::setXMLFile: cannot find .rc file ... " and all actions should appear.
If you still will have 2(3,4) entries for strigi service, then check the output please. It now writes things like:
>> Nepomuk::SystrayPluginManager::SystrayPluginManager: Load plugin: <PLUGIN NAME> defined in <PATH TO DESKTOP FILE>
There must exist only one plugin for every service. If you have more then one, then remove extra .desktop files and update ksycoca.

The changes are only in repo, I wouldn'd publish a patch here until I get a conformation from you.

Thanks for your patience and sorry again for this mess.


- Artem


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101786/#review4191
-----------------------------------------------------------


On June 27, 2011, 9:35 p.m., Artem Serebriyskiy wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/101786/
> -----------------------------------------------------------
> 
> (Updated June 27, 2011, 9:35 p.m.)
> 
> 
> Review request for Nepomuk.
> 
> 
> Summary
> -------
> 
> Merge project nepomuk-system-tray into kde-runtime.
> 
> (Quick note: There were a merge request about 6-8 month ago, it was done in bug tracker and I think it is long gone )
> 
> Description of the project: provides library and several runtime components ( well, currently one, plasma dataengine is in [slow] development ) for quering and displaying status(es) of nepomuk service(s).
> 
> 2 main parts + plugins:
> library - view independed, async, plugin-based framework that allow you to track status of the service
> runtime/[systemtray] - current implementation of system tray, done with usual technologies ( no plasma/QML )
> plugins/ - library with written plugin for strigi and build-time plugin autogeneration for other services.
> 
> Personal repo is git at git.kde.org:nepomuk-system-tray
> 
> 
> Diffs
> -----
> 
>   nepomuk/controller/CMakeLists.txt 76c452d 
>   nepomuk/controller/Messages.sh ea4aa1e 
>   nepomuk/controller/lib/CMakeLists.txt PRE-CREATION 
>   nepomuk/controller/lib/config.h.in PRE-CREATION 
>   nepomuk/controller/lib/nepomuksystray_export.h PRE-CREATION 
>   nepomuk/controller/lib/serverclient.h PRE-CREATION 
>   nepomuk/controller/lib/systrayplugin.h PRE-CREATION 
>   nepomuk/controller/lib/systrayplugin.cpp PRE-CREATION 
>   nepomuk/controller/lib/systraypluginmanager.h PRE-CREATION 
>   nepomuk/controller/lib/systraypluginmanager.cpp PRE-CREATION 
>   nepomuk/controller/main.cpp c14c165 
>   nepomuk/controller/nepomukcontroller.desktop debbfff 
>   nepomuk/controller/plugins/CMakeLists.txt PRE-CREATION 
>   nepomuk/controller/plugins/basic_template/nepomuksystray_template.desktop.in PRE-CREATION 
>   nepomuk/controller/plugins/basic_template/systraytemplatepluginui.rc.in PRE-CREATION 
>   nepomuk/controller/plugins/basic_template/templateplugin.cpp.in PRE-CREATION 
>   nepomuk/controller/plugins/basic_template/templateplugin.h.in PRE-CREATION 
>   nepomuk/controller/plugins/nepomuksystray_plugin.desktop PRE-CREATION 
>   nepomuk/controller/plugins/strigi/CMakeLists.txt PRE-CREATION 
>   nepomuk/controller/plugins/strigi/nepomuksystray_strigi.desktop PRE-CREATION 
>   nepomuk/controller/plugins/strigi/strigiplugin.h PRE-CREATION 
>   nepomuk/controller/plugins/strigi/strigiplugin.cpp PRE-CREATION 
>   nepomuk/controller/plugins/strigi/systraystrigipluginui.rc PRE-CREATION 
>   nepomuk/controller/runtime/CMakeLists.txt PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/CMakeLists.txt PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/main.cpp PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/mainWidget.ui PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/mainWindow.ui PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/mainwidget.h PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/mainwidget.cpp PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/nepomukcontroller.desktop PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/nepomukcontrollerrc PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/nepomukcontrollerui.rc PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/serviceWidget.ui PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/servicewidget.h PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/servicewidget.cpp PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/systray.h PRE-CREATION 
>   nepomuk/controller/runtime/systemtray/systray.cpp PRE-CREATION 
>   nepomuk/controller/systray.h 3e2adb6 
>   nepomuk/controller/systray.cpp 920877b 
> 
> Diff: http://git.reviewboard.kde.org/r/101786/diff
> 
> 
> Testing
> -------
> 
> Testing:
> ( My machine ) GNU/Linux x86_64, 2.6.38.
> 
> Compiles, works. There are problems with resizing of main widget - Qt doesn't support automatic resizing of top-level windows, so a dirty-dirty hack is used.
> 
> 
> Screenshots
> -----------
> 
> systray-on-dev-machin
>   http://git.reviewboard.kde.org/r/101786/s/190/
> nepomuk-systray-xephyr
>   http://git.reviewboard.kde.org/r/101786/s/192/
> 
> 
> Thanks,
> 
> Artem
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/nepomuk/attachments/20110628/38bdbdf9/attachment-0001.htm 


More information about the Nepomuk mailing list