Changed more configuration pages to use the path picker.

Thu, 26 Nov 2015 19:47:09 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 26 Nov 2015 19:47:09 +0100
changeset 4576
a258569d44db
parent 4575
464a6b049f89
child 4577
e79a139aacc4

Changed more configuration pages to use the path picker.

E5Gui/E5PathPicker.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorSpellCheckingPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorSpellCheckingPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpAppearancePage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpAppearancePage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpDocumentationPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpDocumentationPage.ui file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/HelpFlashCookieManagerPage.ui file | annotate | diff | comparison | revisions
--- 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>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Note:&lt;/b&gt; 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>&lt;b&gt;Note&lt;/b&gt;: 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>

eric ide

mercurial