eric6/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py

changeset 7743
817a81a2e6aa
parent 7360
9190402e4505
child 7759
51aa6c6b66f7
--- a/eric6/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat Oct 03 16:52:11 2020 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat Oct 03 16:54:16 2020 +0200
@@ -612,20 +612,23 @@
         @rtype list of int and tuple of (int, int)
         """
         itm = self.styleElementList.currentItem()
-        parent = itm.parent()
-        if parent is None:
-            currentData = (
-                None, self.styleElementList.indexOfTopLevelItem(itm))
+        if itm:
+            parent = itm.parent()
+            if parent is None:
+                currentData = (
+                    None, self.styleElementList.indexOfTopLevelItem(itm))
+            else:
+                currentData = (
+                    self.styleElementList.indexOfTopLevelItem(parent),
+                    parent.indexOfChild(itm)
+                )
+            
+            savedState = [
+                self.lexerLanguageComboBox.currentIndex(),
+                currentData,
+            ]
         else:
-            currentData = (
-                self.styleElementList.indexOfTopLevelItem(parent),
-                parent.indexOfChild(itm)
-            )
-        
-        savedState = [
-            self.lexerLanguageComboBox.currentIndex(),
-            currentData,
-        ]
+            savedState = []
         return savedState
     
     def setState(self, state):
@@ -634,17 +637,18 @@
         
         @param state state data generated by saveState
         """
-        self.lexerLanguageComboBox.setCurrentIndex(state[0])
-        self.on_lexerLanguageComboBox_activated(
-            self.lexerLanguageComboBox.currentText())
-        
-        parentIndex, index = state[1]
-        if parentIndex is None:
-            itm = self.styleElementList.topLevelItem(index)
-        else:
-            parent = self.styleElementList.topLevelItem(parentIndex)
-            itm = parent.child(index)
-        self.styleElementList.setCurrentItem(itm)
+        if state:
+            self.lexerLanguageComboBox.setCurrentIndex(state[0])
+            self.on_lexerLanguageComboBox_activated(
+                self.lexerLanguageComboBox.currentText())
+            
+            parentIndex, index = state[1]
+            if parentIndex is None:
+                itm = self.styleElementList.topLevelItem(index)
+            else:
+                parent = self.styleElementList.topLevelItem(parentIndex)
+                itm = parent.child(index)
+            self.styleElementList.setCurrentItem(itm)
     
     #######################################################################
     ## Methods to add, delete and edit sub-styles and their definitions

eric ide

mercurial