diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-13 05:43:39 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-13 05:43:39 +0000 |
commit | 19ae07d0d443ff8b777f46bcbe97119483356bfd (patch) | |
tree | dae169167c23ba7c61814101995de21d6abac2e8 /displayconfig/ktimerdialog.py | |
download | tde-guidance-19ae07d0d443ff8b777f46bcbe97119483356bfd.tar.gz tde-guidance-19ae07d0d443ff8b777f46bcbe97119483356bfd.zip |
Added KDE3 version of KDE Guidance utilities
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kde-guidance@1102646 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'displayconfig/ktimerdialog.py')
-rw-r--r-- | displayconfig/ktimerdialog.py | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/displayconfig/ktimerdialog.py b/displayconfig/ktimerdialog.py new file mode 100644 index 0000000..5cca210 --- /dev/null +++ b/displayconfig/ktimerdialog.py @@ -0,0 +1,155 @@ +#!/usr/bin/python +########################################################################### +# ktimerdialog.py - description # +# ------------------------------ # +# begin : Mon Jul 26 2004 # +# copyright : (C) 2004 by Simon Edwards # +# email : simon@simonzone.com # +# # +########################################################################### +# # +# This program is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +########################################################################### +# Based on Hamish Rodda's ktimerdialog.cpp. + +from qt import * +from kdecore import * +from kdeui import * + +class KTimerDialog(KDialogBase): + CountDown = 0 + CountUp = 1 + Manual = 2 + + def __init__(self, msec, style, parent, name, modal, caption="", \ + buttonmask=KDialogBase.Ok|KDialogBase.Cancel|KDialogBase.Apply, \ + defaultbutton=KDialogBase.Cancel, separator=False, \ + user1=KGuiItem(), user2=KGuiItem(), user3=KGuiItem()): + """Parameters: + + msec - integer, timeout in milliseconds + style - TimerStyle object. + parent - parent QWidget + name - String + model - boolean. + caption - String + buttonmask - integer + defaultbutton - ButtonCode + separator - boolean + user1 - KGuiItem + user2 - KGuiItem + user3 - KGuiItem + """ + + KDialogBase.__init__(self,parent, name, modal, caption, buttonmask, defaultbutton, \ + separator, user1, user2, user3 ) + + self.totaltimer = QTimer(self) + self.updatetimer = QTimer(self) + self.msectotal = self.msecremaining = msec + self.updateinterval = 1000 + self.tstyle = style + + # default to cancelling the dialog on timeout + if buttonmask & self.Cancel: + self.buttonontimeout = self.Cancel + + self.connect(self.totaltimer, SIGNAL("timeout()"), self.slotInternalTimeout) + self.connect(self.updatetimer, SIGNAL("timeout()"), self.slotUpdateTime) + + # create the widgets + self.mainwidget = QVBox(self, "mainWidget") + self.timerwidget = QHBox(self.mainwidget, "timerWidget") + self.timerlabel = QLabel(self.timerwidget) + self.timerprogress = QProgressBar(self.timerwidget) + self.timerprogress.setTotalSteps(self.msectotal) + self.timerprogress.setPercentageVisible(False) + self.setMainWidget(self.mainwidget) + self.slotUpdateTime(False) + + def show(self): + self.msecremaining = self.msectotal + self.slotUpdateTime(False) + KDialogBase.show(self) + self.totaltimer.start(self.msectotal, True) + self.updatetimer.start(self.updateinterval, False) + + def exec_loop(self): + self.totaltimer.start(self.msectotal, True) + self.updatetimer.start(self.updateinterval, False) + return KDialogBase.exec_loop(self) + + def setMainWidget(self, newmainwidget): + # yuck, here goes. + newwidget = QVBox(self) + + if newmainwidget.parentWidget()!=self.mainwidget: + newmainwidget.reparent(newwidget, 0, QPoint(0,0)) + else: + newwidget.insertChild(newmainwidget) + + self.timerwidget.reparent(newwidget, 0, QPoint(0, 0)) + + self.mainwidget = newwidget + KDialogBase.setMainWidget(self, self.mainwidget) + + def setRefreshInterval(self, msec): + self.updateinterval = msec; + if self.updatetimer.isActive(): + self.updatetimer.changeInterval(self.updateinterval) + + def timeoutButton(self): + return self.buttonontimeout + + def setTimeoutButton(self, newbutton): + self.buttonontimeout = newbutton + + def timerStyle(self): + return self.tstyle + + def setTimerStyle(self, newstyle): + self.tstyle = newstyle + + def slotUpdateTime(self, update=True): + if update: + if self.tstyle==self.CountDown: + self.msecremaining -= self.updateinterval + elif self.tstyle==self.CountUp: + self.msecremaining += self.updateinterval + + self.timerprogress.setProgress(self.msecremaining) + self.timerlabel.setText( i18n("%1 seconds remaining:").arg(self.msecremaining/1000.0) ) + + def slotInternalTimeout(self): + #self.emit(SIGNAL("timerTimeout()"), () ) + if self.buttonontimeout==self.Help: + self.slotHelp() + elif self.buttonontimeout==self.Default: + self.slotDefault() + elif self.buttonontimeout==self.Ok: + self.slotOk() + elif self.buttonontimeout==self.Apply: + self.applyPressed() + elif self.buttonontimeout==self.Try: + self.slotTry() + elif self.buttonontimeout==self.Cancel: + self.slotCancel() + elif self.buttonontimeout==self.Close: + self.slotClose() + #case User1: + # slotUser1(); + #case User2: + # slotUser2(); + # break; + elif self.buttonontimeout==self.User3: + self.slotUser3() + elif self.buttonontimeout==self.No: + self.slotNo() + elif self.buttonontimeout==self.Yes: + self.slotCancel() + elif self.buttonontimeout==self.Details: + self.slotDetails() |