Fri, 27 Nov 2015 20:06:52 +0100
Changed more configuration pages to use the path picker.
--- a/Preferences/ConfigurationPages/HelpViewersPage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpViewersPage.py Fri Nov 27 20:06:52 2015 +0100 @@ -9,18 +9,14 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QButtonGroup -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_HelpViewersPage import Ui_HelpViewersPage import Preferences -import Utilities -import UI.PixmapCache class HelpViewersPage(ConfigurationPageBase, Ui_HelpViewersPage): @@ -35,8 +31,7 @@ self.setupUi(self) self.setObjectName("HelpViewersPage") - self.customViewerSelectionButton.setIcon( - UI.PixmapCache.getIcon("open.png")) + self.customViewerPicker.setMode(E5PathPickerModes.OpenFileMode) self.helpViewerGroup = QButtonGroup() self.helpViewerGroup.addButton(self.helpBrowserButton) @@ -44,8 +39,6 @@ self.helpViewerGroup.addButton(self.webBrowserButton) self.helpViewerGroup.addButton(self.customViewerButton) - self.customViewerCompleter = E5FileCompleter(self.customViewerEdit) - # set initial values hvId = Preferences.getHelp("HelpViewerType") if hvId == 1: @@ -56,7 +49,7 @@ self.webBrowserButton.setChecked(True) else: self.customViewerButton.setChecked(True) - self.customViewerEdit.setText( + self.customViewerPicker.setText( Preferences.getHelp("CustomViewer")) def save(self): @@ -74,63 +67,7 @@ Preferences.setHelp("HelpViewerType", hvId) Preferences.setHelp( "CustomViewer", - self.customViewerEdit.text()) - - @pyqtSlot() - def on_customViewerSelectionButton_clicked(self): - """ - Private slot to handle the custom viewer selection. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select Custom Viewer"), - self.customViewerEdit.text(), - "") - - if file: - self.customViewerEdit.setText(Utilities.toNativeSeparators(file)) - - @pyqtSlot() - def on_webbrowserButton_clicked(self): - """ - Private slot to handle the Web browser selection. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select Web-Browser"), - self.webbrowserEdit.text(), - "") - - if file: - self.webbrowserEdit.setText(Utilities.toNativeSeparators(file)) - - @pyqtSlot() - def on_pdfviewerButton_clicked(self): - """ - Private slot to handle the PDF viewer selection. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select PDF-Viewer"), - self.pdfviewerEdit.text(), - "") - - if file: - self.pdfviewerEdit.setText(Utilities.toNativeSeparators(file)) - - @pyqtSlot() - def on_chmviewerButton_clicked(self): - """ - Private slot to handle the CHM viewer selection. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select CHM-Viewer"), - self.chmviewerEdit.text(), - "") - - if file: - self.chmviewerEdit.setText(Utilities.toNativeSeparators(file)) + self.customViewerPicker.text()) def create(dlg):
--- a/Preferences/ConfigurationPages/HelpViewersPage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpViewersPage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -36,38 +36,17 @@ <property name="title"> <string>Help Viewer</string> </property> - <layout class="QGridLayout"> - <item row="1" column="0" colspan="4"> - <layout class="QHBoxLayout"> - <item> - <widget class="QLineEdit" name="customViewerEdit"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Enter the custom viewer to be used</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="customViewerSelectionButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Press to select the custom viewer via a file selection dialog</string> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="3"> - <widget class="QRadioButton" name="customViewerButton"> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QRadioButton" name="helpBrowserButton"> <property name="toolTip"> - <string>Select to use a custom viewer</string> + <string>Select to use the Eric Web Browser</string> </property> <property name="text"> - <string>Custom</string> + <string>Eric Web Browser</string> + </property> + <property name="checked"> + <bool>true</bool> </property> </widget> </item> @@ -81,19 +60,6 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QRadioButton" name="helpBrowserButton"> - <property name="toolTip"> - <string>Select to use the Eric Web Browser</string> - </property> - <property name="text"> - <string>Eric Web Browser</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> <item row="0" column="2"> <widget class="QRadioButton" name="webBrowserButton"> <property name="toolTip"> @@ -104,6 +70,35 @@ </property> </widget> </item> + <item row="0" column="3"> + <widget class="QRadioButton" name="customViewerButton"> + <property name="toolTip"> + <string>Select to use a custom viewer</string> + </property> + <property name="text"> + <string>Custom</string> + </property> + </widget> + </item> + <item row="1" column="0" colspan="4"> + <widget class="E5PathPicker" name="customViewerPicker" native="true"> + <property name="enabled"> + <bool>false</bool> + </property> + <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 custom viewer to be used</string> + </property> + </widget> + </item> </layout> </widget> </item> @@ -122,29 +117,35 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>helpBrowserButton</tabstop> <tabstop>qtAssistantButton</tabstop> <tabstop>webBrowserButton</tabstop> <tabstop>customViewerButton</tabstop> - <tabstop>customViewerEdit</tabstop> - <tabstop>customViewerSelectionButton</tabstop> </tabstops> <resources/> <connections> <connection> <sender>customViewerButton</sender> <signal>toggled(bool)</signal> - <receiver>customViewerEdit</receiver> + <receiver>customViewerPicker</receiver> <slot>setEnabled(bool)</slot> <hints> <hint type="sourcelabel"> - <x>592</x> - <y>94</y> + <x>496</x> + <y>72</y> </hint> <hint type="destinationlabel"> - <x>231</x> - <y>109</y> + <x>493</x> + <y>90</y> </hint> </hints> </connection>
--- a/Preferences/ConfigurationPages/IconsPage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/IconsPage.py Fri Nov 27 20:06:52 2015 +0100 @@ -12,15 +12,12 @@ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QListWidgetItem -from E5Gui.E5Completers import E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_IconsPage import Ui_IconsPage import Preferences -import Utilities -import UI.PixmapCache class IconsPage(ConfigurationPageBase, Ui_IconsPage): @@ -35,9 +32,7 @@ self.setupUi(self) self.setObjectName("IconsPage") - self.iconDirectoryButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.iconDirectoryCompleter = E5DirCompleter(self.iconDirectoryEdit) + self.iconDirectoryPicker.setMode(E5PathPickerModes.DiretoryMode) # set initial values dirList = Preferences.getIcons("Path")[:] @@ -66,7 +61,7 @@ self.upButton.setEnabled(False) self.downButton.setEnabled(False) self.showIconsButton.setEnabled( - self.iconDirectoryEdit.text() != "") + self.iconDirectoryPicker.text() != "") else: maxIndex = self.iconDirectoryList.count() - 1 self.upButton.setEnabled(row != 0) @@ -74,11 +69,11 @@ self.deleteIconDirectoryButton.setEnabled(True) self.showIconsButton.setEnabled(True) - def on_iconDirectoryEdit_textChanged(self, txt): + def on_iconDirectoryPicker_textChanged(self, txt): """ - Private slot to handle the textChanged signal of the directory edit. + Private slot to handle the textChanged signal of the directory picker. - @param txt the text of the directory edit (string) + @param txt the text of the directory picker (string) """ self.addIconDirectoryButton.setEnabled(txt != "") self.showIconsButton.setEnabled( @@ -125,28 +120,14 @@ self.downButton.setEnabled(True) @pyqtSlot() - def on_iconDirectoryButton_clicked(self): - """ - Private slot to select an icon directory. - """ - dir = E5FileDialog.getExistingDirectory( - None, - self.tr("Select icon directory"), - "", - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if dir: - self.iconDirectoryEdit.setText(Utilities.toNativeSeparators(dir)) - - @pyqtSlot() def on_addIconDirectoryButton_clicked(self): """ Private slot to add the icon directory displayed to the listbox. """ - dir = self.iconDirectoryEdit.text() + dir = self.iconDirectoryPicker.text() if dir: QListWidgetItem(dir, self.iconDirectoryList) - self.iconDirectoryEdit.clear() + self.iconDirectoryPicker.clear() row = self.iconDirectoryList.currentRow() self.on_iconDirectoryList_currentRowChanged(row) @@ -166,7 +147,7 @@ """ Private slot to display a preview of an icons directory. """ - dir = self.iconDirectoryEdit.text() + dir = self.iconDirectoryPicker.text() if not dir: itm = self.iconDirectoryList.currentItem() if itm is not None:
--- a/Preferences/ConfigurationPages/IconsPage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/IconsPage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -10,7 +10,7 @@ <height>371</height> </rect> </property> - <layout class="QGridLayout"> + <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0" colspan="2"> <widget class="QLabel" name="headerLabel"> <property name="text"> @@ -38,57 +38,13 @@ </property> </widget> </item> - <item row="4" column="0"> - <layout class="QHBoxLayout"> - <item> - <widget class="QPushButton" name="deleteIconDirectoryButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Press to delete the selected directory from the list</string> - </property> - <property name="text"> - <string>Delete</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="addIconDirectoryButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Press to add the entered directory to the list</string> - </property> - <property name="text"> - <string>Add</string> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="iconDirectoryEdit"> - <property name="toolTip"> - <string>Enter a directory to be added</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="iconDirectoryButton"> - <property name="toolTip"> - <string>Press to select an icon directory via a selection dialog</string> - </property> - </widget> - </item> - </layout> - </item> - <item row="4" column="1"> - <widget class="QPushButton" name="showIconsButton"> - <property name="enabled"> - <bool>false</bool> + <item row="3" column="0"> + <widget class="QListWidget" name="iconDirectoryList"> + <property name="toolTip"> + <string>List of icon directories</string> </property> - <property name="text"> - <string>Show</string> + <property name="alternatingRowColors"> + <bool>true</bool> </property> </widget> </item> @@ -148,27 +104,77 @@ </item> </layout> </item> - <item row="3" column="0"> - <widget class="QListWidget" name="iconDirectoryList"> - <property name="toolTip"> - <string>List of icon directories</string> + <item row="4" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QPushButton" name="deleteIconDirectoryButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Press to delete the selected directory from the list</string> + </property> + <property name="text"> + <string>Delete</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="addIconDirectoryButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Press to add the entered directory to the list</string> + </property> + <property name="text"> + <string>Add</string> + </property> + </widget> + </item> + <item> + <widget class="E5PathPicker" name="iconDirectoryPicker" 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> + </layout> + </item> + <item row="4" column="1"> + <widget class="QPushButton" name="showIconsButton"> + <property name="enabled"> + <bool>false</bool> </property> - <property name="alternatingRowColors"> - <bool>true</bool> + <property name="text"> + <string>Show</string> </property> </widget> </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>iconDirectoryList</tabstop> <tabstop>upButton</tabstop> <tabstop>downButton</tabstop> <tabstop>deleteIconDirectoryButton</tabstop> - <tabstop>iconDirectoryEdit</tabstop> - <tabstop>iconDirectoryButton</tabstop> + <tabstop>addIconDirectoryButton</tabstop> + <tabstop>iconDirectoryPicker</tabstop> <tabstop>showIconsButton</tabstop> - <tabstop>addIconDirectoryButton</tabstop> </tabstops> <resources/> <connections/>
--- a/Preferences/ConfigurationPages/InterfacePage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/InterfacePage.py Fri Nov 27 20:06:52 2015 +0100 @@ -15,15 +15,13 @@ from PyQt5.QtCore import pyqtSlot, QTranslator from PyQt5.QtWidgets import QStyleFactory -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .ConfigurationPageBase import ConfigurationPageBase from .Ui_InterfacePage import Ui_InterfacePage import Preferences import Utilities -import UI.PixmapCache from eric6config import getConfig @@ -40,9 +38,10 @@ self.setupUi(self) self.setObjectName("InterfacePage") - self.styleSheetButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.styleSheetCompleter = E5FileCompleter(self.styleSheetEdit) + self.styleSheetPicker.setMode(E5PathPickerModes.OpenFileMode) + self.styleSheetPicker.setFilters(self.tr( + "Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;" + "All files (*)")) # set initial values self.__populateStyleCombo() @@ -63,7 +62,7 @@ Preferences.getUI("CaptionShowsFilename")) self.filenameLengthSpinBox.setValue( Preferences.getUI("CaptionFilenameLength")) - self.styleSheetEdit.setText(Preferences.getUI("StyleSheet")) + self.styleSheetPicker.setText(Preferences.getUI("StyleSheet")) if Preferences.getUI("TopLeftByLeft"): self.tlLeftButton.setChecked(True) @@ -141,7 +140,7 @@ self.filenameLengthSpinBox.value()) Preferences.setUI( "StyleSheet", - self.styleSheetEdit.text()) + self.styleSheetPicker.text()) # save the dockarea corner settings Preferences.setUI( @@ -247,22 +246,6 @@ self.languageComboBox.setCurrentIndex(currentIndex) @pyqtSlot() - def on_styleSheetButton_clicked(self): - """ - Private method to select the style sheet file via a dialog. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select style sheet file"), - self.styleSheetEdit.text(), - self.tr( - "Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;" - "All files (*)")) - - if file: - self.styleSheetEdit.setText(Utilities.toNativeSeparators(file)) - - @pyqtSlot() def on_resetLayoutButton_clicked(self): """ Private method to reset layout to factory defaults.
--- a/Preferences/ConfigurationPages/InterfacePage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/InterfacePage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -156,7 +156,7 @@ </widget> </item> <item> - <layout class="QGridLayout"> + <layout class="QGridLayout" name="gridLayout_3"> <item row="0" column="0"> <widget class="QLabel" name="label_2"> <property name="text"> @@ -164,7 +164,7 @@ </property> </widget> </item> - <item row="0" column="1" colspan="2"> + <item row="0" column="1"> <widget class="QComboBox" name="styleComboBox"> <property name="toolTip"> <string>Select the interface style</string> @@ -179,16 +179,18 @@ </widget> </item> <item row="1" column="1"> - <widget class="QLineEdit" name="styleSheetEdit"> - <property name="toolTip"> - <string>Enter the name of the style sheet file</string> + <widget class="E5PathPicker" name="styleSheetPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QToolButton" name="styleSheetButton"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> - <string>Select the style sheet file via a file selection dialog</string> + <string>Enter the path of the style sheet file</string> </property> </widget> </item> @@ -563,6 +565,14 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>uiBrowsersListFoldersFirstCheckBox</tabstop> <tabstop>uiBrowsersHideNonPublicCheckBox</tabstop> @@ -572,8 +582,7 @@ <tabstop>uiCaptionShowsFilenameGroupBox</tabstop> <tabstop>filenameLengthSpinBox</tabstop> <tabstop>styleComboBox</tabstop> - <tabstop>styleSheetEdit</tabstop> - <tabstop>styleSheetButton</tabstop> + <tabstop>styleSheetPicker</tabstop> <tabstop>tlTopButton</tabstop> <tabstop>tlLeftButton</tabstop> <tabstop>trTopButton</tabstop>
--- a/Preferences/ConfigurationPages/MultiProjectPage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/MultiProjectPage.py Fri Nov 27 20:06:52 2015 +0100 @@ -9,16 +9,13 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot - from .ConfigurationPageBase import ConfigurationPageBase from .Ui_MultiProjectPage import Ui_MultiProjectPage -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes import Preferences import Utilities -import UI.PixmapCache class MultiProjectPage(ConfigurationPageBase, Ui_MultiProjectPage): @@ -33,7 +30,7 @@ self.setupUi(self) self.setObjectName("MultiProjectPage") - self.workspaceButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.workspacePicker.setMode(E5PathPickerModes.DiretoryMode) # set initial values self.openMasterAutomaticallyCheckBox.setChecked( @@ -42,7 +39,7 @@ Preferences.getMultiProject("XMLTimestamp")) self.multiProjectRecentSpinBox.setValue( Preferences.getMultiProject("RecentNumber")) - self.workspaceEdit.setText( + self.workspacePicker.setText( Utilities.toNativeSeparators( Preferences.getMultiProject("Workspace") or Utilities.getHomeDir())) @@ -62,24 +59,7 @@ self.multiProjectRecentSpinBox.value()) Preferences.setMultiProject( "Workspace", - self.workspaceEdit.text()) - - @pyqtSlot() - def on_workspaceButton_clicked(self): - """ - Private slot to display a directory selection dialog. - """ - default = self.workspaceEdit.text() - if default == "": - default = Utilities.getHomeDir() - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select Workspace Directory"), - default, - E5FileDialog.Options(0)) - - if directory: - self.workspaceEdit.setText(Utilities.toNativeSeparators(directory)) + self.workspacePicker.text()) def create(dlg):
--- a/Preferences/ConfigurationPages/MultiProjectPage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/MultiProjectPage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>494</width> - <height>359</height> + <height>362</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> @@ -38,21 +38,19 @@ </property> <layout class="QHBoxLayout" name="horizontalLayout"> <item> - <widget class="QLineEdit" name="workspaceEdit"> + <widget class="E5PathPicker" name="workspacePicker" 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 name of the workspace directory</string> </property> - <property name="whatsThis"> - <string><b>Workspace Directory</b> -<p>Enter the directory of the workspace. This directory is used as the default for opening or saving new files or projects.</p></string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="workspaceButton"> - <property name="toolTip"> - <string>Select the workspace directory via a directory selection button</string> - </property> </widget> </item> </layout> @@ -160,9 +158,16 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>workspaceEdit</tabstop> - <tabstop>workspaceButton</tabstop> + <tabstop>workspacePicker</tabstop> <tabstop>openMasterAutomaticallyCheckBox</tabstop> <tabstop>multiProjectTimestampCheckBox</tabstop> <tabstop>multiProjectRecentSpinBox</tabstop>
--- a/Preferences/ConfigurationPages/NetworkPage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/NetworkPage.py Fri Nov 27 20:06:52 2015 +0100 @@ -9,20 +9,16 @@ from __future__ import unicode_literals -import os - from PyQt5.QtCore import pyqtSlot -from E5Gui.E5Completers import E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes + from E5Network.E5Ftp import E5FtpProxyType from .ConfigurationPageBase import ConfigurationPageBase from .Ui_NetworkPage import Ui_NetworkPage import Preferences -import Utilities -import UI.PixmapCache class NetworkPage(ConfigurationPageBase, Ui_NetworkPage): @@ -37,9 +33,7 @@ self.setupUi(self) self.setObjectName("NetworkPage") - self.downloadDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.downloadDirCompleter = E5DirCompleter(self.downloadDirEdit) + self.downloadDirPicker.setMode(E5PathPickerModes.DiretoryMode) self.ftpProxyTypeCombo.addItem( self.tr("No FTP Proxy"), E5FtpProxyType.NoProxy) @@ -63,7 +57,7 @@ self.tr("Bluecoat Proxy"), E5FtpProxyType.Bluecoat) # set initial values - self.downloadDirEdit.setText(Preferences.getUI("DownloadPath")) + self.downloadDirPicker.setText(Preferences.getUI("DownloadPath")) self.requestFilenameCheckBox.setChecked( Preferences.getUI("RequestDownloadFilename")) policy = Preferences.getHelp("DownloadManagerRemovePolicy") @@ -120,7 +114,7 @@ """ Preferences.setUI( "DownloadPath", - self.downloadDirEdit.text()) + self.downloadDirPicker.text()) Preferences.setUI( "RequestDownloadFilename", self.requestFilenameCheckBox.isChecked()) @@ -186,23 +180,6 @@ self.ftpProxyAccountEdit.text()) @pyqtSlot() - def on_downloadDirButton_clicked(self): - """ - Private slot to handle the directory selection via dialog. - """ - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select download directory"), - self.downloadDirEdit.text(), - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if directory: - dn = Utilities.toNativeSeparators(directory) - while dn.endswith(os.sep): - dn = dn[:-1] - self.downloadDirEdit.setText(dn) - - @pyqtSlot() def on_clearProxyPasswordsButton_clicked(self): """ Private slot to clear the saved HTTP(S) proxy passwords.
--- a/Preferences/ConfigurationPages/NetworkPage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/NetworkPage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -47,19 +47,21 @@ </widget> </item> <item> - <widget class="QLineEdit" name="downloadDirEdit"> + <widget class="E5PathPicker" name="downloadDirPicker" 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 download directory (leave empty to use the default location)</string> </property> </widget> </item> - <item> - <widget class="QToolButton" name="downloadDirButton"> - <property name="toolTip"> - <string>Select the download directory via a directory selection dialog</string> - </property> - </widget> - </item> </layout> </item> <item> @@ -442,9 +444,16 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>downloadDirEdit</tabstop> - <tabstop>downloadDirButton</tabstop> + <tabstop>downloadDirPicker</tabstop> <tabstop>requestFilenameCheckBox</tabstop> <tabstop>cleanupNeverButton</tabstop> <tabstop>cleanupExitButton</tabstop>
--- a/Preferences/ConfigurationPages/PluginManagerPage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/PluginManagerPage.py Fri Nov 27 20:06:52 2015 +0100 @@ -9,19 +9,14 @@ from __future__ import unicode_literals -import os - 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_PluginManagerPage import Ui_PluginManagerPage import Preferences -import Utilities -import UI.PixmapCache class PluginManagerPage(ConfigurationPageBase, Ui_PluginManagerPage): @@ -36,14 +31,12 @@ self.setupUi(self) self.setObjectName("PluginManagerPage") - self.downloadDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.downloadDirCompleter = E5DirCompleter(self.downloadDirEdit) + self.downloadDirPicker.setMode(E5PathPickerModes.DiretoryMode) # set initial values self.activateExternalPluginsCheckBox.setChecked( Preferences.getPluginManager("ActivateExternal")) - self.downloadDirEdit.setText( + self.downloadDirPicker.setText( Preferences.getPluginManager("DownloadPath")) self.generationsSpinBox.setValue( Preferences.getPluginManager("KeepGenerations")) @@ -75,7 +68,7 @@ self.activateExternalPluginsCheckBox.isChecked()) Preferences.setPluginManager( "DownloadPath", - self.downloadDirEdit.text()) + self.downloadDirPicker.text()) Preferences.setPluginManager( "KeepGenerations", self.generationsSpinBox.value()) @@ -101,23 +94,6 @@ Preferences.setUI( "PluginRepositoryUrl6", self.repositoryUrlEdit.text()) - @pyqtSlot() - def on_downloadDirButton_clicked(self): - """ - Private slot to handle the directory selection via dialog. - """ - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select plugins download directory"), - self.downloadDirEdit.text(), - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if directory: - dn = Utilities.toNativeSeparators(directory) - while dn.endswith(os.sep): - dn = dn[:-1] - self.downloadDirEdit.setText(dn) - @pyqtSlot(bool) def on_repositoryUrlEditButton_toggled(self, checked): """
--- a/Preferences/ConfigurationPages/PluginManagerPage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/PluginManagerPage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -41,19 +41,21 @@ </widget> </item> <item> - <widget class="QLineEdit" name="downloadDirEdit"> + <widget class="E5PathPicker" name="downloadDirPicker" 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 plugins download directory</string> </property> </widget> </item> - <item> - <widget class="QToolButton" name="downloadDirButton"> - <property name="toolTip"> - <string>Select the plugins download directory via a directory selection dialog</string> - </property> - </widget> - </item> </layout> </item> <item> @@ -233,9 +235,16 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>downloadDirEdit</tabstop> - <tabstop>downloadDirButton</tabstop> + <tabstop>downloadDirPicker</tabstop> <tabstop>generationsSpinBox</tabstop> <tabstop>keepHiddenCheckBox</tabstop> <tabstop>activateExternalPluginsCheckBox</tabstop>
--- a/Preferences/ConfigurationPages/QtPage.py Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/QtPage.py Fri Nov 27 20:06:52 2015 +0100 @@ -11,15 +11,12 @@ 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_QtPage import Ui_QtPage import Preferences -import Utilities -import UI.PixmapCache class QtPage(ConfigurationPageBase, Ui_QtPage): @@ -34,12 +31,10 @@ self.setupUi(self) self.setObjectName("QtPage") - self.qt4TransButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.qt4TransCompleter = E5DirCompleter(self.qt4TransEdit) + self.qt4TransPicker.setMode(E5PathPickerModes.DiretoryMode) # set initial values - self.qt4TransEdit.setText(Preferences.getQt("Qt4TranslationsDir")) + self.qt4TransPicker.setText(Preferences.getQt("Qt4TranslationsDir")) self.qt4PrefixEdit.setText(Preferences.getQt("QtToolsPrefix4")) self.qt4PostfixEdit.setText(Preferences.getQt("QtToolsPostfix4")) self.__updateQt4Sample() @@ -51,27 +46,13 @@ """ Public slot to save the Qt configuration. """ - Preferences.setQt("Qt4TranslationsDir", self.qt4TransEdit.text()) + Preferences.setQt("Qt4TranslationsDir", self.qt4TransPicker.text()) Preferences.setQt("QtToolsPrefix4", self.qt4PrefixEdit.text()) Preferences.setQt("QtToolsPostfix4", self.qt4PostfixEdit.text()) Preferences.setQt("PyuicIndent", self.pyuicIndentSpinBox.value()) Preferences.setQt("PyuicFromImports", self.pyuicImportsCheckBox.isChecked()) - @pyqtSlot() - def on_qt4TransButton_clicked(self): - """ - Private slot to handle the Qt4 translations directory selection. - """ - dir = E5FileDialog.getExistingDirectory( - self, - self.tr("Select Qt4 Translations Directory"), - self.qt4TransEdit.text(), - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if dir: - self.qt4TransEdit.setText(Utilities.toNativeSeparators(dir)) - def __updateQt4Sample(self): """ Private slot to update the Qt4 tools sample label.
--- a/Preferences/ConfigurationPages/QtPage.ui Thu Nov 26 19:47:09 2015 +0100 +++ b/Preferences/ConfigurationPages/QtPage.ui Fri Nov 27 20:06:52 2015 +0100 @@ -10,7 +10,7 @@ <height>614</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout"> + <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QLabel" name="headerLabel"> <property name="text"> @@ -36,22 +36,31 @@ <property name="title"> <string>Qt Translations Directory</string> </property> - <layout class="QGridLayout"> - <item row="1" column="0"> - <widget class="QLineEdit" name="qt4TransEdit"> - <property name="toolTip"> - <string>Enter the path of the Qt translations directory.</string> - </property> - </widget> - </item> - <item row="0" column="0" colspan="2"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> <widget class="QLabel" name="TextLabel1_2_2_5"> <property name="text"> <string><font color="#FF0000"><b>Note:</b> This setting is activated at the next startup of the application.</font></string> </property> </widget> </item> - <item row="2" column="0" colspan="2"> + <item> + <widget class="E5PathPicker" name="qt4TransPicker" 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 path of the Qt translations directory.</string> + </property> + </widget> + </item> + <item> <widget class="QLabel" name="textLabel1_2_4"> <property name="text"> <string><b>Note:</b> Leave this entry empty to use the QT4TRANSLATIONSDIR environment variable or the path compiled into the Qt library.</string> @@ -61,13 +70,6 @@ </property> </widget> </item> - <item row="1" column="1"> - <widget class="QToolButton" name="qt4TransButton"> - <property name="toolTip"> - <string>Press to select the Qt translations directory via a directory selection dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -204,9 +206,16 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>qt4TransEdit</tabstop> - <tabstop>qt4TransButton</tabstop> + <tabstop>qt4TransPicker</tabstop> <tabstop>qt4PrefixEdit</tabstop> <tabstop>qt4PostfixEdit</tabstop> <tabstop>pyuicIndentSpinBox</tabstop>