From kde-core-devel Fri Jul 06 22:02:05 2012 From: "Lamarque V. Souza" Date: Fri, 06 Jul 2012 22:02:05 +0000 To: kde-core-devel Subject: Re: Question about the shutdown dialog's reboot list implementation Message-Id: <201207061902.05811.lamarque () kde ! org> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=134161238114569 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--Boundary-01=_dB29PeV88NfN+Ab" --Boundary-01=_dB29PeV88NfN+Ab Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Em Friday 06 July 2012, Konstantinos Smanis escreveu: > Hi, Hi, > I am working on a patch for bug #297209 > (https://bugs.kde.org/show_bug.cgi?id=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 > (http://lxr.kde.org/source/kde/kde-workspace/ksmserver/themes/default/main. > 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 http://planetkde.org/pt-br --Boundary-01=_dB29PeV88NfN+Ab Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 7bit

Em Friday 06 July 2012, Konstantinos Smanis escreveu:

> Hi,

 

Hi,

> I am working on a patch for bug #297209

> (https://bugs.kde.org/show_bug.cgi?id=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

> (http://lxr.kde.org/source/kde/kde-workspace/ksmserver/themes/default/main.

> 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

http://planetkde.org/pt-br

--Boundary-01=_dB29PeV88NfN+Ab--