E5Gui/E5Action.py

Sat, 19 Oct 2013 14:05:26 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 19 Oct 2013 14:05:26 +0200
changeset 3035
36e9f388958b
parent 2990
583beaf0b4b8
child 3060
5883ce99ee12
child 3160
209a07d7e401
permissions
-rw-r--r--

Fixed a bunch of indentation issues.

55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
2302
f29e9405c851 Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1580
diff changeset
3 # Copyright (c) 2006 - 2013 Detlev Offenbach <detlev@die-offenbachs.de>
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing an Action class extending QAction.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 This extension is necessary in order to support alternate keyboard
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 shortcuts.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
13 from PyQt4.QtGui import QAction, QActionGroup, QIcon, QKeySequence, qApp
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
15
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 class ArgumentsError(RuntimeError):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
18 Class implementing an exception, which is raised, if the wrong number of
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
19 arguments are given.
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 def __init__(self, error):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
24
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
25 @param error error message of the exception (string)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 self.errorMessage = str(error)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 def __repr__(self):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Private method returning a representation of the exception.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @return string representing the error message
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 return str(self.errorMessage)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 def __str__(self):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Private method returning a string representation of the exception.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @return string representing the error message
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 return str(self.errorMessage)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
45
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 class E5Action(QAction):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Class implementing an Action class extending QAction.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 def __init__(self, *args):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Constructor
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 @param args argument list of the constructor. This list is one of
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 <ul>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
56 <li>text (string), icon (QIcon), menu text (string),
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
57 accelarator (QKeySequence), alternative accelerator
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
58 (QKeySequence), parent (QObject), name (string), toggle
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
59 (boolean)</li>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
60 <li>text (string), icon (QIcon), menu text (string),
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
61 accelarator (QKeySequence), alternative accelerator
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
62 (QKeySequence), parent (QObject), name (string)</li>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
63 <li>text (string), menu text (string),
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
64 accelarator (QKeySequence), alternative accelerator
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
65 (QKeySequence), parent (QObject), name (string), toggle
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
66 (boolean)</li>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
67 <li>text (string), menu text (string),
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
68 accelarator (QKeySequence), alternative accelerator
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2953
diff changeset
69 (QKeySequence), parent (QObject), name (string)</li>
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 </ul>
2953
703452a2876f Started correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
71 @exception ArgumentsError raised to indicate invalid arguments
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 if isinstance(args[1], QIcon):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 icon = args[1]
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 incr = 1
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 else:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 icon = None
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 incr = 0
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
79 if len(args) < 6 + incr:
410
e5d1addeb90c Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 267
diff changeset
80 raise ArgumentsError(
e5d1addeb90c Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 267
diff changeset
81 "Not enough arguments, {0:d} expected, got {1:d}".format(
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2990
diff changeset
82 6 + incr, len(args)))
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
83 elif len(args) > 7 + incr:
410
e5d1addeb90c Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 267
diff changeset
84 raise ArgumentsError(
e5d1addeb90c Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 267
diff changeset
85 "Too many arguments, max. {0:d} expected, got {1:d}".format(
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2990
diff changeset
86 7 + incr, len(args)))
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
88 parent = args[4 + incr]
1131
7781e396c903 Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
89 super().__init__(parent)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
90 name = args[5 + incr]
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 if name:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.setObjectName(name)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
94 if args[1 + incr]:
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
95 self.setText(args[1 + incr])
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 if args[0]:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.setIconText(args[0])
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
99 if args[2 + incr]:
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
100 self.setShortcut(QKeySequence(args[2 + incr]))
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
102 if args[3 + incr]:
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
103 self.setAlternateShortcut(QKeySequence(args[3 + incr]))
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 if icon:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.setIcon(icon)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
108 if len(args) == 7 + incr:
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
109 self.setCheckable(args[6 + incr])
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
111 self.__ammendToolTip()
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
112
1521
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
113 def setAlternateShortcut(self, shortcut, removeEmpty=False):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 Public slot to set the alternative keyboard shortcut.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 @param shortcut the alternative accelerator (QKeySequence)
1521
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
118 @param removeEmpty flag indicating to remove the alternate shortcut,
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
119 if it is empty (boolean)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 if not shortcut.isEmpty():
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 shortcuts = self.shortcuts()
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 if len(shortcuts) > 0:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 if len(shortcuts) == 1:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 shortcuts.append(shortcut)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 else:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 shortcuts[1] = shortcut
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 self.setShortcuts(shortcuts)
1521
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
129 elif removeEmpty:
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
130 shortcuts = self.shortcuts()
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
131 if len(shortcuts) == 2:
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
132 del shortcuts[1]
1e684e74d2a1 Fixed an issue configuring keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
133 self.setShortcuts(shortcuts)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 def alternateShortcut(self):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 Public method to retrieve the alternative keyboard shortcut.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @return the alternative accelerator (QKeySequence)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 shortcuts = self.shortcuts()
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 if len(shortcuts) < 2:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 return QKeySequence()
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 else:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 return shortcuts[1]
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
146
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
147 def setShortcut(self, shortcut):
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
148 """
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
149 Public slot to set the keyboard shortcut.
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
150
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
151 @param shortcut the accelerator (QKeySequence)
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
152 """
1131
7781e396c903 Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
153 super().setShortcut(shortcut)
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
154 self.__ammendToolTip()
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
155
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
156 def setShortcuts(self, shortcuts):
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
157 """
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
158 Public slot to set the list of keyboard shortcuts.
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
159
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
160 @param shortcuts list of keyboard accelerators (list of QKeySequence)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
161 or key for a platform dependent list of accelerators
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
162 (QKeySequence.StandardKey)
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
163 """
1131
7781e396c903 Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
164 super().setShortcuts(shortcuts)
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
165 self.__ammendToolTip()
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
166
1580
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
167 def setIconText(self, text):
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
168 """
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
169 Public slot to set the icon text of the action.
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
170
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
171 @param text new icon text (string)
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
172 """
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
173 super().setIconText(text)
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
174 self.__ammendToolTip()
7495b3e892a9 Enhanced the web browser about box and corrected the behavior of the web browser full screen toolbutton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1521
diff changeset
175
267
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
176 def __ammendToolTip(self):
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
177 """
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
178 Private slot to add the primary keyboard accelerator to the tooltip.
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
179 """
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
180 shortcut = self.shortcut().toString(QKeySequence.NativeText)
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
181 if shortcut:
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
182 if qApp.isLeftToRight():
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
183 fmt = "{0} ({1})"
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
184 else:
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
185 fmt = "({1}) {0}"
f4cd9c07da76 Added code to show the keyboard shortcut to the tooltip of an action.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 96
diff changeset
186 self.setToolTip(fmt.format(self.iconText(), shortcut))
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
188
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 def addActions(target, actions):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 Module function to add a list of actions to a widget.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 @param target reference to the target widget (QWidget)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 @param actions list of actions to be added to the target. A
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 None indicates a separator (list of QActions)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 if target is None:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 return
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 for action in actions:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 if action is None:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 target.addSeparator()
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 else:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 target.addAction(action)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
206
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
207 def createActionGroup(parent, name=None, exclusive=False):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 Module function to create an action group.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 @param parent parent object of the action group (QObject)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 @param name name of the action group object (string)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 @param exclusive flag indicating an exclusive action group (boolean)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 @return reference to the created action group (QActionGroup)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 actGrp = QActionGroup(parent)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 if name:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 actGrp.setObjectName(name)
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 actGrp.setExclusive(exclusive)
96
9624a110667d Started to clean up the code supported by py3flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
220 return actGrp

eric ide

mercurial