SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py

Wed, 08 Apr 2020 19:22:13 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 08 Apr 2020 19:22:13 +0200
changeset 39
401d0bab970d
parent 38
f9f7c3af2f18
child 41
e747eb5f3f43
permissions
-rw-r--r--

Replaced pixmap icons by vector icons.

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

eric ide

mercurial