RefactoringRope/ProgressHandle.py

Sun, 06 Jul 2014 14:17:24 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 06 Jul 2014 14:17:24 +0200
branch
eric5
changeset 86
3339c75dc777
parent 76
936b2a98fe4e
child 88
e71619898d0f
child 94
03d6a17c66ac
permissions
-rw-r--r--

Ported to PyQt5 and eric6.

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
63
c02061242598 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
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
76
936b2a98fe4e Merge with Py2 comp.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 68 63
diff changeset
10 from __future__ import unicode_literals
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
11
86
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
12 from PyQt5.QtCore import QCoreApplication
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
13 from PyQt5.QtWidgets import QApplication, QLabel
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 import rope.base.taskhandle
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
17
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class ProgressHandle(rope.base.taskhandle.TaskHandle):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing TaskHandle with a progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 def __init__(self, title, interruptable=True, parent=None):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @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
27 @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
28 interrupted (boolean)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param parent reference to the parent widget (QWidget)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 rope.base.taskhandle.TaskHandle.__init__(self, title, interruptable)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 if interruptable:
86
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
33 cancelLabel = QCoreApplication.translate(
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
34 "ProgressHandle", "Interrupt")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 else:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 cancelLabel = ""
86
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
37 barFormat = QCoreApplication.translate("ProgressHandle", "%v/%m files")
68
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
38 try:
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
39 from E5Gui.E5ProgressDialog import E5ProgressDialog
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
40 self.__progress = E5ProgressDialog("", cancelLabel, 0, 1,
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
41 barFormat, parent)
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
42 except ImportError:
86
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
43 from PyQt5.QtWidgets import QProgressDialog, QProgressBar
68
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
44 self.__progress = QProgressDialog("", cancelLabel, 0, 1, parent)
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
45 bar = QProgressBar(self.__progress)
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
46 bar.setFormat(barFormat)
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
47 self.__progress.setBar(bar)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 label = QLabel("")
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 label.setWordWrap(True)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__progress.setLabel(label)
68
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
51 self.__progress.setWindowTitle(
86
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
52 QCoreApplication.translate("ProgressHandle", "eric6 - {0}")
3339c75dc777 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
53 .format(title))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.add_observer(self.__updateProgress)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 def __updateProgress(self):
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 Private slot to handle the task progress.
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 jobset = self.current_jobset()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 if jobset:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 text = ''
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 if jobset.get_name() is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 text += jobset.get_name()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if jobset.get_active_job_name() is not None:
68
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
66 text += ': ' + jobset.get_active_job_name()
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.__progress.setLabelText(text)
68
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
68 if jobset.count is not None:
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
69 self.__progress.setMaximum(jobset.count)
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
70 self.__progress.setValue(jobset.done)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 QApplication.processEvents()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 if not self.is_stopped() and self.__progress.wasCanceled():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.stop()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 def show(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Public slot to show the progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__progress.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 def reset(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 Public slot to reset the progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.__progress.reset()

eric ide

mercurial