This forum has been archived. All content is frozen. Please use KDE Discuss instead.

How to setup a shortcut setting dialog for plasmoids?

Tags: None
(comma "," separated)
User avatar
grissiom
Registered Member
Posts
49
Karma
0
OS
Seeing this:

http://websvn.kde.org/trunk/KDE/kdeplas ... iew=markup

I found there is no code to bring up a setting dialog. But in KDE4, it has one shortcut setting dialog. How did it achieve this? If I want a dialog like that, what should I do?


grissiom, proud to be a member of KDE forums since 2008-Oct.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Plasmoid developers do not need to do anything, Plasma will provide it with a shortcut dialog automatically. It only needs to implement the adding of its own pages to that dialog.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
User avatar
grissiom
Registered Member
Posts
49
Karma
0
OS
bcooksley wrote:Plasmoid developers do not need to do anything, Plasma will provide it with a shortcut dialog automatically. It only needs to implement the adding of its own pages to that dialog.


OK~ But it seems that only "official" plasmoids have the dialog. If I makeup a plasmoid my own, install it by "plasmapkg -i ${PRONAME}.zip". It don't have that dialog...


grissiom, proud to be a member of KDE forums since 2008-Oct.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Unusual. Which functions have you implemented in your script?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
User avatar
grissiom
Registered Member
Posts
49
Karma
0
OS
My code is:
Code: Select all
# Written by Grissiom chaos.proton@gmail.com

from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QGraphicsLinearLayout, QWidget

from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
from PyKDE4.kdeui import KIcon, KGlobalSettings, KShortcutsDialog, KShortcutsEditor,
                KShortcutWidget

import dbus

class TurnOffScreen(plasmascript.Applet):
    def __init__(self, parent, args = None):
        plasmascript.Applet.__init__(self, parent)

    def init(self):
        self.setHasConfigurationInterface(True)
        self.setAspectRatioMode(Plasma.ConstrainedSquare)
        self.setBackgroundHints(self.NoBackground)

        self.sessionBus = dbus.SessionBus()
        self.powerdevil = self.sessionBus.get_object('org.freedesktop.PowerManagement',
                                                             '/modules/powerdevil')

        self.icon= Plasma.IconWidget(KIcon('preferences-desktop-screensaver'), '', self.applet)
        if KGlobalSettings.singleClick():
            self.connect(self.icon, SIGNAL('clicked()'), self.turn_off_screen)
        else:
            self.connect(self.icon, SIGNAL('doubleClicked()'), self.turn_off_screen)
        self.connect(self, SIGNAL('active()'), self.turn_off_screen)

        self.layout = QGraphicsLinearLayout(self.applet)
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.setSpacing(0)
        self.layout.addItem(self.icon)
        self.setLayout(self.layout)
        self.resize(25, 25)

    #def showConfigurationInterface(self):
        #        self.con_short = KShortcutWidget(None)
        #        self.con_short.show()

    def turn_off_screen(self):
        self.powerdevil.turnOffScreen(dbus_interface='org.kde.PowerDevil')

def CreateApplet(p):
   return TurnOffScreen(p)

Last edited by grissiom on Sun Apr 19, 2009 3:17 pm, edited 1 time in total.


grissiom, proud to be a member of KDE forums since 2008-Oct.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
If you wish to show your own configuration, you should override standardConfigurationDialog() instead of showConfigurationInterface().

You may wish to look at the GMail-Notifier plasmoid on KDE-Look and see how that does it.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
User avatar
grissiom
Registered Member
Posts
49
Karma
0
OS
No, actually I just want a "standard" shortcut configure dialog... So I learn to the "showdashbroad" plasmoid. Unfortunately, things seems different....


grissiom, proud to be a member of KDE forums since 2008-Oct.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Unfortunately I do not know much about Python. I can only recommend you check some of the other Python based plasmoids on kde-look.org, or ask on the plasma-devel@kde.org mailing list.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], Sogou [Bot]