RefactoringRope/ProgressHandle.py

Tue, 10 Dec 2024 15:49:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:49:01 +0100
branch
eric7
changeset 426
7592a1c052e8
parent 412
6fa5892b9097
permissions
-rw-r--r--

Updated copyright for 2025.

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
426
7592a1c052e8 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 412
diff changeset
3 # Copyright (c) 2010 - 2025 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 """
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
7 Module implementing a distributed TaskHandle class with a progress dialog.
2
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 import rope.base.taskhandle
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
12
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 class ProgressHandle(rope.base.taskhandle.TaskHandle):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 """
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
15 Class implementing distributed TaskHandle with a progress dialog.
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
16
203
c38750e1bafd Performed some code cleanup actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 167
diff changeset
17 This is the client side.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
19
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
20 def __init__(self, client, title, interruptable=True):
2
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 Constructor
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
23
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
24 @param client reference to the JSON client
365
f740b50380df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 360
diff changeset
25 @type EricJsonClient
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
26 @param title title for the taskhandle
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
27 @type str
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
28 @param interruptable flag indicating, that the task may be
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
29 interrupted
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
30 @type bool
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 rope.base.taskhandle.TaskHandle.__init__(self, title, interruptable)
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
33
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
34 self.__client = client
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
35
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
36 self.__client.sendJson(
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
37 "Progress",
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
38 {
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
39 "Subcommand": "Init",
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
40 "Title": title,
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
41 "Interruptable": interruptable,
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
42 },
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
43 )
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
44
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.add_observer(self.__updateProgress)
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
46
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 def __updateProgress(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 Private slot to handle the task progress.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
51 params = {
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
52 "Subcommand": "Progress",
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
53 }
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
54
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 jobset = self.current_jobset()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 if jobset:
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
57 text = ""
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 if jobset.get_name() is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 text += jobset.get_name()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 if jobset.get_active_job_name() is not None:
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
61 text += ": " + jobset.get_active_job_name()
167
3c8e875d0326 Some code cleanup and refinement.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 164
diff changeset
62 params["Text"] = text
68
397a14ba3ca6 Enhanced the progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 62
diff changeset
63 if jobset.count is not None:
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
64 params["Maximum"] = jobset.count
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
65 params["Value"] = jobset.done
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
66
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
67 self.__client.sendJson("Progress", params)
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
68 self.__client.poll()
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
69
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 def reset(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 Public slot to reset the progress dialog.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
389
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
74 self.__client.sendJson(
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
75 "Progress",
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
76 {
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
77 "Subcommand": "Reset",
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
78 },
4f53795beff0 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 374
diff changeset
79 )
164
121d426d4ed7 Coded a distributed progress dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 147
diff changeset
80 self.__client.poll()

eric ide

mercurial