Question about the shutdown dialog's reboot list implementation

Lamarque V. Souza lamarque at
Fri Jul 6 23:02:05 BST 2012

Em Friday 06 July 2012, Konstantinos Smanis escreveu:
> Hi,

> I am working on a patch for bug #297209
> ( and couldn't help but
> notice that since the Shutdown Dialog was QMLified, the code that
> shows the reboot list (when long-clicking the Reboot button) has been
> moved in the QML code of the theme
> (
> qml#319), which means that every theme should duplicate this code. I have a
> proper fix for the above mentioned bug written in C++ (generate a
> proper QMenu with submenus) which applies perfectly on the 4.8 branch
> (which is C++ only), so I was thinking maybe generate the menu in the
> C++ part of the code and pass it on to the QML theme? Being a total
> QML newbie I don't know if that's possible, plus after a quick search
> I can't figure out how to implement submenus for the context menu in
> QML (it uses a custom ContextMenu component).
> I wouldn't like to dig in QML just for this and I think it makes more
> sense if the list was centrally generated and not in every theme.
> Still, if the code should reside in the theme, I would appreciate any
> pointers as to how implement submenus in the context menu.

	I am the one that implemented the QML shutdown menu. I moved the code 
that creates the reboot menu to QML to give the possibility to create 
different QML themes that do not necessarily need to handle all the options 
ksmserver implements or to show the reboot entries using any QML component 
available (not necessarily a menu).

	It's not possible to use QMenu (or other QWidgets subclasses) in QML as 
far as I know. I think we can implement submenus in the default theme (in 
QML). For a quick fix you can try passing the correct grub index to the 
rebootOptions context variable (this must be done in shutdowndlg.cpp) and then 
assign it to variable itemData["itemIndex"] in main.qml. That should make it 
select the correct boot option. The menu will still be linear (without 
submenus), we can fix that later.

Lamarque V. Souza
KDE's Network Management maintainer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the kde-core-devel mailing list