SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py

changeset 7
e6addbe23b18
parent 3
b26df0282953
child 11
7c821731282a
diff -r 5e92a5654d3a -r e6addbe23b18 SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py
--- a/SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py	Mon Apr 21 18:46:07 2014 +0200
+++ b/SelectionEncloser/ConfigurationPage/SelectionEncloserPage.py	Tue Apr 22 18:40:09 2014 +0200
@@ -43,9 +43,12 @@
         self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png"))
         self.addMenuButton.setIcon(UI.PixmapCache.getIcon(
             os.path.join("SelectionEncloser", "icons", "topAdd.png")))
+        self.addSeparatorButton.setIcon(UI.PixmapCache.getIcon(
+            os.path.join("SelectionEncloser", "icons", "separatorAdd.png")))
         
         self.editButton.setEnabled(False)
         self.addButton.setEnabled(False)
+        self.addSeparatorButton.setEnabled(False)
         self.deleteButton.setEnabled(False)
         self.upButton.setEnabled(False)
         self.downButton.setEnabled(False)
@@ -55,8 +58,12 @@
         # set initial values
         hierarchy = self.__plugin.getPreferences("MenuHierarchy")
         for menuTitle, entries in hierarchy:
+            if menuTitle == '--Separator--':
+                menuTitle = self.tr('--Separator--')
             top = QTreeWidgetItem(self.menuTree, [menuTitle])
             for title, encString in entries:
+                if title == '--Separator--':
+                    title = self.tr('--Separator--')
                 itm = QTreeWidgetItem(top, [title])
                 itm.setData(0, Qt.UserRole, encString)
             top.setExpanded(True)
@@ -68,10 +75,16 @@
         hierarchy = []
         for topIndex in range(self.menuTree.topLevelItemCount()):
             topItem = self.menuTree.topLevelItem(topIndex)
-            topEntry = [topItem.text(0), []]
+            menuTitle = topItem.text(0)
+            if menuTitle == self.tr('--Separator--'):
+                menuTitle = '--Separator--'
+            topEntry = [menuTitle, []]
             for index in range(topItem.childCount()):
                 itm = topItem.child(index)
-                topEntry[1].append([itm.text(0), itm.data(0, Qt.UserRole)])
+                title = itm.text(0)
+                if title == self.tr('--Separator--'):
+                    title = '--Separator--'
+                topEntry[1].append([title, itm.data(0, Qt.UserRole)])
             hierarchy.append(topEntry)
         self.__plugin.setPreferences("MenuHierarchy", hierarchy)
     
@@ -102,6 +115,23 @@
             itm.setData(0, Qt.UserRole, encString)
     
     @pyqtSlot()
+    def on_addSeparatorButton_clicked(self):
+        """
+        Private slot to add a separator entry below the selected entry.
+        """
+        selItm = self.menuTree.selectedItems()[0]
+        parent = selItm.parent()
+        itm = QTreeWidgetItem([self.tr('--Separator--')])
+        if parent is None:
+            # top level item
+            index = self.menuTree.indexOfTopLevelItem(selItm) + 1
+            self.menuTree.insertTopLevelItem(index, itm)
+        else:
+            # sub item
+            index = parent.indexOfChild(selItm) + 1
+            parent.insertChild(index, itm)
+    
+    @pyqtSlot()
     def on_deleteButton_clicked(self):
         """
         Private slot to delete the selected entry.
@@ -186,6 +216,7 @@
         """
         if len(self.menuTree.selectedItems()) == 0:
             self.addButton.setEnabled(False)
+            self.addSeparatorButton.setEnabled(False)
             self.deleteButton.setEnabled(False)
             self.upButton.setEnabled(False)
             self.downButton.setEnabled(False)
@@ -212,6 +243,7 @@
                     downEnable = False
                 addEnable = False
             self.addButton.setEnabled(addEnable)
+            self.addSeparatorButton.setEnabled(True)
             self.deleteButton.setEnabled(True)
             self.upButton.setEnabled(upEnable)
             self.downButton.setEnabled(downEnable)

eric ide

mercurial