Project/DebuggerPropertiesDialog.py

changeset 5525
1771a7f9065c
parent 5389
9b1c800daff3
child 5558
858abfcbaf28
diff -r b96b6e7cd8a4 -r 1771a7f9065c Project/DebuggerPropertiesDialog.py
--- a/Project/DebuggerPropertiesDialog.py	Thu Feb 16 18:52:42 2017 +0100
+++ b/Project/DebuggerPropertiesDialog.py	Thu Feb 16 18:58:58 2017 +0100
@@ -13,7 +13,7 @@
 import sys
 
 from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog
+from PyQt5.QtWidgets import QDialog, QComboBox
 
 from E5Gui.E5Completers import E5DirCompleter
 from E5Gui.E5PathPicker import E5PathPickerModes
@@ -23,6 +23,9 @@
 
 from eric6config import getConfig
 
+import Preferences
+import UI.PixmapCache
+
 
 class DebuggerPropertiesDialog(QDialog, Ui_DebuggerPropertiesDialog):
     """
@@ -42,8 +45,25 @@
             self.setObjectName(name)
         self.setupUi(self)
         
+        debugClientsHistory = Preferences.getProject(
+            "DebugClientsHistory")
         self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.debugClientPicker.setInsertPolicy(QComboBox.InsertAtTop)
+        self.debugClientPicker.setSizeAdjustPolicy(
+            QComboBox.AdjustToMinimumContentsLength)
+        self.debugClientPicker.setPathsList(debugClientsHistory)
+        self.debugClientClearHistoryButton.setIcon(
+            UI.PixmapCache.getIcon("editDelete.png"))
+        
+        interpreterHistory = Preferences.getProject(
+            "DebuggerInterpreterHistory")
         self.interpreterPicker.setMode(E5PathPickerModes.OpenFileMode)
+        self.interpreterPicker.setInsertPolicy(QComboBox.InsertAtTop)
+        self.interpreterPicker.setSizeAdjustPolicy(
+            QComboBox.AdjustToMinimumContentsLength)
+        self.interpreterPicker.setPathsList(interpreterHistory)
+        self.interpreterClearHistoryButton.setIcon(
+            UI.PixmapCache.getIcon("editDelete.png"))
         
         self.translationLocalCompleter = E5DirCompleter(
             self.translationLocalEdit)
@@ -160,3 +180,47 @@
         self.project.debugProperties["NOENCODING"] = \
             self.noEncodingCheckBox.isChecked()
         self.project.debugPropertiesLoaded = True
+        
+        self.__saveHistories()
+    
+    def __saveHistories(self):
+        """
+        Private method to save the path picker histories.
+        """
+        debugClient = self.debugClientPicker.text()
+        debugClientsHistory = self.debugClientPicker.getPathItems()
+        if debugClient not in debugClientsHistory:
+            debugClientsHistory.insert(0, debugClient)
+        Preferences.setProject("DebugClientsHistory",
+                               debugClientsHistory)
+        
+        interpreter = self.interpreterPicker.text()
+        interpreterHistory = self.interpreterPicker.getPathItems()
+        if interpreter not in interpreterHistory:
+            interpreterHistory.insert(0, interpreter)
+        Preferences.setProject("DebuggerInterpreterHistory",
+                               interpreterHistory)
+    
+    @pyqtSlot()
+    def on_debugClientClearHistoryButton_clicked(self):
+        """
+        Private slot to clear the debug clients history.
+        """
+        self.__clearHistory(self.debugClientPicker)
+    
+    @pyqtSlot()
+    def on_interpreterClearHistoryButton_clicked(self):
+        """
+        Private slot to clear the interpreter history.
+        """
+        self.__clearHistory(self.interpreterPicker)
+    
+    def __clearHistory(self, picker):
+        """
+        Private method to clear a path picker history
+        """
+        currentText = picker.text()
+        picker.clear()
+        picker.setText(currentText)
+        
+        self.__saveHistories()

eric ide

mercurial