RefactoringRope/ProgressHandle.py

Wed, 01 Jan 2014 14:47:56 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 01 Jan 2014 14:47:56 +0100
changeset 62
1077db8d0589
parent 43
39924831c795
child 68
397a14ba3ca6
permissions
-rw-r--r--

Updated copyright for 2014.

2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
62
1077db8d0589 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
3 # Copyright (c) 2010 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a TaskHandle class with a progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt4.QtGui import QApplication, QProgressDialog, QLabel
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import rope.base.taskhandle
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
14
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 class ProgressHandle(rope.base.taskhandle.TaskHandle):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 Class implementing TaskHandle with a progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 def __init__(self, title, interruptable=True, parent=None):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Constructor
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 @param title title for the taskhandle (string)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
24 @param interruptable flag indicating, that the task may be
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 interrupted (boolean)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @param parent reference to the parent widget (QWidget)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 rope.base.taskhandle.TaskHandle.__init__(self, title, interruptable)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 if interruptable:
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
30 cancelLabel = QApplication.translate("ProgressHandle", "Interrupt")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 else:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 cancelLabel = ""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.__progress = QProgressDialog("", cancelLabel, 0, 100, parent)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 label = QLabel("")
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 label.setWordWrap(True)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.__progress.setLabel(label)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.add_observer(self.__updateProgress)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 def __updateProgress(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 Private slot to handle the task progress.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 jobset = self.current_jobset()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 if jobset:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 text = ''
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 if jobset.get_name() is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 text += jobset.get_name()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 if jobset.get_active_job_name() is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 text += ' : ' + jobset.get_active_job_name()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__progress.setLabelText(text)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 percent = jobset.get_percent_done()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 if percent is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__progress.setValue(percent)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 QApplication.processEvents()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 if not self.is_stopped() and self.__progress.wasCanceled():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.stop()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def show(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Public slot to show the progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.__progress.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 def reset(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 Public slot to reset the progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.__progress.reset()

eric ide

mercurial