Windows start menu item support for kickoff

Ralf Habacker ralf.habacker at freenet.de
Sun Jun 7 14:15:11 CEST 2009


Patrick Spendrin schrieb:
> Fabian Aichele schrieb:
>   
>> Hello!
>>
>> The patch attached adds basic support for adding the contents of the
>> Windows start menu to the kickoff applet.
>> "Basic" means that it is possible to launch most file types one
>> typically finds in a start menu (Executables, help files, PDF, html)
>> either directly or with the default application associated with the
>> corresponding file type.
>>
>> What is missing currently:
>> - Icon extraction
>> - Folder structure of the Windows start menu (currently all entries are
>> displayed sorted alphabetically only, regardless in which folder they
>> reside under the Windows start menu)
>> - Correct sorting order (sorted by description, not by name now)
>> - Fine-tuning for program launching
>>
>> Nevertheless, the code is functional (developed on Vista SP1), and I'd
>> like to ask someone else beside myself to test this little addition.
>>
>> Feedback, suggestions and criticism are welcome, but flame gently, this
>> is my first attempt to modify KDE itself.
>>     
> First of all, thanks for trying to contribute to KDE, this is greatly
> appreciated.
>
> Now about criticism and suggestions:
> - please do not modify the *_EXPORT unless you really must do that. As
> far as I have seen you have replaced class wide exports with function
> exports, which is really messy and should be avoided. Please try to take
> out these parts of the patch and if you experience any problems we can
> fix that in a much shorter way together, I am sure.
>
> - You modify kickoff as far as I can see, but this means that you would
> have to apply your changes to every single menu application again (there
> are multiple ones!). A better place for your changes would be the
> generation of the menu entries in the sycoca database the "normal" Linux
>   uses. This happens in the following files when running kbuildsycoca4:
> http://lxr.kde.org/source/KDE/kdelibs/kded/kbuildsycoca.cpp#335
> http://lxr.kde.org/source/KDE/kdelibs/kded/vfolder_menu.cpp#1577
> So instead of getting this done in kickoff itself, you should rather
> take the functions you already made and move them over to vfolder_menu.
>
> - in applicationmodel.cpp you made quite a lot of changes that are
> windows specific and are not really interesting to non-Windows
> developers. To keep the code clean, bigger changes are put into a
> windows only file which would be called applicationmodel_win.cpp and
> which would only be compiled on windows. 
Relating to the windows specific link file code. There is already a 
class for accessing linkfiles available in the kwinstartmenu application
http://websvn.kde.org/trunk/KDE/kdebase/runtime/platforms/win/kwinstartmenu/linkfile.h?revision=936975&view=markup, 
which would make your implementation easier.
Because there would be already two code parts using this library I 
suggest to move this class into kdelibs and make it public accessable.

@Patrick: Any idea where to place such a class into kdelibs and how to 
proceed with this ? If noone else would like to take this job, I could 
prepare the class for the required review process.

Ralf




More information about the Kde-windows mailing list