Thu, 26 Nov 2015 19:47:09 +0100
Changed more configuration pages to use the path picker.
--- a/E5Gui/E5PathPicker.py Wed Nov 25 19:01:45 2015 +0100 +++ b/E5Gui/E5PathPicker.py Thu Nov 26 19:47:09 2015 +0100 @@ -100,7 +100,7 @@ self.__completer = None # Set a new completer - if mode == E5PathPicker.DiretoryMode: + if mode == E5PathPickerModes.DiretoryMode: self.__completer = E5DirCompleter(self.__editor) else: self.__completer = E5FileCompleter(self.__editor)
--- a/Preferences/ConfigurationPages/EditorSpellCheckingPage.py Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/EditorSpellCheckingPage.py Thu Nov 26 19:47:09 2015 +0100 @@ -9,17 +9,12 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot - -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_EditorSpellCheckingPage import Ui_EditorSpellCheckingPage import Preferences -import Utilities -import UI.PixmapCache class EditorSpellCheckingPage(ConfigurationPageBase, @@ -35,8 +30,13 @@ self.setupUi(self) self.setObjectName("EditorSpellCheckingPage") - self.pwlButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.pelButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.pwlPicker.setMode(E5PathPickerModes.OpenFileMode) + self.pwlPicker.setFilters(self.tr( + "Dictionary File (*.dic);;All Files (*)")) + + self.pelPicker.setMode(E5PathPickerModes.OpenFileMode) + self.pelPicker.setFilters(self.tr( + "Dictionary File (*.dic);;All Files (*)")) from QScintilla.SpellChecker import SpellChecker languages = sorted(SpellChecker.getAvailableLanguages()) @@ -46,9 +46,6 @@ else: self.spellingFrame.setEnabled(False) - self.pwlFileCompleter = E5FileCompleter(self.pwlEdit, showHidden=True) - self.pelFileCompleter = E5FileCompleter(self.pelEdit, showHidden=True) - # set initial values self.checkingEnabledCheckBox.setChecked( Preferences.getEditor("SpellCheckingEnabled")) @@ -66,9 +63,9 @@ "SpellingMarkers", self.spellingMarkerButton, Preferences.getEditorColour, hasAlpha=True) - self.pwlEdit.setText( + self.pwlPicker.setText( Preferences.getEditor("SpellCheckingPersonalWordList")) - self.pelEdit.setText( + self.pelPicker.setText( Preferences.getEditor("SpellCheckingPersonalExcludeList")) if self.spellingFrame.isEnabled(): @@ -98,42 +95,14 @@ self.saveColours(Preferences.setEditorColour) Preferences.setEditor( - "SpellCheckingPersonalWordList", self.pwlEdit.text()) + "SpellCheckingPersonalWordList", self.pwlPicker.text()) Preferences.setEditor( - "SpellCheckingPersonalExcludeList", self.pelEdit.text()) + "SpellCheckingPersonalExcludeList", self.pelPicker.text()) Preferences.setEditor( "AutoSpellCheckingEnabled", self.enabledCheckBox.isChecked()) Preferences.setEditor( "AutoSpellCheckChunkSize", self.chunkSizeSpinBox.value()) - - @pyqtSlot() - def on_pwlButton_clicked(self): - """ - Private method to select the personal word list file. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select personal word list"), - self.pwlEdit.text(), - self.tr("Dictionary File (*.dic);;All Files (*)")) - - if file: - self.pwlEdit.setText(Utilities.toNativeSeparators(file)) - - @pyqtSlot() - def on_pelButton_clicked(self): - """ - Private method to select the personal exclude list file. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select personal exclude list"), - self.pelEdit.text(), - self.tr("Dictionary File (*.dic);;All Files (*)")) - - if file: - self.pelEdit.setText(Utilities.toNativeSeparators(file)) def create(dlg):
--- a/Preferences/ConfigurationPages/EditorSpellCheckingPage.ui Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/EditorSpellCheckingPage.ui Thu Nov 26 19:47:09 2015 +0100 @@ -232,9 +232,15 @@ </widget> </item> <item row="0" column="1"> - <widget class="QLineEdit" name="pwlEdit"> - <property name="toolTip"> - <string>Enter the filename of the personal word list</string> + <widget class="E5PathPicker" name="pwlPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> </widget> </item> @@ -246,40 +252,32 @@ </widget> </item> <item row="1" column="1"> - <widget class="QLineEdit" name="pelEdit"> - <property name="toolTip"> - <string>Enter the filename of the personal exclude list</string> + <widget class="E5PathPicker" name="pelPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> </widget> </item> - <item row="2" column="0" colspan="3"> + <item row="2" column="0" colspan="2"> <widget class="QLabel" name="label_6"> <property name="text"> <string><b>Note:</b> leave these entries empty to use the default</string> </property> </widget> </item> - <item row="3" column="0" colspan="3"> + <item row="3" column="0" colspan="2"> <widget class="QLabel" name="label_7"> <property name="text"> <string><b>Note:</b> valid for all newly opened editors</string> </property> </widget> </item> - <item row="0" column="2"> - <widget class="QToolButton" name="pwlButton"> - <property name="toolTip"> - <string>Select the personal word list file via a file selection dialog</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QToolButton" name="pelButton"> - <property name="toolTip"> - <string>Select the personal exclude list file via a file selection dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -360,16 +358,22 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>checkingEnabledCheckBox</tabstop> <tabstop>defaultLanguageCombo</tabstop> <tabstop>stringsOnlyCheckBox</tabstop> <tabstop>minimumWordSizeSlider</tabstop> <tabstop>spellingMarkerButton</tabstop> - <tabstop>pwlEdit</tabstop> - <tabstop>pwlButton</tabstop> - <tabstop>pelEdit</tabstop> - <tabstop>pelButton</tabstop> + <tabstop>pwlPicker</tabstop> + <tabstop>pelPicker</tabstop> <tabstop>enabledCheckBox</tabstop> <tabstop>chunkSizeSpinBox</tabstop> </tabstops>
--- a/Preferences/ConfigurationPages/HelpAppearancePage.py Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpAppearancePage.py Thu Nov 26 19:47:09 2015 +0100 @@ -11,15 +11,12 @@ from PyQt5.QtCore import pyqtSlot -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_HelpAppearancePage import Ui_HelpAppearancePage import Preferences -import Utilities -import UI.PixmapCache class HelpAppearancePage(ConfigurationPageBase, Ui_HelpAppearancePage): @@ -34,9 +31,7 @@ self.setupUi(self) self.setObjectName("HelpAppearancePage") - self.styleSheetButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.styleSheetCompleter = E5FileCompleter(self.styleSheetEdit) + self.styleSheetPicker.setMode(E5PathPickerModes.OpenFileMode) self.__displayMode = None @@ -59,7 +54,7 @@ self.autoLoadImagesCheckBox.setChecked( Preferences.getHelp("AutoLoadImages")) - self.styleSheetEdit.setText(Preferences.getHelp("UserStyleSheet")) + self.styleSheetPicker.setText(Preferences.getHelp("UserStyleSheet")) self.tabsCloseButtonCheckBox.setChecked( Preferences.getUI("SingleCloseButton")) @@ -99,7 +94,7 @@ "AutoLoadImages", self.autoLoadImagesCheckBox.isChecked()) - Preferences.setHelp("UserStyleSheet", self.styleSheetEdit.text()) + Preferences.setHelp("UserStyleSheet", self.styleSheetPicker.text()) self.saveColours(Preferences.setHelp) @@ -129,20 +124,6 @@ self.fixedFont = \ self.selectFont(self.fixedFontSample, self.fixedFont, True) - @pyqtSlot() - def on_styleSheetButton_clicked(self): - """ - Private slot to handle the user style sheet selection. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select Style Sheet"), - self.styleSheetEdit.text(), - "") - - if file: - self.styleSheetEdit.setText(Utilities.toNativeSeparators(file)) - def create(dlg): """
--- a/Preferences/ConfigurationPages/HelpAppearancePage.ui Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpAppearancePage.ui Thu Nov 26 19:47:09 2015 +0100 @@ -170,19 +170,21 @@ </widget> </item> <item> - <widget class="QLineEdit" name="styleSheetEdit"> + <widget class="E5PathPicker" name="styleSheetPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the file name of a user style sheet</string> </property> </widget> </item> - <item> - <widget class="QToolButton" name="styleSheetButton"> - <property name="toolTip"> - <string>Select the user style sheet via a file selection dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -227,13 +229,22 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>standardFontButton</tabstop> <tabstop>fixedFontButton</tabstop> <tabstop>secureURLsColourButton</tabstop> <tabstop>autoLoadImagesCheckBox</tabstop> - <tabstop>styleSheetEdit</tabstop> - <tabstop>styleSheetButton</tabstop> + <tabstop>styleSheetPicker</tabstop> + <tabstop>tabsCloseButtonCheckBox</tabstop> + <tabstop>warnOnMultipleCloseCheckBox</tabstop> </tabstops> <resources/> <connections/>
--- a/Preferences/ConfigurationPages/HelpDocumentationPage.py Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpDocumentationPage.py Thu Nov 26 19:47:09 2015 +0100 @@ -9,17 +9,13 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot, QUrl - -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_HelpDocumentationPage import Ui_HelpDocumentationPage import Preferences import Utilities -import UI.PixmapCache class HelpDocumentationPage(ConfigurationPageBase, Ui_HelpDocumentationPage): @@ -34,21 +30,31 @@ self.setupUi(self) self.setObjectName("HelpDocumentationPage") - self.python2DocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.pythonDocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.qt4DocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.qt5DocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.pyqt4DocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.pyqt5DocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.pysideDocDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.python2DocDirCompleter = E5FileCompleter(self.python2DocDirEdit) - self.pythonDocDirCompleter = E5FileCompleter(self.pythonDocDirEdit) - self.qt4DocDirCompleter = E5FileCompleter(self.qt4DocDirEdit) - self.qt5DocDirCompleter = E5FileCompleter(self.qt5DocDirEdit) - self.pyqt4DocDirCompleter = E5FileCompleter(self.pyqt4DocDirEdit) - self.pyqt5DocDirCompleter = E5FileCompleter(self.pyqt5DocDirEdit) - self.pysideDocDirCompleter = E5FileCompleter(self.pysideDocDirEdit) + self.python2DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.python2DocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;" + "Compressed Help Files (*.chm);;" + "All Files (*)")) + self.pythonDocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.pythonDocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;" + "Compressed Help Files (*.chm);;" + "All Files (*)")) + self.qt4DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.qt4DocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;All Files (*)")) + self.qt5DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.qt5DocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;All Files (*)")) + self.pyqt4DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.pyqt4DocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;All Files (*)")) + self.pyqt5DocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.pyqt5DocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;All Files (*)")) + self.pysideDocDirPicker.setMode(E5PathPickerModes.OpenFileMode) + self.pysideDocDirPicker.setFilters(self.tr( + "HTML Files (*.html *.htm);;All Files (*)")) try: import PyQt5 # __IGNORE_WARNING__ @@ -62,19 +68,19 @@ self.pysideGroup.setEnabled(False) # set initial values - self.python2DocDirEdit.setText( + self.python2DocDirPicker.setText( Preferences.getHelp("Python2DocDir")) - self.pythonDocDirEdit.setText( + self.pythonDocDirPicker.setText( Preferences.getHelp("PythonDocDir")) - self.qt4DocDirEdit.setText( + self.qt4DocDirPicker.setText( Preferences.getHelp("Qt4DocDir")) - self.qt5DocDirEdit.setText( + self.qt5DocDirPicker.setText( Preferences.getHelp("Qt5DocDir")) - self.pyqt4DocDirEdit.setText( + self.pyqt4DocDirPicker.setText( Preferences.getHelp("PyQt4DocDir")) - self.pyqt5DocDirEdit.setText( + self.pyqt5DocDirPicker.setText( Preferences.getHelp("PyQt5DocDir")) - self.pysideDocDirEdit.setText( + self.pysideDocDirPicker.setText( Preferences.getHelp("PySideDocDir")) def save(self): @@ -83,129 +89,25 @@ """ Preferences.setHelp( "Python2DocDir", - self.python2DocDirEdit.text()) + self.python2DocDirPicker.text()) Preferences.setHelp( "PythonDocDir", - self.pythonDocDirEdit.text()) + self.pythonDocDirPicker.text()) Preferences.setHelp( "Qt4DocDir", - self.qt4DocDirEdit.text()) + self.qt4DocDirPicker.text()) Preferences.setHelp( "Qt5DocDir", - self.qt5DocDirEdit.text()) + self.qt5DocDirPicker.text()) Preferences.setHelp( "PyQt4DocDir", - self.pyqt4DocDirEdit.text()) + self.pyqt4DocDirPicker.text()) Preferences.setHelp( "PyQt5DocDir", - self.pyqt5DocDirEdit.text()) + self.pyqt5DocDirPicker.text()) Preferences.setHelp( "PySideDocDir", - self.pysideDocDirEdit.text()) - - @pyqtSlot() - def on_python2DocDirButton_clicked(self): - """ - Private slot to select the Python 2 documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select Python 2 documentation entry"), - QUrl(self.python2DocDirEdit.text()).path(), - self.tr( - "HTML Files (*.html *.htm);;" - "Compressed Help Files (*.chm);;" - "All Files (*)")) - - if entry: - self.python2DocDirEdit.setText(Utilities.toNativeSeparators(entry)) - - @pyqtSlot() - def on_pythonDocDirButton_clicked(self): - """ - Private slot to select the Python 3 documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select Python 3 documentation entry"), - QUrl(self.pythonDocDirEdit.text()).path(), - self.tr( - "HTML Files (*.html *.htm);;" - "Compressed Help Files (*.chm);;" - "All Files (*)")) - - if entry: - self.pythonDocDirEdit.setText(Utilities.toNativeSeparators(entry)) - - @pyqtSlot() - def on_qt4DocDirButton_clicked(self): - """ - Private slot to select the Qt4 documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select Qt4 documentation entry"), - QUrl(self.qt4DocDirEdit.text()).path(), - self.tr("HTML Files (*.html *.htm);;All Files (*)")) - - if entry: - self.qt4DocDirEdit.setText(Utilities.toNativeSeparators(entry)) - - @pyqtSlot() - def on_qt5DocDirButton_clicked(self): - """ - Private slot to select the Qt5 documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select Qt5 documentation entry"), - QUrl(self.qt5DocDirEdit.text()).path(), - self.tr("HTML Files (*.html *.htm);;All Files (*)")) - - if entry: - self.qt5DocDirEdit.setText(Utilities.toNativeSeparators(entry)) - - @pyqtSlot() - def on_pyqt4DocDirButton_clicked(self): - """ - Private slot to select the PyQt5 documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select PyQt5 documentation entry"), - QUrl(self.pyqt4DocDirEdit.text()).path(), - self.tr("HTML Files (*.html *.htm);;All Files (*)")) - - if entry: - self.pyqt4DocDirEdit.setText(Utilities.toNativeSeparators(entry)) - - @pyqtSlot() - def on_pyqt5DocDirButton_clicked(self): - """ - Private slot to select the PyQt5 documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select PyQt5 documentation entry"), - QUrl(self.pyqt4DocDirEdit.text()).path(), - self.tr("HTML Files (*.html *.htm);;All Files (*)")) - - if entry: - self.pyqt5DocDirEdit.setText(Utilities.toNativeSeparators(entry)) - - @pyqtSlot() - def on_pysideDocDirButton_clicked(self): - """ - Private slot to select the PySide documentation directory. - """ - entry = E5FileDialog.getOpenFileName( - self, - self.tr("Select PySide documentation entry"), - QUrl(self.pysideDocDirEdit.text()).path(), - self.tr("HTML Files (*.html *.htm);;All Files (*)")) - - if entry: - self.pysideDocDirEdit.setText(Utilities.toNativeSeparators(entry)) + self.pysideDocDirPicker.text()) def create(dlg):
--- a/Preferences/ConfigurationPages/HelpDocumentationPage.ui Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpDocumentationPage.ui Thu Nov 26 19:47:09 2015 +0100 @@ -36,15 +36,24 @@ <property name="title"> <string>Python 2 Documentation</string> </property> - <layout class="QGridLayout" name="_2"> - <item row="0" column="0"> - <widget class="QLineEdit" name="python2DocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="E5PathPicker" name="python2DocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the Python 2 documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_3"> <property name="text"> <string><b>Note</b>: Leave empty to use the PYTHON2DOCDIR environment variable, if set.</string> @@ -54,13 +63,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="python2DocDirButton"> - <property name="toolTip"> - <string>Press to select the Python 2 documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -69,15 +71,24 @@ <property name="title"> <string>Python 3 Documentation</string> </property> - <layout class="QGridLayout"> - <item row="0" column="0"> - <widget class="QLineEdit" name="pythonDocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <widget class="E5PathPicker" name="pythonDocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the Python 3 documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_2"> <property name="text"> <string><b>Note</b>: Leave empty to use the PYTHON3DOCDIR environment variable, if set.</string> @@ -87,13 +98,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="pythonDocDirButton"> - <property name="toolTip"> - <string>Press to select the Python 3 documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -102,15 +106,24 @@ <property name="title"> <string>Qt4 Documentation</string> </property> - <layout class="QGridLayout"> - <item row="0" column="0"> - <widget class="QLineEdit" name="qt4DocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="E5PathPicker" name="qt4DocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the Qt4 documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_2_2_2"> <property name="text"> <string><b>Note</b>: Leave empty to use the QT4DOCDIR environment variable, if set.</string> @@ -120,13 +133,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="qt4DocDirButton"> - <property name="toolTip"> - <string>Press to select the Qt4 documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -135,15 +141,24 @@ <property name="title"> <string>Qt5 Documentation</string> </property> - <layout class="QGridLayout" name="_3"> - <item row="0" column="0"> - <widget class="QLineEdit" name="qt5DocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <item> + <widget class="E5PathPicker" name="qt5DocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the Qt5 documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_2_2_4"> <property name="text"> <string><b>Note</b>: Leave empty to use the QT5DOCDIR environment variable, if set.</string> @@ -153,13 +168,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="qt5DocDirButton"> - <property name="toolTip"> - <string>Press to select the Qt5 documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -168,15 +176,24 @@ <property name="title"> <string>PyQt4 Documentation</string> </property> - <layout class="QGridLayout"> - <item row="0" column="0"> - <widget class="QLineEdit" name="pyqt4DocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_6"> + <item> + <widget class="E5PathPicker" name="pyqt4DocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the PyQt4 documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_2_2_3"> <property name="text"> <string><b>Note</b>: Leave empty to use the PYQT4DOCDIR environment variable, if set.</string> @@ -186,13 +203,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="pyqt4DocDirButton"> - <property name="toolTip"> - <string>Press to select the PyQt4 documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -201,15 +211,24 @@ <property name="title"> <string>PyQt5 Documentation</string> </property> - <layout class="QGridLayout" name="_4"> - <item row="0" column="0"> - <widget class="QLineEdit" name="pyqt5DocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_7"> + <item> + <widget class="E5PathPicker" name="pyqt5DocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the PyQt5 documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_2_2_5"> <property name="text"> <string><b>Note</b>: Leave empty to use the PYQT5DOCDIR environment variable, if set.</string> @@ -219,13 +238,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="pyqt5DocDirButton"> - <property name="toolTip"> - <string>Press to select the PyQt5 documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -234,15 +246,24 @@ <property name="title"> <string>PySide Documentation</string> </property> - <layout class="QGridLayout"> - <item row="0" column="0"> - <widget class="QLineEdit" name="pysideDocDirEdit"> + <layout class="QVBoxLayout" name="verticalLayout_8"> + <item> + <widget class="E5PathPicker" name="pysideDocDirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the PySide documentation directory</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="textLabel1_8_2_2"> <property name="text"> <string><b>Note</b>: Leave empty to use the PYSIDEDOCDIR environment variable, if set.</string> @@ -252,13 +273,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QToolButton" name="pysideDocDirButton"> - <property name="toolTip"> - <string>Press to select the PySide documentation directory via a dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -277,22 +291,14 @@ </item> </layout> </widget> - <tabstops> - <tabstop>python2DocDirEdit</tabstop> - <tabstop>python2DocDirButton</tabstop> - <tabstop>pythonDocDirEdit</tabstop> - <tabstop>pythonDocDirButton</tabstop> - <tabstop>qt4DocDirEdit</tabstop> - <tabstop>qt4DocDirButton</tabstop> - <tabstop>qt5DocDirEdit</tabstop> - <tabstop>qt5DocDirButton</tabstop> - <tabstop>pyqt4DocDirEdit</tabstop> - <tabstop>pyqt4DocDirButton</tabstop> - <tabstop>pyqt5DocDirEdit</tabstop> - <tabstop>pyqt5DocDirButton</tabstop> - <tabstop>pysideDocDirEdit</tabstop> - <tabstop>pysideDocDirButton</tabstop> - </tabstops> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <resources/> <connections/> </ui>
--- a/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py Thu Nov 26 19:47:09 2015 +0100 @@ -9,17 +9,12 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot - -from E5Gui.E5Completers import E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_HelpFlashCookieManagerPage import Ui_HelpFlashCookieManagerPage import Preferences -import Utilities -import UI.PixmapCache class HelpFlashCookieManagerPage(ConfigurationPageBase, @@ -35,12 +30,10 @@ self.setupUi(self) self.setObjectName("HelpFlashCookieManagerPage") - self.flashDataPathButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.flashDataPathCompleter = E5DirCompleter(self.flashDataPathEdit) + self.flashDataPathPicker.setMode(E5PathPickerModes.DiretoryMode) # set initial values - self.flashDataPathEdit.setText( + self.flashDataPathPicker.setText( Preferences.getHelp("FlashCookiesDataPath")) self.autoModeGroup.setChecked( Preferences.getHelp("FlashCookieAutoRefresh")) @@ -54,7 +47,7 @@ Public slot to save the Flash Cookies Manager configuration. """ Preferences.setHelp("FlashCookiesDataPath", - self.flashDataPathEdit.text()) + self.flashDataPathPicker.text()) Preferences.setHelp("FlashCookieAutoRefresh", self.autoModeGroup.isChecked()) Preferences.setHelp("FlashCookieNotify", @@ -62,20 +55,6 @@ Preferences.setHelp("FlashCookiesDeleteOnStartExit", self.deleteGroup.isChecked()) - @pyqtSlot() - def on_flashDataPathButton_clicked(self): - """ - Private slot to handle the flash data path selection. - """ - path = E5FileDialog.getExistingDirectory( - self, - self.tr("Select Flash Cookies Data Path"), - self.flashDataPathEdit.text(), - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if path: - self.flashDataPathEdit.setText(Utilities.toNativeSeparators(path)) - def create(dlg): """
--- a/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.ui Wed Nov 25 19:01:45 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.ui Thu Nov 26 19:47:09 2015 +0100 @@ -36,24 +36,15 @@ <property name="title"> <string>Flash Data Path</string> </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="0" column="0"> - <widget class="QLineEdit" name="flashDataPathEdit"/> - </item> - <item row="0" column="1"> - <widget class="QToolButton" name="flashDataPathButton"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string/> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="E5PathPicker" name="flashDataPathPicker" native="true"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> </property> </widget> </item> - <item row="1" column="0" colspan="2"> + <item> <widget class="QLabel" name="label"> <property name="text"> <string><b>Note</b>: You should select the directory that contains #SharedObject as a subfolder.</string> @@ -193,9 +184,16 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>flashDataPathEdit</tabstop> - <tabstop>flashDataPathButton</tabstop> + <tabstop>flashDataPathPicker</tabstop> <tabstop>autoModeGroup</tabstop> <tabstop>notificationGroup</tabstop> <tabstop>deleteGroup</tabstop>