SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py

Wed, 14 Oct 2020 19:37:46 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 14 Oct 2020 19:37:46 +0200
changeset 43
135907873e65
parent 41
e747eb5f3f43
child 45
896b66ba45f0
permissions
-rw-r--r--

Changed calls of exec_() into exec().

1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
38
f9f7c3af2f18 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 37
diff changeset
3 # Copyright (c) 2014 - 2020 Detlev Offenbach <detlev@die-offenbachs.de>
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
4 #
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
5
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing Selection Encloser configuration page.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
16
d5eee7835f33 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
12 from PyQt5.QtCore import pyqtSlot, Qt
d5eee7835f33 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
13 from PyQt5.QtWidgets import QTreeWidgetItem, QInputDialog, QLineEdit, QDialog
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
39
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
15 from E5Gui.E5Application import e5App
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
16
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
17 from Preferences.ConfigurationPages.ConfigurationPageBase import (
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 ConfigurationPageBase
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
19 )
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 from .Ui_SelectionEncloserPage import Ui_SelectionEncloserPage
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import UI.PixmapCache
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 class SelectionEncloserPage(ConfigurationPageBase, Ui_SelectionEncloserPage):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Class implementing Selection Encloser configuration page.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 def __init__(self, plugin):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param plugin reference to the plugin object
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 super(SelectionEncloserPage, self).__init__()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.setupUi(self)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.setObjectName("SelectionEncloserPage")
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
39
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
39 try:
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
40 usesDarkPalette = e5App().usesDarkPalette()
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
41 except AttributeError:
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
42 from PyQt5.QtGui import QPalette
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
43 palette = e5App().palette()
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
44 lightness = palette.color(QPalette.Window).lightness()
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
45 usesDarkPalette = lightness <= 128
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
46 if usesDarkPalette:
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
47 iconSuffix = "dark"
39
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
48 else:
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
49 iconSuffix = "light"
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
50
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
51 self.editButton.setIcon(UI.PixmapCache.getIcon(
39
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
52 os.path.join("SelectionEncloser", "icons",
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
53 "edit-{0}".format(iconSuffix))))
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
54 self.addButton.setIcon(UI.PixmapCache.getIcon("plus"))
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
55 self.deleteButton.setIcon(UI.PixmapCache.getIcon("minus"))
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
56 self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow"))
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
57 self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow"))
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.addMenuButton.setIcon(UI.PixmapCache.getIcon(
39
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
59 os.path.join("SelectionEncloser", "icons",
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
60 "topAdd-{0}".format(iconSuffix))))
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
61 self.addSeparatorButton.setIcon(UI.PixmapCache.getIcon(
39
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
62 os.path.join("SelectionEncloser", "icons",
401d0bab970d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 38
diff changeset
63 "separatorAdd-{0}".format(iconSuffix))))
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
65 self.editButton.setEnabled(False)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.addButton.setEnabled(False)
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
67 self.addSeparatorButton.setEnabled(False)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.deleteButton.setEnabled(False)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.upButton.setEnabled(False)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.downButton.setEnabled(False)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.__plugin = plugin
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 # set initial values
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 hierarchy = self.__plugin.getPreferences("MenuHierarchy")
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 for menuTitle, entries in hierarchy:
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
77 if menuTitle == '--Separator--':
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
78 menuTitle = self.tr('--Separator--')
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 top = QTreeWidgetItem(self.menuTree, [menuTitle])
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
80 for title, encString in entries:
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
81 if title == '--Separator--':
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
82 title = self.tr('--Separator--')
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
83 itm = QTreeWidgetItem(top, [title])
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
84 itm.setData(0, Qt.UserRole, encString)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 top.setExpanded(True)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def save(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Public slot to save the Selection Encloser configuration.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 hierarchy = []
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 for topIndex in range(self.menuTree.topLevelItemCount()):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 topItem = self.menuTree.topLevelItem(topIndex)
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
94 menuTitle = topItem.text(0)
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
95 if menuTitle == self.tr('--Separator--'):
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
96 menuTitle = '--Separator--'
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
97 topEntry = [menuTitle, []]
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 for index in range(topItem.childCount()):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 itm = topItem.child(index)
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
100 title = itm.text(0)
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
101 if title == self.tr('--Separator--'):
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
102 title = '--Separator--'
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
103 topEntry[1].append([title, itm.data(0, Qt.UserRole)])
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 hierarchy.append(topEntry)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.__plugin.setPreferences("MenuHierarchy", hierarchy)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @pyqtSlot()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 def on_addMenuButton_clicked(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 Private slot to add a top level menu item.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 menuTitle, ok = QInputDialog.getText(
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self,
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.tr("Menu Title"),
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.tr("Enter menu title:"),
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 QLineEdit.Normal)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 if ok and menuTitle:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 top = QTreeWidgetItem(self.menuTree, [menuTitle])
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 top.setExpanded(True)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 @pyqtSlot()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 def on_addButton_clicked(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 Private slot to add a menu entry.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 """
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
126 from .SelectionEncloserEditDialog import SelectionEncloserEditDialog
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
127 dlg = SelectionEncloserEditDialog(parent=self)
43
135907873e65 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
128 if dlg.exec() == QDialog.Accepted:
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
129 title, encString = dlg.getData()
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
130 itm = QTreeWidgetItem(self.menuTree.selectedItems()[0], [title])
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
131 itm.setData(0, Qt.UserRole, encString)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 @pyqtSlot()
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
134 def on_addSeparatorButton_clicked(self):
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
135 """
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
136 Private slot to add a separator entry below the selected entry.
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
137 """
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
138 selItm = self.menuTree.selectedItems()[0]
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
139 parent = selItm.parent()
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
140 itm = QTreeWidgetItem([self.tr('--Separator--')])
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
141 if parent is None:
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
142 # top level item
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
143 index = self.menuTree.indexOfTopLevelItem(selItm) + 1
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
144 self.menuTree.insertTopLevelItem(index, itm)
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
145 else:
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
146 # sub item
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
147 index = parent.indexOfChild(selItm) + 1
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
148 parent.insertChild(index, itm)
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
149
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
150 @pyqtSlot()
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 def on_deleteButton_clicked(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 Private slot to delete the selected entry.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 itm = self.menuTree.selectedItems()[0]
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 parent = itm.parent()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 if parent is None:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 index = self.menuTree.indexOfTopLevelItem(itm)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.menuTree.takeTopLevelItem(index)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 else:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 index = parent.indexOfChild(itm)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 parent.takeChild(index)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 del itm
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 @pyqtSlot()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 def on_upButton_clicked(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 """
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
168 Private slot to move an entry up.
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
170 self.__moveSelectedEntry(True)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 @pyqtSlot()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 def on_downButton_clicked(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
175 Private slot to move an entry down.
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
176 """
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
177 self.__moveSelectedEntry(False)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
178
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
179 def __moveSelectedEntry(self, moveUp):
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
180 """
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
181 Private method to move the selected entry up or down.
11
7c821731282a Fixed a bug and added some missing source docu strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
182
7c821731282a Fixed a bug and added some missing source docu strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
183 @param moveUp flag indicating to move the entry up (boolean)
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
184 """
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
185 itm = self.menuTree.selectedItems()[0]
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
186 parent = itm.parent()
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
187 if parent is None:
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
188 # top level item
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
189 index = self.menuTree.indexOfTopLevelItem(itm)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
190 newIndex = index - 1 if moveUp else index + 1
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
191 self.menuTree.takeTopLevelItem(index)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
192 self.menuTree.insertTopLevelItem(newIndex, itm)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
193 itm.setExpanded(True)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194 else:
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 # sub item
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
196 index = parent.indexOfChild(itm)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
197 newIndex = index - 1 if moveUp else index + 1
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
198 parent.takeChild(index)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
199 parent.insertChild(newIndex, itm)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
200 for sitm in self.menuTree.selectedItems():
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
201 sitm.setSelected(False)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
202 itm.setSelected(True)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
203
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
204 @pyqtSlot()
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
205 def on_editButton_clicked(self):
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
206 """
11
7c821731282a Fixed a bug and added some missing source docu strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
207 Private slot to edit the selected entry.
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 """
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
209 itm = self.menuTree.selectedItems()[0]
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
210 parent = itm.parent()
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
211 if parent is None:
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
212 menuTitle, ok = QInputDialog.getText(
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
213 self,
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
214 self.tr("Menu Entry"),
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
215 self.tr("Enter menu entry text:"),
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
216 QLineEdit.Normal,
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
217 itm.text(0))
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
218 if ok and menuTitle:
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
219 itm.setText(0, menuTitle)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
220 else:
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
221 from .SelectionEncloserEditDialog import (
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
222 SelectionEncloserEditDialog
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
223 )
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
224 dlg = SelectionEncloserEditDialog(
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
225 itm.text(0), itm.data(0, Qt.UserRole), self)
43
135907873e65 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
226 if dlg.exec() == QDialog.Accepted:
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
227 title, encString = dlg.getData()
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
228 itm.setText(0, title)
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
229 itm.setData(0, Qt.UserRole, encString)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 @pyqtSlot()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 def on_menuTree_itemSelectionChanged(self):
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 Private slot handling the selection of an item.
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 """
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 if len(self.menuTree.selectedItems()) == 0:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 self.addButton.setEnabled(False)
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
238 self.addSeparatorButton.setEnabled(False)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 self.deleteButton.setEnabled(False)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 self.upButton.setEnabled(False)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 self.downButton.setEnabled(False)
3
b26df0282953 Finished implementing the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
242 self.editButton.setEnabled(False)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 else:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 addEnable = True
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 upEnable = True
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 downEnable = True
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 itm = self.menuTree.selectedItems()[0]
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 parent = itm.parent()
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 if parent is None:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 # top level item
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 if self.menuTree.indexOfTopLevelItem(itm) == 0:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 upEnable = False
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
253 if (
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
254 self.menuTree.indexOfTopLevelItem(itm) ==
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
255 self.menuTree.topLevelItemCount() - 1
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
256 ):
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 downEnable = False
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 else:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 # sub item
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 if parent.indexOfChild(itm) == 0:
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 upEnable = False
41
e747eb5f3f43 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 39
diff changeset
262 if parent.indexOfChild(itm) == parent.childCount() - 1:
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 downEnable = False
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 addEnable = False
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 self.addButton.setEnabled(addEnable)
7
e6addbe23b18 Added capability to insert a separator and Spanish translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
266 self.addSeparatorButton.setEnabled(True)
1
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 self.deleteButton.setEnabled(True)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 self.upButton.setEnabled(upEnable)
a9f6842a18f6 Implemented most of the functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 self.downButton.setEnabled(downEnable)
11
7c821731282a Fixed a bug and added some missing source docu strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
270 self.editButton.setEnabled(itm.text(0) != self.tr("--Separator--"))

eric ide

mercurial