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()