Sat, 28 Nov 2015 19:48:11 +0100
Modified more dialogs to use the path picker widgets.
--- a/Debugger/StartCoverageDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Debugger/StartCoverageDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>488</width> - <height>225</height> + <height>186</height> </rect> </property> <property name="windowTitle"> @@ -16,193 +16,192 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="TextLabel1"> - <property name="text"> - <string>Command&line:</string> - </property> - <property name="buddy"> - <cstring>cmdlineCombo</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3"> - <widget class="QComboBox" name="cmdlineCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the commandline parameters</string> - </property> - <property name="whatsThis"> - <string><b>Commandline</b> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel1"> + <property name="text"> + <string>Command&line:</string> + </property> + <property name="buddy"> + <cstring>cmdlineCombo</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="cmdlineCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the commandline parameters</string> + </property> + <property name="whatsThis"> + <string><b>Commandline</b> <p>Enter the commandline parameters in this field.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="TextLabel2"> - <property name="text"> - <string>&Working directory:</string> - </property> - <property name="buddy"> - <cstring>workdirCombo</cstring> - </property> - </widget> - </item> - <item row="1" column="1" colspan="2"> - <widget class="QComboBox" name="workdirCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the working directory</string> - </property> - <property name="whatsThis"> - <string><b>Working directory</b> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>&Working directory:</string> + </property> + <property name="buddy"> + <cstring>workdirPicker</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5ComboPathPicker" name="workdirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the working directory</string> + </property> + <property name="whatsThis"> + <string><b>Working directory</b> <p>Enter the working directory of the application to be debugged. Leave it empty to set the working directory to the executable directory.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="textLabel1"> - <property name="text"> - <string>&Environment:</string> - </property> - <property name="buddy"> - <cstring>environmentCombo</cstring> - </property> - </widget> - </item> - <item row="2" column="1" colspan="3"> - <widget class="QComboBox" name="environmentCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the environment variables to be set.</string> - </property> - <property name="whatsThis"> - <string><b>Environment</b> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>&Environment:</string> + </property> + <property name="buddy"> + <cstring>environmentCombo</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QComboBox" name="environmentCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the environment variables to be set.</string> + </property> + <property name="whatsThis"> + <string><b>Environment</b> <p>Enter the environment variables to be set for the program. The individual settings must be separated by whitespace and be given in the form 'var=value'. In order to add to an environment variable, enter it in the form 'var+=value'.</p> <p>Example: var1=1 var2="hello world" var3+=":/tmp"</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="3" column="0" colspan="2"> - <widget class="QCheckBox" name="exceptionCheckBox"> - <property name="toolTip"> - <string>Uncheck to disable exception reporting</string> - </property> - <property name="whatsThis"> - <string><b>Report exceptions</b> -<p>Uncheck this in order to disable exception reporting.</p></string> - </property> - <property name="text"> - <string>Report &exceptions</string> - </property> - <property name="shortcut"> - <string>Alt+E</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> </item> - <item row="3" column="2"> - <widget class="QCheckBox" name="clearShellCheckBox"> - <property name="toolTip"> - <string>Select to clear the display of the interpreter window</string> - </property> - <property name="whatsThis"> - <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> - </property> - <property name="text"> - <string>Clear &interpreter window</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="4" column="0" colspan="2"> - <widget class="QCheckBox" name="consoleCheckBox"> - <property name="toolTip"> - <string>Select to start the debugger in a console window</string> - </property> - <property name="whatsThis"> - <string><b>Start in console</b> + <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QCheckBox" name="exceptionCheckBox"> + <property name="toolTip"> + <string>Uncheck to disable exception reporting</string> + </property> + <property name="whatsThis"> + <string><b>Report exceptions</b> +<p>Uncheck this in order to disable exception reporting.</p></string> + </property> + <property name="text"> + <string>Report &exceptions</string> + </property> + <property name="shortcut"> + <string>Alt+E</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="clearShellCheckBox"> + <property name="toolTip"> + <string>Select to clear the display of the interpreter window</string> + </property> + <property name="whatsThis"> + <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> + </property> + <property name="text"> + <string>Clear &interpreter window</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="consoleCheckBox"> + <property name="toolTip"> + <string>Select to start the debugger in a console window</string> + </property> + <property name="whatsThis"> + <string><b>Start in console</b> <p>Select to start the debugger in a console window. The console command has to be configured on the Debugger-&gt;General page</p></string> - </property> - <property name="text"> - <string>Start in console</string> - </property> - </widget> + </property> + <property name="text"> + <string>Start in console</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="eraseCheckBox"> + <property name="toolTip"> + <string>Select this to erase the collected coverage information</string> + </property> + <property name="whatsThis"> + <string><b>Erase coverage information</b> +<p>Select this to erase the collected coverage information before the next coverage run.</p></string> + </property> + <property name="text"> + <string>Erase &coverage information</string> + </property> + <property name="shortcut"> + <string>Alt+C</string> + </property> + </widget> + </item> + </layout> </item> - <item row="5" column="0" colspan="4"> - <widget class="QCheckBox" name="eraseCheckBox"> - <property name="toolTip"> - <string>Select this to erase the collected coverage information</string> - </property> - <property name="whatsThis"> - <string><b>Erase coverage information</b> -<p>Select this to erase the collected coverage information before the next coverage run.</p></string> - </property> - <property name="text"> - <string>Erase &coverage information</string> - </property> - <property name="shortcut"> - <string>Alt+C</string> - </property> - </widget> - </item> - <item row="6" column="0" colspan="4"> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -212,31 +211,26 @@ </property> </widget> </item> - <item row="1" column="3"> - <widget class="QToolButton" name="dirButton"> - <property name="toolTip"> - <string>Select directory using a directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Select directory</b> -<p>Select the working directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> </layout> </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5ComboPathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>cmdlineCombo</tabstop> - <tabstop>workdirCombo</tabstop> - <tabstop>dirButton</tabstop> + <tabstop>workdirPicker</tabstop> <tabstop>environmentCombo</tabstop> <tabstop>exceptionCheckBox</tabstop> <tabstop>clearShellCheckBox</tabstop> <tabstop>consoleCheckBox</tabstop> <tabstop>eraseCheckBox</tabstop> - <tabstop>buttonBox</tabstop> </tabstops> <resources/> <connections>
--- a/Debugger/StartDebugDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Debugger/StartDebugDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>488</width> - <height>300</height> + <height>284</height> </rect> </property> <property name="windowTitle"> @@ -16,205 +16,204 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="TextLabel1"> - <property name="text"> - <string>Command&line:</string> - </property> - <property name="buddy"> - <cstring>cmdlineCombo</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3"> - <widget class="QComboBox" name="cmdlineCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the commandline parameters</string> - </property> - <property name="whatsThis"> - <string><b>Commandline</b> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel1"> + <property name="text"> + <string>Command&line:</string> + </property> + <property name="buddy"> + <cstring>cmdlineCombo</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="cmdlineCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the commandline parameters</string> + </property> + <property name="whatsThis"> + <string><b>Commandline</b> <p>Enter the commandline parameters in this field.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="TextLabel2"> - <property name="text"> - <string>&Working directory:</string> - </property> - <property name="buddy"> - <cstring>workdirCombo</cstring> - </property> - </widget> - </item> - <item row="1" column="1" colspan="2"> - <widget class="QComboBox" name="workdirCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the working directory</string> - </property> - <property name="whatsThis"> - <string><b>Working directory</b> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>&Working directory:</string> + </property> + <property name="buddy"> + <cstring>workdirPicker</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5ComboPathPicker" name="workdirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the working directory</string> + </property> + <property name="whatsThis"> + <string><b>Working directory</b> <p>Enter the working directory of the application to be debugged. Leave it empty to set the working directory to the executable directory.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="textLabel1"> - <property name="text"> - <string>&Environment:</string> - </property> - <property name="buddy"> - <cstring>environmentCombo</cstring> - </property> - </widget> - </item> - <item row="2" column="1" colspan="3"> - <widget class="QComboBox" name="environmentCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the environment variables to be set.</string> - </property> - <property name="whatsThis"> - <string><b>Environment</b> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>&Environment:</string> + </property> + <property name="buddy"> + <cstring>environmentCombo</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QComboBox" name="environmentCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the environment variables to be set.</string> + </property> + <property name="whatsThis"> + <string><b>Environment</b> <p>Enter the environment variables to be set for the program. The individual settings must be separated by whitespace and be given in the form 'var=value'. In order to add to an environment variable, enter it in the form 'var+=value'.</p> <p>Example: var1=1 var2="hello world" var3+=":/tmp"</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="3" column="0" colspan="2"> - <widget class="QCheckBox" name="exceptionCheckBox"> - <property name="toolTip"> - <string>Uncheck to disable exception reporting</string> - </property> - <property name="whatsThis"> - <string><b>Report exceptions</b> -<p>Uncheck this in order to disable exception reporting.</p></string> - </property> - <property name="text"> - <string>Report &exceptions</string> - </property> - <property name="shortcut"> - <string>Alt+E</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> </item> - <item row="3" column="2" colspan="2"> - <widget class="QCheckBox" name="clearShellCheckBox"> - <property name="toolTip"> - <string>Select to clear the display of the interpreter window</string> - </property> - <property name="whatsThis"> - <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> - </property> - <property name="text"> - <string>Clear &interpreter window</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="4" column="0" colspan="2"> - <widget class="QCheckBox" name="consoleCheckBox"> - <property name="toolTip"> - <string>Select to start the debugger in a console window</string> - </property> - <property name="whatsThis"> - <string><b>Start in console</b> + <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QCheckBox" name="exceptionCheckBox"> + <property name="toolTip"> + <string>Uncheck to disable exception reporting</string> + </property> + <property name="whatsThis"> + <string><b>Report exceptions</b> +<p>Uncheck this in order to disable exception reporting.</p></string> + </property> + <property name="text"> + <string>Report &exceptions</string> + </property> + <property name="shortcut"> + <string>Alt+E</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="clearShellCheckBox"> + <property name="toolTip"> + <string>Select to clear the display of the interpreter window</string> + </property> + <property name="whatsThis"> + <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> + </property> + <property name="text"> + <string>Clear &interpreter window</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="consoleCheckBox"> + <property name="toolTip"> + <string>Select to start the debugger in a console window</string> + </property> + <property name="whatsThis"> + <string><b>Start in console</b> <p>Select to start the debugger in a console window. The console command has to be configured on the Debugger-&gt;General page</p></string> - </property> - <property name="text"> - <string>Start in console</string> - </property> - </widget> + </property> + <property name="text"> + <string>Start in console</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QCheckBox" name="tracePythonCheckBox"> + <property name="toolTip"> + <string>Select to trace into the Python library</string> + </property> + <property name="text"> + <string>&Trace into interpreter libraries</string> + </property> + <property name="shortcut"> + <string>Alt+T</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QCheckBox" name="autoContinueCheckBox"> + <property name="toolTip"> + <string>Select to not stop the debugger at the first executable line.</string> + </property> + <property name="whatsThis"> + <string><b>Don't stop at first line</b><p>This prevents the debugger from stopping at the first executable line.</p></string> + </property> + <property name="text"> + <string>Don't stop at first line</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> </item> - <item row="5" column="0" colspan="2"> - <widget class="QCheckBox" name="tracePythonCheckBox"> - <property name="toolTip"> - <string>Select to trace into the Python library</string> - </property> - <property name="text"> - <string>&Trace into interpreter libraries</string> - </property> - <property name="shortcut"> - <string>Alt+T</string> - </property> - </widget> - </item> - <item row="5" column="2" colspan="2"> - <widget class="QCheckBox" name="autoContinueCheckBox"> - <property name="toolTip"> - <string>Select to not stop the debugger at the first executable line.</string> - </property> - <property name="whatsThis"> - <string><b>Don't stop at first line</b><p>This prevents the debugger from stopping at the first executable line.</p></string> - </property> - <property name="text"> - <string>Don't stop at first line</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="6" column="0" colspan="4"> + <item> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string>Forking</string> @@ -254,7 +253,7 @@ </layout> </widget> </item> - <item row="7" column="0" colspan="4"> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -264,25 +263,21 @@ </property> </widget> </item> - <item row="1" column="3"> - <widget class="QToolButton" name="dirButton"> - <property name="toolTip"> - <string>Select directory using a directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Select directory</b> -<p>Select the working directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> </layout> </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5ComboPathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>cmdlineCombo</tabstop> - <tabstop>workdirCombo</tabstop> - <tabstop>dirButton</tabstop> + <tabstop>workdirPicker</tabstop> <tabstop>environmentCombo</tabstop> <tabstop>exceptionCheckBox</tabstop> <tabstop>clearShellCheckBox</tabstop> @@ -291,7 +286,6 @@ <tabstop>autoContinueCheckBox</tabstop> <tabstop>forkModeCheckBox</tabstop> <tabstop>forkChildCheckBox</tabstop> - <tabstop>buttonBox</tabstop> </tabstops> <resources/> <connections>
--- a/Debugger/StartDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Debugger/StartDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -9,15 +9,11 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog, QDialogButtonBox -from E5Gui.E5Completers import E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes -import Utilities import Preferences -import UI.PixmapCache class StartDialog(QDialog): @@ -78,22 +74,22 @@ from .Ui_StartProfileDialog import Ui_StartProfileDialog self.ui = Ui_StartProfileDialog() self.ui.setupUi(self) - self.ui.dirButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.ui.workdirPicker.setMode(E5PathPickerModes.DirectoryMode) + self.ui.workdirPicker.setDefaultDirectory( + Preferences.getMultiProject("Workspace")) self.clearButton = self.ui.buttonBox.addButton( self.tr("Clear Histories"), QDialogButtonBox.ActionRole) - self.workdirCompleter = E5DirCompleter(self.ui.workdirCombo) - self.setWindowTitle(caption) self.ui.cmdlineCombo.clear() self.ui.cmdlineCombo.addItems(argvList) if len(argvList) > 0: self.ui.cmdlineCombo.setCurrentIndex(0) - self.ui.workdirCombo.clear() - self.ui.workdirCombo.addItems(wdList) + self.ui.workdirPicker.clear() + self.ui.workdirPicker.addItems(wdList) if len(wdList) > 0: - self.ui.workdirCombo.setCurrentIndex(0) + self.ui.workdirPicker.setCurrentIndex(0) self.ui.environmentCombo.clear() self.ui.environmentCombo.addItems(envList) self.ui.exceptionCheckBox.setChecked(exceptions) @@ -121,21 +117,6 @@ msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height()) - @pyqtSlot() - def on_dirButton_clicked(self): - """ - Private method used to open a directory selection dialog. - """ - cwd = self.ui.workdirCombo.currentText() - d = E5FileDialog.getExistingDirectory( - self, - self.tr("Working directory"), - cwd, - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if d: - self.ui.workdirCombo.setEditText(Utilities.toNativeSeparators(d)) - def on_modFuncCombo_editTextChanged(self): """ Private slot to enable/disable the OK button. @@ -153,7 +134,7 @@ flag (boolean) """ cmdLine = self.ui.cmdlineCombo.currentText() - workdir = self.ui.workdirCombo.currentText() + workdir = self.ui.workdirPicker.currentText() environment = self.ui.environmentCombo.currentText() return (cmdLine, @@ -224,15 +205,15 @@ self.__clearHistoryLists = True cmdLine = self.ui.cmdlineCombo.currentText() - workdir = self.ui.workdirCombo.currentText() + workdir = self.ui.workdirPicker.currentText() environment = self.ui.environmentCombo.currentText() self.ui.cmdlineCombo.clear() - self.ui.workdirCombo.clear() + self.ui.workdirPicker.clear() self.ui.environmentCombo.clear() self.ui.cmdlineCombo.addItem(cmdLine) - self.ui.workdirCombo.addItem(workdir) + self.ui.workdirPicker.addItem(workdir) self.ui.environmentCombo.addItem(environment) def on_buttonBox_clicked(self, button):
--- a/Debugger/StartProfileDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Debugger/StartProfileDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>488</width> - <height>196</height> + <height>186</height> </rect> </property> <property name="windowTitle"> @@ -16,193 +16,192 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="TextLabel1"> - <property name="text"> - <string>Command&line:</string> - </property> - <property name="buddy"> - <cstring>cmdlineCombo</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3"> - <widget class="QComboBox" name="cmdlineCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the commandline parameters</string> - </property> - <property name="whatsThis"> - <string><b>Commandline</b> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel1"> + <property name="text"> + <string>Command&line:</string> + </property> + <property name="buddy"> + <cstring>cmdlineCombo</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="cmdlineCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the commandline parameters</string> + </property> + <property name="whatsThis"> + <string><b>Commandline</b> <p>Enter the commandline parameters in this field.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="TextLabel2"> - <property name="text"> - <string>&Working directory:</string> - </property> - <property name="buddy"> - <cstring>workdirCombo</cstring> - </property> - </widget> - </item> - <item row="1" column="1" colspan="2"> - <widget class="QComboBox" name="workdirCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the working directory</string> - </property> - <property name="whatsThis"> - <string><b>Working directory</b> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>&Working directory:</string> + </property> + <property name="buddy"> + <cstring>workdirPicker</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5ComboPathPicker" name="workdirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the working directory</string> + </property> + <property name="whatsThis"> + <string><b>Working directory</b> <p>Enter the working directory of the application to be debugged. Leave it empty to set the working directory to the executable directory.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="textLabel1"> - <property name="text"> - <string>&Environment:</string> - </property> - <property name="buddy"> - <cstring>environmentCombo</cstring> - </property> - </widget> - </item> - <item row="2" column="1" colspan="3"> - <widget class="QComboBox" name="environmentCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the environment variables to be set.</string> - </property> - <property name="whatsThis"> - <string><b>Environment</b> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>&Environment:</string> + </property> + <property name="buddy"> + <cstring>environmentCombo</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QComboBox" name="environmentCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the environment variables to be set.</string> + </property> + <property name="whatsThis"> + <string><b>Environment</b> <p>Enter the environment variables to be set for the program. The individual settings must be separated by whitespace and be given in the form 'var=value'. In order to add to an environment variable, enter it in the form 'var+=value'.</p> <p>Example: var1=1 var2="hello world" var3+=":/tmp"</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="3" column="0" colspan="2"> - <widget class="QCheckBox" name="exceptionCheckBox"> - <property name="toolTip"> - <string>Uncheck to disable exception reporting</string> - </property> - <property name="whatsThis"> - <string><b>Report exceptions</b> -<p>Uncheck this in order to disable exception reporting.</p></string> - </property> - <property name="text"> - <string>Report &exceptions</string> - </property> - <property name="shortcut"> - <string>Alt+E</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> </item> - <item row="3" column="2" colspan="2"> - <widget class="QCheckBox" name="clearShellCheckBox"> - <property name="toolTip"> - <string>Select to clear the display of the interpreter window</string> - </property> - <property name="whatsThis"> - <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> - </property> - <property name="text"> - <string>Clear &interpreter window</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="4" column="0" colspan="2"> - <widget class="QCheckBox" name="consoleCheckBox"> - <property name="toolTip"> - <string>Select to start the debugger in a console window</string> - </property> - <property name="whatsThis"> - <string><b>Start in console</b> + <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QCheckBox" name="exceptionCheckBox"> + <property name="toolTip"> + <string>Uncheck to disable exception reporting</string> + </property> + <property name="whatsThis"> + <string><b>Report exceptions</b> +<p>Uncheck this in order to disable exception reporting.</p></string> + </property> + <property name="text"> + <string>Report &exceptions</string> + </property> + <property name="shortcut"> + <string>Alt+E</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="clearShellCheckBox"> + <property name="toolTip"> + <string>Select to clear the display of the interpreter window</string> + </property> + <property name="whatsThis"> + <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> + </property> + <property name="text"> + <string>Clear &interpreter window</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="consoleCheckBox"> + <property name="toolTip"> + <string>Select to start the debugger in a console window</string> + </property> + <property name="whatsThis"> + <string><b>Start in console</b> <p>Select to start the debugger in a console window. The console command has to be configured on the Debugger-&gt;General page</p></string> - </property> - <property name="text"> - <string>Start in console</string> - </property> - </widget> + </property> + <property name="text"> + <string>Start in console</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="eraseCheckBox"> + <property name="toolTip"> + <string>Select this to erase the collected timing data</string> + </property> + <property name="whatsThis"> + <string><b>Erase timing data</b> +<p>Select this to erase the collected timing data before the next profiling run.</p></string> + </property> + <property name="text"> + <string>Erase &timing data</string> + </property> + <property name="shortcut"> + <string>Alt+C</string> + </property> + </widget> + </item> + </layout> </item> - <item row="4" column="2" colspan="2"> - <widget class="QCheckBox" name="eraseCheckBox"> - <property name="toolTip"> - <string>Select this to erase the collected timing data</string> - </property> - <property name="whatsThis"> - <string><b>Erase timing data</b> -<p>Select this to erase the collected timing data before the next profiling run.</p></string> - </property> - <property name="text"> - <string>Erase &timing data</string> - </property> - <property name="shortcut"> - <string>Alt+C</string> - </property> - </widget> - </item> - <item row="5" column="0" colspan="4"> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -212,31 +211,26 @@ </property> </widget> </item> - <item row="1" column="3"> - <widget class="QToolButton" name="dirButton"> - <property name="toolTip"> - <string>Select directory using a directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Select directory</b> -<p>Select the working directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> </layout> </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5ComboPathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>cmdlineCombo</tabstop> - <tabstop>workdirCombo</tabstop> - <tabstop>dirButton</tabstop> + <tabstop>workdirPicker</tabstop> <tabstop>environmentCombo</tabstop> <tabstop>exceptionCheckBox</tabstop> <tabstop>clearShellCheckBox</tabstop> <tabstop>consoleCheckBox</tabstop> <tabstop>eraseCheckBox</tabstop> - <tabstop>buttonBox</tabstop> </tabstops> <resources/> <connections>
--- a/Debugger/StartRunDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Debugger/StartRunDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>488</width> - <height>271</height> + <height>257</height> </rect> </property> <property name="windowTitle"> @@ -16,176 +16,175 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="TextLabel1"> - <property name="text"> - <string>Command&line:</string> - </property> - <property name="buddy"> - <cstring>cmdlineCombo</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3"> - <widget class="QComboBox" name="cmdlineCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the commandline parameters</string> - </property> - <property name="whatsThis"> - <string><b>Commandline</b> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel1"> + <property name="text"> + <string>Command&line:</string> + </property> + <property name="buddy"> + <cstring>cmdlineCombo</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="cmdlineCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the commandline parameters</string> + </property> + <property name="whatsThis"> + <string><b>Commandline</b> <p>Enter the commandline parameters in this field.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="TextLabel2"> - <property name="text"> - <string>&Working directory:</string> - </property> - <property name="buddy"> - <cstring>workdirCombo</cstring> - </property> - </widget> - </item> - <item row="1" column="1" colspan="2"> - <widget class="QComboBox" name="workdirCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the working directory</string> - </property> - <property name="whatsThis"> - <string><b>Working directory</b> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>&Working directory:</string> + </property> + <property name="buddy"> + <cstring>workdirPicker</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5ComboPathPicker" name="workdirPicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> + <property name="toolTip"> + <string>Enter the working directory</string> + </property> + <property name="whatsThis"> + <string><b>Working directory</b> <p>Enter the working directory of the application to be debugged. Leave it empty to set the working directory to the executable directory.</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="textLabel1"> - <property name="text"> - <string>&Environment:</string> - </property> - <property name="buddy"> - <cstring>environmentCombo</cstring> - </property> - </widget> - </item> - <item row="2" column="1" colspan="3"> - <widget class="QComboBox" name="environmentCombo"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="toolTip"> - <string>Enter the environment variables to be set.</string> - </property> - <property name="whatsThis"> - <string><b>Environment</b> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>&Environment:</string> + </property> + <property name="buddy"> + <cstring>environmentCombo</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QComboBox" name="environmentCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the environment variables to be set.</string> + </property> + <property name="whatsThis"> + <string><b>Environment</b> <p>Enter the environment variables to be set for the program. The individual settings must be separated by whitespace and be given in the form 'var=value'. In order to add to an environment variable, enter it in the form 'var+=value'.</p> <p>Example: var1=1 var2="hello world" var3+=":/tmp"</p></string> - </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> - </widget> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> </item> - <item row="3" column="0" colspan="2"> - <widget class="QCheckBox" name="exceptionCheckBox"> - <property name="toolTip"> - <string>Uncheck to disable exception reporting</string> - </property> - <property name="whatsThis"> - <string><b>Report exceptions</b> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QCheckBox" name="exceptionCheckBox"> + <property name="toolTip"> + <string>Uncheck to disable exception reporting</string> + </property> + <property name="whatsThis"> + <string><b>Report exceptions</b> <p>Uncheck this in order to disable exception reporting.</p></string> - </property> - <property name="text"> - <string>Report &exceptions</string> - </property> - <property name="shortcut"> - <string>Alt+E</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> + </property> + <property name="text"> + <string>Report &exceptions</string> + </property> + <property name="shortcut"> + <string>Alt+E</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="clearShellCheckBox"> + <property name="toolTip"> + <string>Select to clear the display of the interpreter window</string> + </property> + <property name="whatsThis"> + <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> + </property> + <property name="text"> + <string>Clear &interpreter window</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="consoleCheckBox"> + <property name="toolTip"> + <string>Select to start the debugger in a console window</string> + </property> + <property name="whatsThis"> + <string><b>Start in console</b> +<p>Select to start the debugger in a console window. The console command has to be configured on the Debugger-&gt;General page</p></string> + </property> + <property name="text"> + <string>Start in console</string> + </property> + </widget> + </item> + </layout> </item> - <item row="3" column="2" colspan="2"> - <widget class="QCheckBox" name="clearShellCheckBox"> - <property name="toolTip"> - <string>Select to clear the display of the interpreter window</string> - </property> - <property name="whatsThis"> - <string><b>Clear interpreter window</b><p>This clears the display of the interpreter window before starting the debug client.</p></string> - </property> - <property name="text"> - <string>Clear &interpreter window</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="4" column="0"> - <widget class="QCheckBox" name="consoleCheckBox"> - <property name="toolTip"> - <string>Select to start the debugger in a console window</string> - </property> - <property name="whatsThis"> - <string><b>Start in console</b> -<p>Select to start the debugger in a console window. The console command has to be configured on the Debugger-&gt;General page</p></string> - </property> - <property name="text"> - <string>Start in console</string> - </property> - </widget> - </item> - <item row="5" column="0" colspan="4"> + <item> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string>Forking</string> @@ -225,7 +224,7 @@ </layout> </widget> </item> - <item row="6" column="0" colspan="4"> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -235,32 +234,27 @@ </property> </widget> </item> - <item row="1" column="3"> - <widget class="QToolButton" name="dirButton"> - <property name="toolTip"> - <string>Select directory using a directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Select directory</b> -<p>Select the working directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> </layout> </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5ComboPathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>cmdlineCombo</tabstop> - <tabstop>workdirCombo</tabstop> - <tabstop>dirButton</tabstop> + <tabstop>workdirPicker</tabstop> <tabstop>environmentCombo</tabstop> <tabstop>exceptionCheckBox</tabstop> <tabstop>clearShellCheckBox</tabstop> <tabstop>consoleCheckBox</tabstop> <tabstop>forkModeCheckBox</tabstop> <tabstop>forkChildCheckBox</tabstop> - <tabstop>buttonBox</tabstop> </tabstops> <resources/> <connections>
--- a/Helpviewer/Bookmarks/BookmarksImportDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Helpviewer/Bookmarks/BookmarksImportDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -14,15 +14,14 @@ from PyQt5.QtCore import pyqtSlot, Qt, QSize from PyQt5.QtWidgets import QDialog, QListWidgetItem -from E5Gui import E5FileDialog, E5MessageBox +from E5Gui import E5MessageBox +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_BookmarksImportDialog import Ui_BookmarksImportDialog from . import BookmarksImporters -import Utilities import Globals -import UI.PixmapCache class BookmarksImportDialog(QDialog, Ui_BookmarksImportDialog): @@ -40,7 +39,7 @@ super(BookmarksImportDialog, self).__init__(parent) self.setupUi(self) - self.chooseButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.filePicker.setMode(E5PathPickerModes.OpenFileMode) self.sourcesList.setIconSize(QSize(48, 48)) for icon, displayText, idText in BookmarksImporters.getImporters(): @@ -64,7 +63,7 @@ self.nextButton.setEnabled( len(self.sourcesList.selectedItems()) == 1) elif self.__currentPage == 1: - self.nextButton.setEnabled(self.fileEdit.text() != "") + self.nextButton.setEnabled(self.filePicker.text() != "") @pyqtSlot() def on_sourcesList_itemSelectionChanged(self): @@ -74,40 +73,15 @@ self.__enableNextButton() @pyqtSlot(str) - def on_fileEdit_textChanged(self, txt): + def on_filePicker_textChanged(self, txt): """ - Private slot handling changes of the file to import bookmarks from. + Private slot handling changes of the file to import bookmarks form. @param txt text of the line edit (string) """ self.__enableNextButton() @pyqtSlot() - def on_chooseButton_clicked(self): - """ - Private slot to choose the bookmarks file or directory. - """ - if self.__selectedSource == "ie": - path = E5FileDialog.getExistingDirectory( - self, - self.tr("Choose Directory ..."), - self.__sourceDir, - E5FileDialog.Options(E5FileDialog.Option(0))) - else: - if Globals.isMacPlatform(): - filter = "*{0}".format(os.path.splitext(self.__sourceFile)[1]) - else: - filter = self.__sourceFile - path = E5FileDialog.getOpenFileName( - self, - self.tr("Choose File ..."), - self.__sourceDir, - filter) - - if path: - self.fileEdit.setText(Utilities.toNativeSeparators(path)) - - @pyqtSlot() def on_nextButton_clicked(self): """ Private slot to switch to the next page. @@ -135,13 +109,25 @@ self.__currentPage += 1 self.pagesWidget.setCurrentIndex(self.__currentPage) self.__enableNextButton() + + if self.__selectedSource == "ie": + self.filePicker.setMode(E5PathPickerModes.DirectoryMode) + else: + self.filePicker.setMode(E5PathPickerModes.OpenFileMode) + if Globals.isMacPlatform(): + filter = "*{0}".format( + os.path.splitext(self.__sourceFile)[1]) + else: + filter = self.__sourceFile + self.filePicker.setFilters(filter) + self.filePicker.setDefaultDirectory(self.__sourceDir) elif self.__currentPage == 1: - if self.fileEdit.text() == "": + if self.filePicker.text() == "": return importer = BookmarksImporters.getImporter(self.__selectedSource) - importer.setPath(self.fileEdit.text()) + importer.setPath(self.filePicker.text()) if importer.open(): self.__topLevelBookmarkNode = importer.importedBookmarks() if importer.error():
--- a/Helpviewer/Bookmarks/BookmarksImportDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Helpviewer/Bookmarks/BookmarksImportDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>550</width> - <height>350</height> + <height>354</height> </rect> </property> <property name="minimumSize"> @@ -22,7 +22,7 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> + <layout class="QVBoxLayout" name="verticalLayout_3"> <item> <widget class="QStackedWidget" name="pagesWidget"> <property name="currentIndex"> @@ -59,39 +59,31 @@ </layout> </widget> <widget class="QWidget" name="filePage"> - <layout class="QGridLayout" name="gridLayout"> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="iconLabel"> - <property name="minimumSize"> - <size> - <width>48</width> - <height>48</height> - </size> - </property> - <property name="maximumSize"> - <size> - <width>48</width> - <height>48</height> - </size> - </property> - </widget> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <widget class="QLabel" name="iconLabel"> + <property name="minimumSize"> + <size> + <width>48</width> + <height>48</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>48</width> + <height>48</height> + </size> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="importingFromLabel"/> + </item> + </layout> </item> - <item row="0" column="1" colspan="2"> - <widget class="QLabel" name="importingFromLabel"/> - </item> - <item row="1" column="2"> + <item> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -104,24 +96,24 @@ </property> </spacer> </item> - <item row="2" column="0" colspan="3"> + <item> <widget class="QLabel" name="fileLabel1"> <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> - <item row="3" column="0" colspan="3"> + <item> <widget class="QLabel" name="standardDirLabel"> <property name="textInteractionFlags"> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> </property> </widget> </item> - <item row="4" column="0" colspan="3"> + <item> <widget class="QLabel" name="fileLabel2"/> </item> - <item row="5" column="1" colspan="2"> + <item> <spacer name="verticalSpacer_2"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -134,24 +126,23 @@ </property> </spacer> </item> - <item row="6" column="0" colspan="3"> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QLineEdit" name="fileEdit"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Shows the name of the bookmarks file or directory</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="chooseButton"/> - </item> - </layout> + <item> + <widget class="E5PathPicker" name="filePicker" 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 bookmarks file or directory</string> + </property> + </widget> </item> - <item row="7" column="1"> + <item> <spacer name="verticalSpacer_3"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -201,12 +192,19 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>sourcesList</tabstop> <tabstop>nextButton</tabstop> <tabstop>cancelButton</tabstop> - <tabstop>fileEdit</tabstop> - <tabstop>chooseButton</tabstop> + <tabstop>filePicker</tabstop> </tabstops> <resources/> <connections/>
--- a/Helpviewer/Sync/SyncDirectorySettingsPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Helpviewer/Sync/SyncDirectorySettingsPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -9,16 +9,13 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QWizardPage -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_SyncDirectorySettingsPage import Ui_SyncDirectorySettingsPage import Preferences -import Utilities -import UI.PixmapCache class SyncDirectorySettingsPage(QWizardPage, Ui_SyncDirectorySettingsPage): @@ -34,11 +31,10 @@ super(SyncDirectorySettingsPage, self).__init__(parent) self.setupUi(self) - self.directoryButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.directoryPicker.setMode(E5PathPickerModes.DirectoryMode) + self.directoryPicker.setText(Preferences.getHelp("SyncDirectoryPath")) - self.directoryEdit.setText(Preferences.getHelp("SyncDirectoryPath")) - - self.directoryEdit.textChanged.connect(self.completeChanged) + self.directoryPicker.textChanged.connect(self.completeChanged) def nextId(self): """ @@ -47,9 +43,7 @@ @return next wizard page ID (integer) """ # save the settings - Preferences.setHelp( - "SyncDirectoryPath", - Utilities.toNativeSeparators(self.directoryEdit.text())) + Preferences.setHelp("SyncDirectoryPath", self.directoryPicker.text()) from . import SyncGlobals return SyncGlobals.PageCheck @@ -60,19 +54,4 @@ @return flag indicating completeness (boolean) """ - return self.directoryEdit.text() != "" - - @pyqtSlot() - def on_directoryButton_clicked(self): - """ - Private slot to select the shared directory via a directory selection - dialog. - """ - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Shared Directory"), - self.directoryEdit.text(), - E5FileDialog.Options(E5FileDialog.Option(0))) - - if directory: - self.directoryEdit.setText(Utilities.toNativeSeparators(directory)) + return self.directoryPicker.text() != ""
--- a/Helpviewer/Sync/SyncDirectorySettingsPage.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Helpviewer/Sync/SyncDirectorySettingsPage.ui Sat Nov 28 19:48:11 2015 +0100 @@ -34,19 +34,21 @@ </widget> </item> <item> - <widget class="QLineEdit" name="directoryEdit"> + <widget class="E5PathPicker" name="directoryPicker" 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 full path of the shared directory</string> </property> </widget> </item> - <item> - <widget class="QToolButton" name="directoryButton"> - <property name="toolTip"> - <string>Select the shared directory via a directory selection dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -65,6 +67,14 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <resources/> <connections/> </ui>
--- a/MultiProject/AddProjectDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/MultiProject/AddProjectDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -14,13 +14,11 @@ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog, QDialogButtonBox -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_AddProjectDialog import Ui_AddProjectDialog import Utilities -import UI.PixmapCache class AddProjectDialog(QDialog, Ui_AddProjectDialog): @@ -40,9 +38,8 @@ super(AddProjectDialog, self).__init__(parent) self.setupUi(self) - self.fileButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.fileCompleter = E5FileCompleter(self.filenameEdit) + self.filenamePicker.setMode(E5PathPickerModes.OpenFileMode) + self.filenamePicker.setFilters(self.tr("Project Files (*.e4p)")) if categories: self.categoryComboBox.addItem("") @@ -58,7 +55,7 @@ self.setWindowTitle(self.tr("Project Properties")) self.nameEdit.setText(project['name']) - self.filenameEdit.setText(project['file']) + self.filenamePicker.setText(project['file']) self.descriptionEdit.setPlainText(project['description']) self.masterCheckBox.setChecked(project['master']) index = self.categoryComboBox.findText(project['category']) @@ -67,25 +64,6 @@ self.categoryComboBox.setCurrentIndex(index) self.uid = project["uid"] - @pyqtSlot() - def on_fileButton_clicked(self): - """ - Private slot to display a file selection dialog. - """ - startdir = self.filenameEdit.text() - if startdir or self.startdir is not None: - if not startdir: - startdir = self.startdir - projectFile = E5FileDialog.getOpenFileName( - self, - self.tr("Add Project"), - startdir, - self.tr("Project Files (*.e4p)")) - - if projectFile: - self.filenameEdit.setText( - Utilities.toNativeSeparators(projectFile)) - def getData(self): """ Public slot to retrieve the dialogs data. @@ -100,7 +78,7 @@ from PyQt5.QtCore import QUuid self.uid = QUuid.createUuid().toString() - filename = Utilities.toNativeSeparators(self.filenameEdit.text()) + filename = self.filenamePicker.text() if not os.path.isabs(filename): filename = Utilities.toNativeSeparators( os.path.join(self.startdir, filename)) @@ -121,7 +99,7 @@ self.__updateUi() @pyqtSlot(str) - def on_filenameEdit_textChanged(self, txt): + def on_filenamePicker_textChanged(self, txt): """ Private slot called when the project filename has changed. @@ -134,4 +112,4 @@ Private method to update the dialog. """ self.__okButton.setEnabled(self.nameEdit.text() != "" and - self.filenameEdit.text() != "") + self.filenamePicker.text() != "")
--- a/MultiProject/AddProjectDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/MultiProject/AddProjectDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -27,7 +27,7 @@ </property> </widget> </item> - <item row="0" column="1" colspan="2"> + <item row="0" column="1"> <widget class="QLineEdit" name="nameEdit"> <property name="toolTip"> <string>Enter the name of the project</string> @@ -40,24 +40,26 @@ <string>Project&file:</string> </property> <property name="buddy"> - <cstring>filenameEdit</cstring> + <cstring>filenamePicker</cstring> </property> </widget> </item> <item row="1" column="1"> - <widget class="QLineEdit" name="filenameEdit"> + <widget class="E5PathPicker" name="filenamePicker" 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 project file</string> </property> </widget> </item> - <item row="1" column="2"> - <widget class="QToolButton" name="fileButton"> - <property name="toolTip"> - <string>Select the project file via a file selection dialog</string> - </property> - </widget> - </item> <item row="2" column="0"> <widget class="QLabel" name="label_3"> <property name="text"> @@ -71,7 +73,7 @@ </property> </widget> </item> - <item row="2" column="1" colspan="2"> + <item row="2" column="1"> <widget class="QTextEdit" name="descriptionEdit"> <property name="toolTip"> <string>Enter a short description for the project</string> @@ -94,7 +96,7 @@ </property> </widget> </item> - <item row="3" column="1" colspan="2"> + <item row="3" column="1"> <widget class="QComboBox" name="categoryComboBox"> <property name="toolTip"> <string>Select a project category</string> @@ -104,7 +106,7 @@ </property> </widget> </item> - <item row="4" column="0" colspan="3"> + <item row="4" column="0" colspan="2"> <widget class="QCheckBox" name="masterCheckBox"> <property name="toolTip"> <string>Select to make this project the main project</string> @@ -114,7 +116,7 @@ </property> </widget> </item> - <item row="5" column="0" colspan="3"> + <item row="5" column="0" colspan="2"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -126,14 +128,20 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>nameEdit</tabstop> - <tabstop>filenameEdit</tabstop> - <tabstop>fileButton</tabstop> + <tabstop>filenamePicker</tabstop> <tabstop>descriptionEdit</tabstop> <tabstop>categoryComboBox</tabstop> <tabstop>masterCheckBox</tabstop> - <tabstop>buttonBox</tabstop> </tabstops> <resources/> <connections>
--- a/Preferences/ConfigurationPages/HelpAppearancePage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpAppearancePage.py Sat Nov 28 19:48:11 2015 +0100 @@ -32,6 +32,8 @@ self.setObjectName("HelpAppearancePage") self.styleSheetPicker.setMode(E5PathPickerModes.OpenFileMode) + self.styleSheetPicker.setFilters(self.tr( + "Cascading Style Sheets (*.css);;All files (*)")) self.__displayMode = None
--- a/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -30,7 +30,7 @@ self.setupUi(self) self.setObjectName("HelpFlashCookieManagerPage") - self.flashDataPathPicker.setMode(E5PathPickerModes.DiretoryMode) + self.flashDataPathPicker.setMode(E5PathPickerModes.DirectoryMode) # set initial values self.flashDataPathPicker.setText(
--- a/Preferences/ConfigurationPages/HelpInterfacePage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpInterfacePage.py Sat Nov 28 19:48:11 2015 +0100 @@ -9,18 +9,14 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot 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_HelpInterfacePage import Ui_HelpInterfacePage import Preferences -import Utilities -import UI.PixmapCache class HelpInterfacePage(ConfigurationPageBase, Ui_HelpInterfacePage): @@ -36,13 +32,14 @@ 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() - self.styleSheetEdit.setText(Preferences.getUI("StyleSheet")) + self.styleSheetPicker.setText(Preferences.getUI("StyleSheet")) def save(self): """ @@ -54,7 +51,7 @@ Preferences.setUI("Style", style) Preferences.setUI( "StyleSheet", - self.styleSheetEdit.text()) + self.styleSheetPicker.text()) def __populateStyleCombo(self): """ @@ -69,22 +66,6 @@ if currentIndex == -1: currentIndex = 0 self.styleComboBox.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)) def create(dlg):
--- a/Preferences/ConfigurationPages/HelpInterfacePage.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/HelpInterfacePage.ui Sat Nov 28 19:48:11 2015 +0100 @@ -32,7 +32,7 @@ </widget> </item> <item> - <layout class="QGridLayout"> + <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> <widget class="QLabel" name="label_2"> <property name="text"> @@ -40,7 +40,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> @@ -55,19 +55,21 @@ </widget> </item> <item row="1" column="1"> - <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 name of the style sheet file</string> </property> </widget> </item> - <item row="1" column="2"> - <widget class="QToolButton" name="styleSheetButton"> - <property name="toolTip"> - <string>Select the style sheet file via a file selection dialog</string> - </property> - </widget> - </item> </layout> </item> <item> @@ -85,10 +87,16 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>styleComboBox</tabstop> - <tabstop>styleSheetEdit</tabstop> - <tabstop>styleSheetButton</tabstop> </tabstops> <resources/> <connections/>
--- a/Preferences/ConfigurationPages/IconsPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/IconsPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -32,7 +32,7 @@ self.setupUi(self) self.setObjectName("IconsPage") - self.iconDirectoryPicker.setMode(E5PathPickerModes.DiretoryMode) + self.iconDirectoryPicker.setMode(E5PathPickerModes.DirectoryMode) # set initial values dirList = Preferences.getIcons("Path")[:]
--- a/Preferences/ConfigurationPages/MultiProjectPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/MultiProjectPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -30,7 +30,7 @@ self.setupUi(self) self.setObjectName("MultiProjectPage") - self.workspacePicker.setMode(E5PathPickerModes.DiretoryMode) + self.workspacePicker.setMode(E5PathPickerModes.DirectoryMode) # set initial values self.openMasterAutomaticallyCheckBox.setChecked(
--- a/Preferences/ConfigurationPages/NetworkPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/NetworkPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -33,7 +33,7 @@ self.setupUi(self) self.setObjectName("NetworkPage") - self.downloadDirPicker.setMode(E5PathPickerModes.DiretoryMode) + self.downloadDirPicker.setMode(E5PathPickerModes.DirectoryMode) self.ftpProxyTypeCombo.addItem( self.tr("No FTP Proxy"), E5FtpProxyType.NoProxy)
--- a/Preferences/ConfigurationPages/PluginManagerPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/PluginManagerPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -31,7 +31,7 @@ self.setupUi(self) self.setObjectName("PluginManagerPage") - self.downloadDirPicker.setMode(E5PathPickerModes.DiretoryMode) + self.downloadDirPicker.setMode(E5PathPickerModes.DirectoryMode) # set initial values self.activateExternalPluginsCheckBox.setChecked(
--- a/Preferences/ConfigurationPages/QtPage.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ConfigurationPages/QtPage.py Sat Nov 28 19:48:11 2015 +0100 @@ -31,7 +31,7 @@ self.setupUi(self) self.setObjectName("QtPage") - self.qt4TransPicker.setMode(E5PathPickerModes.DiretoryMode) + self.qt4TransPicker.setMode(E5PathPickerModes.DirectoryMode) # set initial values self.qt4TransPicker.setText(Preferences.getQt("Qt4TranslationsDir"))
--- a/Preferences/ToolConfigurationDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ToolConfigurationDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -14,13 +14,12 @@ from PyQt5.QtCore import Qt, pyqtSlot from PyQt5.QtWidgets import QDialog -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5MessageBox, E5FileDialog +from E5Gui import E5MessageBox +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_ToolConfigurationDialog import Ui_ToolConfigurationDialog import Utilities -import UI.PixmapCache class ToolConfigurationDialog(QDialog, Ui_ToolConfigurationDialog): @@ -37,11 +36,9 @@ super(ToolConfigurationDialog, self).__init__(parent) self.setupUi(self) - self.iconButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.executableButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.iconCompleter = E5FileCompleter(self.iconEdit) - self.executableCompleter = E5FileCompleter(self.executableEdit) + self.iconPicker.setMode(E5PathPickerModes.OpenFileMode) + self.iconPicker.setFilters(self.tr("Icon files (*.png)")) + self.executablePicker.setMode(E5PathPickerModes.OpenFileMode) self.redirectionModes = [ ("no", self.tr("no redirection")), @@ -86,9 +83,9 @@ """ Private slot to clear all entry fields. """ - self.executableEdit.clear() + self.executablePicker.clear() self.menuEdit.clear() - self.iconEdit.clear() + self.iconPicker.clear() self.argumentsEdit.clear() self.redirectCombo.setCurrentIndex(1) @@ -98,8 +95,8 @@ Private slot to add a new entry. """ menutext = self.menuEdit.text() - icon = self.iconEdit.text() - executable = self.executableEdit.text() + icon = self.iconPicker.text() + executable = self.executablePicker.text() arguments = self.argumentsEdit.text() redirect = self.redirectionModes[self.redirectCombo.currentIndex()][0] @@ -160,8 +157,8 @@ return menutext = self.menuEdit.text() - icon = self.iconEdit.text() - executable = self.executableEdit.text() + icon = self.iconPicker.text() + executable = self.executablePicker.text() arguments = self.argumentsEdit.text() redirect = self.redirectionModes[self.redirectCombo.currentIndex()][0] @@ -264,43 +261,23 @@ 'redirect': 'no', } self.toollist.append(tool) - - @pyqtSlot() - def on_executableButton_clicked(self): - """ - Private slot to handle the executable selection via a file selection - dialog. + + @pyqtSlot(str) + def on_executablePicker_pathSelected(self, path): """ - execfile = E5FileDialog.getOpenFileName( - self, - self.tr("Select executable"), - self.executableEdit.text(), - "") - if execfile: - execfile = Utilities.toNativeSeparators(execfile) - if not Utilities.isinpath(execfile): + Private slot to check the executable after it has been selected. + + @param path path of the executable + @type str + """ + if path: + if not Utilities.isinpath(path): E5MessageBox.critical( self, self.tr("Select executable"), self.tr( "The selected file is not an executable." " Please choose an executable filename.")) - return - - self.executableEdit.setText(execfile) - - @pyqtSlot() - def on_iconButton_clicked(self): - """ - Private slot to handle the icon selection via a file selection dialog. - """ - icon = E5FileDialog.getOpenFileName( - self, - self.tr("Select icon file"), - self.iconEdit.text(), - self.tr("Icon files (*.png)")) - if icon: - self.iconEdit.setText(icon) def on_toolsList_currentRowChanged(self, row): """ @@ -310,16 +287,16 @@ """ if row >= 0 and row < len(self.toollist): if self.toollist[row]['menutext'] == '--': - self.executableEdit.clear() + self.executablePicker.clear() self.menuEdit.clear() - self.iconEdit.clear() + self.iconPicker.clear() self.argumentsEdit.clear() self.redirectCombo.setCurrentIndex(0) else: tool = self.toollist[row] self.menuEdit.setText(tool['menutext']) - self.iconEdit.setText(tool['icon']) - self.executableEdit.setText(tool['executable']) + self.iconPicker.setText(tool['icon']) + self.executablePicker.setText(tool['executable']) self.argumentsEdit.setText(tool['arguments']) self.redirectCombo.setCurrentIndex( self.__findModeIndex(tool['redirect'])) @@ -337,9 +314,9 @@ else: self.downButton.setEnabled(False) else: - self.executableEdit.clear() + self.executablePicker.clear() self.menuEdit.clear() - self.iconEdit.clear() + self.iconPicker.clear() self.argumentsEdit.clear() self.downButton.setEnabled(False) self.upButton.setEnabled(False) @@ -364,7 +341,7 @@ """ self.__toolEntryChanged() - def on_iconEdit_textChanged(self, text): + def on_iconPicker_textChanged(self, text): """ Private slot called, when the icon path was changed. @@ -372,7 +349,7 @@ """ self.__toolEntryChanged() - def on_executableEdit_textChanged(self, text): + def on_executablePicker_textChanged(self, text): """ Private slot called, when the executable was changed.
--- a/Preferences/ToolConfigurationDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Preferences/ToolConfigurationDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -16,287 +16,291 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <layout class="QGridLayout"> - <item row="7" column="3"> - <widget class="QPushButton" name="separatorButton"> - <property name="toolTip"> - <string>Add a separator</string> - </property> - <property name="whatsThis"> - <string><b>Add separator</b><p>Add a separator for the menu.</p></string> - </property> - <property name="text"> - <string>Add &Separator</string> - </property> - </widget> - </item> - <item row="1" column="3"> - <widget class="QPushButton" name="addButton"> - <property name="toolTip"> - <string>Add a new tools entry</string> - </property> - <property name="whatsThis"> - <string><b>Add</b> -<p>Add a new tools entry with the values entered below.</p></string> - </property> - <property name="text"> - <string>&Add</string> - </property> - <property name="shortcut"> - <string>Alt+A</string> - </property> - </widget> - </item> - <item row="0" column="0" rowspan="9" colspan="3"> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> <widget class="QListWidget" name="toolsList"/> </item> - <item row="13" column="1" colspan="2"> - <widget class="QComboBox" name="redirectCombo"> - <property name="toolTip"> - <string>Select the output redirection mode</string> - </property> - <property name="whatsThis"> - <string><b>Redirect output<b><p>Select the output redirection mode. The standard error channel is either not redirected or shown in the log viewer.</p></string> - </property> - </widget> - </item> - <item row="12" column="1"> - <widget class="QLineEdit" name="argumentsEdit"> - <property name="toolTip"> - <string>Enter the arguments for the executable</string> - </property> - <property name="whatsThis"> - <string><b>Arguments</b> -<p>Enter the arguments for the executable.</p></string> - </property> - </widget> - </item> - <item row="4" column="3"> - <widget class="QPushButton" name="upButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Move up</string> - </property> - <property name="whatsThis"> - <string><b>Move Up</b> -<p>Move the selected entry up.</p></string> - </property> - <property name="text"> - <string>&Up</string> - </property> - <property name="shortcut"> - <string>Alt+U</string> - </property> - </widget> - </item> - <item row="3" column="3"> - <widget class="QPushButton" name="deleteButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Delete the selected entry</string> - </property> - <property name="whatsThis"> - <string><b>Delete</b> + <item row="0" column="1"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QPushButton" name="newButton"> + <property name="toolTip"> + <string>Clear all entry fields</string> + </property> + <property name="whatsThis"> + <string><b>New</b> +<p>Clear all entry fields for entering a new tools entry.</p></string> + </property> + <property name="text"> + <string>&New</string> + </property> + <property name="shortcut"> + <string>Alt+N</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="addButton"> + <property name="toolTip"> + <string>Add a new tools entry</string> + </property> + <property name="whatsThis"> + <string><b>Add</b> +<p>Add a new tools entry with the values entered below.</p></string> + </property> + <property name="text"> + <string>&Add</string> + </property> + <property name="shortcut"> + <string>Alt+A</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="changeButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Change the values of the selected entry</string> + </property> + <property name="whatsThis"> + <string><b>Change</b> +<p>Change the values of the selected entry.</p></string> + </property> + <property name="text"> + <string>C&hange</string> + </property> + <property name="shortcut"> + <string>Alt+H</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="deleteButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Delete the selected entry</string> + </property> + <property name="whatsThis"> + <string><b>Delete</b> <p>Delete the selected entry.</p></string> - </property> - <property name="text"> - <string>&Delete</string> - </property> - <property name="shortcut"> - <string>Alt+D</string> - </property> - </widget> - </item> - <item row="0" column="3"> - <widget class="QPushButton" name="newButton"> - <property name="toolTip"> - <string>Clear all entry fields</string> - </property> - <property name="whatsThis"> - <string><b>New</b> -<p>Clear all entry fields for entering a new tools entry.</p></string> - </property> - <property name="text"> - <string>&New</string> - </property> - <property name="shortcut"> - <string>Alt+N</string> - </property> - </widget> - </item> - <item row="11" column="1"> - <widget class="QLineEdit" name="executableEdit"> - <property name="toolTip"> - <string>Enter the filename of the executable</string> - </property> - <property name="whatsThis"> - <string><b>Executable</b> -<p>Enter the filename of the executable.</p></string> - </property> - </widget> - </item> - <item row="5" column="3"> - <widget class="QPushButton" name="downButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Move down</string> - </property> - <property name="whatsThis"> - <string><b>Move Down</b> + </property> + <property name="text"> + <string>&Delete</string> + </property> + <property name="shortcut"> + <string>Alt+D</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="upButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Move up</string> + </property> + <property name="whatsThis"> + <string><b>Move Up</b> +<p>Move the selected entry up.</p></string> + </property> + <property name="text"> + <string>&Up</string> + </property> + <property name="shortcut"> + <string>Alt+U</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="downButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Move down</string> + </property> + <property name="whatsThis"> + <string><b>Move Down</b> <p>Move the selected entry down.</p></string> - </property> - <property name="text"> - <string>Do&wn</string> - </property> - <property name="shortcut"> - <string>Alt+W</string> - </property> - </widget> + </property> + <property name="text"> + <string>Do&wn</string> + </property> + <property name="shortcut"> + <string>Alt+W</string> + </property> + </widget> + </item> + <item> + <widget class="Line" name="line"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="separatorButton"> + <property name="toolTip"> + <string>Add a separator</string> + </property> + <property name="whatsThis"> + <string><b>Add separator</b><p>Add a separator for the menu.</p></string> + </property> + <property name="text"> + <string>Add &Separator</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>105</width> + <height>22</height> + </size> + </property> + </spacer> + </item> + </layout> </item> - <item row="8" column="3"> - <spacer> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>105</width> - <height>22</height> - </size> - </property> - </spacer> - </item> - <item row="9" column="1"> - <widget class="QLineEdit" name="menuEdit"> - <property name="toolTip"> - <string>Enter the menu text</string> - </property> - <property name="whatsThis"> - <string><b>Menu text</b> + <item row="1" column="0" colspan="2"> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>&Menu text:</string> + </property> + <property name="buddy"> + <cstring>menuEdit</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="menuEdit"> + <property name="toolTip"> + <string>Enter the menu text</string> + </property> + <property name="whatsThis"> + <string><b>Menu text</b> <p>Enter the menu text. Precede the accelerator key with an & character.</p></string> - </property> - </widget> - </item> - <item row="2" column="3"> - <widget class="QPushButton" name="changeButton"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="toolTip"> - <string>Change the values of the selected entry</string> - </property> - <property name="whatsThis"> - <string><b>Change</b> -<p>Change the values of the selected entry.</p></string> - </property> - <property name="text"> - <string>C&hange</string> - </property> - <property name="shortcut"> - <string>Alt+H</string> - </property> - </widget> - </item> - <item row="10" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>&Icon file:</string> - </property> - <property name="buddy"> - <cstring>iconEdit</cstring> - </property> - </widget> - </item> - <item row="12" column="0"> - <widget class="QLabel" name="TextLabel3"> - <property name="text"> - <string>Ar&guments:</string> - </property> - <property name="buddy"> - <cstring>argumentsEdit</cstring> - </property> - </widget> - </item> - <item row="9" column="0"> - <widget class="QLabel" name="TextLabel2"> - <property name="text"> - <string>&Menu text:</string> - </property> - <property name="buddy"> - <cstring>menuEdit</cstring> - </property> - </widget> - </item> - <item row="6" column="3"> - <widget class="Line" name="line"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </widget> - </item> - <item row="10" column="1"> - <widget class="QLineEdit" name="iconEdit"> - <property name="toolTip"> - <string>Enter the filename of the icon</string> - </property> - <property name="whatsThis"> - <string><b>Icon</b> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>&Icon file:</string> + </property> + <property name="buddy"> + <cstring>iconPicker</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5PathPicker" name="iconPicker" 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 filename of the icon</string> + </property> + <property name="whatsThis"> + <string><b>Icon</b> <p>Enter the filename of the icon.</p></string> - </property> - </widget> - </item> - <item row="13" column="0"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>&Redirect output</string> - </property> - <property name="buddy"> - <cstring>redirectCombo</cstring> - </property> - </widget> - </item> - <item row="11" column="0"> - <widget class="QLabel" name="TextLabel1"> - <property name="text"> - <string>&Executable file:</string> - </property> - <property name="buddy"> - <cstring>executableEdit</cstring> - </property> - </widget> - </item> - <item row="10" column="2"> - <widget class="QToolButton" name="iconButton"> - <property name="toolTip"> - <string>Select the icon via a file selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Icon</b> -<p>Select the icon via a file selection dialog.</p></string> - </property> - </widget> - </item> - <item row="11" column="2"> - <widget class="QToolButton" name="executableButton"> - <property name="toolTip"> - <string>Select the executable via a file selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Executable</b> -<p>Select the executable via a file selection dialog.</p></string> - </property> - </widget> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="TextLabel1"> + <property name="text"> + <string>&Executable file:</string> + </property> + <property name="buddy"> + <cstring>executablePicker</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="E5PathPicker" name="executablePicker" 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 filename of the executable</string> + </property> + <property name="whatsThis"> + <string><b>Executable</b> +<p>Enter the filename of the executable.</p></string> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="TextLabel3"> + <property name="text"> + <string>Ar&guments:</string> + </property> + <property name="buddy"> + <cstring>argumentsEdit</cstring> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLineEdit" name="argumentsEdit"> + <property name="toolTip"> + <string>Enter the arguments for the executable</string> + </property> + <property name="whatsThis"> + <string><b>Arguments</b> +<p>Enter the arguments for the executable.</p></string> + </property> + </widget> + </item> + <item row="4" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>&Redirect output</string> + </property> + <property name="buddy"> + <cstring>redirectCombo</cstring> + </property> + </widget> + </item> + <item row="4" column="1"> + <widget class="QComboBox" name="redirectCombo"> + <property name="toolTip"> + <string>Select the output redirection mode</string> + </property> + <property name="whatsThis"> + <string><b>Redirect output<b><p>Select the output redirection mode. The standard error channel is either not redirected or shown in the log viewer.</p></string> + </property> + </widget> + </item> + </layout> </item> </layout> </item> @@ -314,13 +318,19 @@ </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>toolsList</tabstop> <tabstop>menuEdit</tabstop> - <tabstop>iconEdit</tabstop> - <tabstop>iconButton</tabstop> - <tabstop>executableEdit</tabstop> - <tabstop>executableButton</tabstop> + <tabstop>iconPicker</tabstop> + <tabstop>executablePicker</tabstop> <tabstop>argumentsEdit</tabstop> <tabstop>redirectCombo</tabstop> <tabstop>newButton</tabstop>
--- a/Project/AddDirectoryDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/AddDirectoryDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -12,14 +12,10 @@ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog -from E5Gui.E5Completers import E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_AddDirectoryDialog import Ui_AddDirectoryDialog -import Utilities -import UI.PixmapCache - class AddDirectoryDialog(QDialog, Ui_AddDirectoryDialog): """ @@ -41,15 +37,13 @@ self.setObjectName(name) self.setupUi(self) - self.sourceDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.targetDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.sourceDirCompleter = E5DirCompleter(self.sourceDirEdit) - self.targetDirCompleter = E5DirCompleter(self.targetDirEdit) + self.sourceDirPicker.setMode(E5PathPickerModes.DirectoryMode) + self.sourceDirPicker.setDefaultDirectory(startdir) + self.targetDirPicker.setMode(E5PathPickerModes.DirectoryMode) + self.targetDirPicker.setDefaultDirectory(startdir) self.ppath = pro.ppath - self.targetDirEdit.setText(self.ppath) - self.startdir = startdir + self.targetDirPicker.setText(self.ppath) self.on_filterComboBox_highlighted('(*.py)') # enable all dialog elements if filter == 'source': # it is a source file @@ -93,52 +87,17 @@ """ if fileType.endswith('(*)'): self.targetDirLabel.setEnabled(False) - self.targetDirEdit.setEnabled(False) - self.targetDirButton.setEnabled(False) + self.targetDirPicker.setEnabled(False) self.recursiveCheckBox.setEnabled(False) else: self.targetDirLabel.setEnabled(True) - self.targetDirEdit.setEnabled(True) - self.targetDirButton.setEnabled(True) + self.targetDirPicker.setEnabled(True) self.recursiveCheckBox.setEnabled(True) - def __dirDialog(self, textEdit): - """ - Private slot to display a directory selection dialog. - - @param textEdit field for the display of the selected directory name - (QLineEdit) + @pyqtSlot(str) + def on_sourceDirPicker_textChanged(self, dir): """ - startdir = textEdit.text() - if not startdir and self.startdir is not None: - startdir = self.startdir - - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select directory"), - startdir) - - if directory: - textEdit.setText(Utilities.toNativeSeparators(directory)) - - @pyqtSlot() - def on_sourceDirButton_clicked(self): - """ - Private slot to handle the source dir button press. - """ - self.__dirDialog(self.sourceDirEdit) - - @pyqtSlot() - def on_targetDirButton_clicked(self): - """ - Private slot to handle the target dir button press. - """ - self.__dirDialog(self.targetDirEdit) - - @pyqtSlot(str) - def on_sourceDirEdit_textChanged(self, dir): - """ - Private slot to handle the source dir text changed. + Private slot to handle the source directory text changed. If the entered source directory is a subdirectory of the current projects main directory, the target directory path is synchronized. @@ -148,7 +107,7 @@ @param dir the text of the source directory line edit (string) """ if dir.startswith(self.ppath): - self.targetDirEdit.setText(dir) + self.targetDirPicker.setText(dir) def getData(self): """ @@ -162,6 +121,6 @@ self.filterComboBox.itemData(self.filterComboBox.currentIndex()) return ( filetype, - Utilities.toNativeSeparators(self.sourceDirEdit.text()), - Utilities.toNativeSeparators(self.targetDirEdit.text()), + self.sourceDirPicker.text(), + self.targetDirPicker.text(), self.recursiveCheckBox.isChecked())
--- a/Project/AddDirectoryDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/AddDirectoryDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>391</width> - <height>174</height> + <height>141</height> </rect> </property> <property name="windowTitle"> @@ -23,96 +23,93 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout"> - <item> - <layout class="QGridLayout"> - <item row="0" column="1" colspan="2"> - <widget class="QComboBox" name="filterComboBox"/> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="targetDirLabel"> - <property name="text"> - <string>&Target Directory:</string> - </property> - <property name="buddy"> - <cstring>targetDirEdit</cstring> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="sourceDirEdit"> - <property name="toolTip"> - <string>Enter the name of the directory to add</string> - </property> - <property name="whatsThis"> - <string><b>Source Directory</b> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>&File Type:</string> + </property> + <property name="buddy"> + <cstring>filterComboBox</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="filterComboBox"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="sourceDirLabel"> + <property name="text"> + <string>&Source Directory:</string> + </property> + <property name="buddy"> + <cstring>sourceDirPicker</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="E5PathPicker" name="sourceDirPicker" 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 directory to add</string> + </property> + <property name="whatsThis"> + <string><b>Source Directory</b> <p>Enter the name of the directory to add to the current project. - You may select it with a dialog by pressing the button to - the right.</p></string> - </property> - </widget> - </item> - <item row="3" column="0" colspan="3"> - <widget class="QCheckBox" name="recursiveCheckBox"> - <property name="toolTip"> - <string>Select, whether a recursive add should be performed</string> - </property> - <property name="text"> - <string>&Recurse into subdirectories</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLineEdit" name="targetDirEdit"> - <property name="toolTip"> - <string>Enter the target directory for the file</string> - </property> - <property name="whatsThis"> - <string><b>Target Directory</b> + You may select it with a dialog by pressing the button to the right.</p></string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="targetDirLabel"> + <property name="text"> + <string>&Target Directory:</string> + </property> + <property name="buddy"> + <cstring>targetDirPicker</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="E5PathPicker" name="targetDirPicker" 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 target directory for the file</string> + </property> + <property name="whatsThis"> + <string><b>Target Directory</b> <p>Enter the target directory. You may select it with a dialog by pressing the button to the right.</p></string> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="sourceDirLabel"> - <property name="text"> - <string>&Source Directory:</string> - </property> - <property name="buddy"> - <cstring>sourceDirEdit</cstring> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="textLabel1"> - <property name="text"> - <string>&File Type:</string> - </property> - <property name="buddy"> - <cstring>filterComboBox</cstring> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QToolButton" name="sourceDirButton"> - <property name="whatsThis"> - <string><b>Source Directory</b> -<p>Select the source directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> - <item row="2" column="2"> - <widget class="QToolButton" name="targetDirButton"> - <property name="whatsThis"> - <string><b>Target Directory</b> -<p>Select the target directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> - </layout> + </property> + </widget> </item> - <item> + <item row="3" column="0" colspan="2"> + <widget class="QCheckBox" name="recursiveCheckBox"> + <property name="toolTip"> + <string>Select, whether a recursive add should be performed</string> + </property> + <property name="text"> + <string>&Recurse into subdirectories</string> + </property> + </widget> + </item> + <item row="4" column="0" colspan="2"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -126,12 +123,18 @@ </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>filterComboBox</tabstop> - <tabstop>sourceDirEdit</tabstop> - <tabstop>sourceDirButton</tabstop> - <tabstop>targetDirEdit</tabstop> - <tabstop>targetDirButton</tabstop> + <tabstop>sourceDirPicker</tabstop> + <tabstop>targetDirPicker</tabstop> <tabstop>recursiveCheckBox</tabstop> </tabstops> <resources/>
--- a/Project/AddFileDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/AddFileDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -14,14 +14,10 @@ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog -from E5Gui.E5Completers import E5DirCompleter, E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_AddFileDialog import Ui_AddFileDialog -import Utilities -import UI.PixmapCache - class AddFileDialog(QDialog, Ui_AddFileDialog): """ @@ -43,13 +39,11 @@ self.setObjectName(name) self.setupUi(self) - self.targetDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.sourceFileButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.sourceFilesPicker.setMode(E5PathPickerModes.OpenFilesMode) + self.targetDirPicker.setMode(E5PathPickerModes.DirectoryMode) + self.targetDirPicker.setDefaultDirectory(startdir) - self.targetDirCompleter = E5DirCompleter(self.targetDirEdit) - self.sourceFileCompleter = E5FileCompleter(self.sourceFileEdit) - - self.targetDirEdit.setText(pro.ppath) + self.targetDirPicker.setText(pro.ppath) self.filter = filter self.ppath = pro.ppath self.startdir = startdir @@ -63,32 +57,16 @@ self.resize(max(self.width(), msh.width()), msh.height()) @pyqtSlot() - def on_targetDirButton_clicked(self): + def on_sourceFilesPicker_aboutToShowPathPickerDialog(self): """ - Private slot to display a directory selection dialog. + Private slot to perform actions before the source files selection + dialog is shown. """ - startdir = self.targetDirEdit.text() - if not startdir and self.startdir is not None: - startdir = self.startdir - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select target directory"), - startdir) - - if directory: - self.targetDirEdit.setText(Utilities.toNativeSeparators(directory)) + path = self.targetDirPicker.text() + if not path: + path = self.startdir + self.sourceFilesPicker.setDefaultDirectory(path) - @pyqtSlot() - def on_sourceFileButton_clicked(self): - """ - Private slot to display a file selection dialog. - """ - dir = self.sourceFileEdit.text().split(os.pathsep, 1)[0] - if not dir: - if self.startdir is not None: - dir = self.startdir - else: - dir = self.targetDirEdit.text() if self.filter is None: patterns = { "SOURCES": [], @@ -158,16 +136,14 @@ dfilter = self.tr("All Files (*)") caption = self.tr("Select files") else: - return - - fnames = E5FileDialog.getOpenFileNames(self, caption, dir, dfilter) + dfilter = "" + caption = "" - if len(fnames): - self.sourceFileEdit.setText(Utilities.toNativeSeparators( - os.pathsep.join(fnames))) + self.sourceFilesPicker.setWindowTitle(caption) + self.sourceFilesPicker.setFilters(dfilter) @pyqtSlot(str) - def on_sourceFileEdit_textChanged(self, sfile): + def on_sourceFilesPicker_textChanged(self, sfile): """ Private slot to handle the source file text changed. @@ -176,15 +152,15 @@ It is assumed, that the user wants to add a bunch of files to the project in place. - @param sfile the text of the source file line edit (string) + @param sfile the text of the source file picker (string) """ - sfile = sfile.split(os.pathsep, 1)[0] + sfile = self.sourceFilesPicker.firstPath() if sfile.startswith(self.ppath): if os.path.isdir(sfile): dir = sfile else: dir = os.path.dirname(sfile) - self.targetDirEdit.setText(dir) + self.targetDirPicker.setText(dir) def getData(self): """ @@ -195,7 +171,6 @@ telling, whether the files shall be added as source code """ return ( - [Utilities.toNativeSeparators(f) for f in - self.sourceFileEdit.text().split(os.pathsep)], - Utilities.toNativeSeparators(self.targetDirEdit.text()), + self.sourceFilesPicker.paths(), + self.targetDirPicker.text(), self.sourcecodeCheckBox.isChecked())
--- a/Project/AddFileDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/AddFileDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>391</width> - <height>141</height> + <height>114</height> </rect> </property> <property name="windowTitle"> @@ -20,21 +20,62 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QGridLayout"> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="sourceFileLabel"> + <property name="text"> + <string>&Source Files:</string> + </property> + <property name="buddy"> + <cstring>sourceFilesPicker</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="E5PathPicker" name="sourceFilesPicker" 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 files to add separated by ";"</string> + </property> + <property name="whatsThis"> + <string><b>Source Files</b> +<p>Enter the name of files to add to the current project separated +by ";". You may select them with a dialog by pressing +the button to the right.</p></string> + </property> + </widget> + </item> <item row="1" column="0"> <widget class="QLabel" name="targetDirLabel"> <property name="text"> <string>&Target Directory:</string> </property> <property name="buddy"> - <cstring>targetDirEdit</cstring> + <cstring>targetDirPicker</cstring> </property> </widget> </item> <item row="1" column="1"> - <widget class="QLineEdit" name="targetDirEdit"> + <widget class="E5PathPicker" name="targetDirPicker" 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 target directory for the file</string> </property> @@ -45,45 +86,6 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QLabel" name="sourceFileLabel"> - <property name="text"> - <string>&Source Files:</string> - </property> - <property name="buddy"> - <cstring>sourceFileEdit</cstring> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="sourceFileEdit"> - <property name="toolTip"> - <string>Enter the name of files to add separated by the path separator</string> - </property> - <property name="whatsThis"> - <string><b>Source Files</b> -<p>Enter the name of files to add to the current project separated -by the path separator. You may select them with a dialog by pressing -the button to the right.</p></string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QToolButton" name="sourceFileButton"> - <property name="whatsThis"> - <string><b>Source Files</b> -<p>Select the source files via a files selection dialog.</p></string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QToolButton" name="targetDirButton"> - <property name="whatsThis"> - <string><b>Target Directory</b> -<p>Select the target directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> </layout> </item> <item> @@ -113,11 +115,17 @@ </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>sourceFileEdit</tabstop> - <tabstop>sourceFileButton</tabstop> - <tabstop>targetDirEdit</tabstop> - <tabstop>targetDirButton</tabstop> + <tabstop>sourceFilesPicker</tabstop> + <tabstop>targetDirPicker</tabstop> <tabstop>sourcecodeCheckBox</tabstop> </tabstops> <resources/>
--- a/Project/DebuggerPropertiesDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/DebuggerPropertiesDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -15,13 +15,11 @@ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog -from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5Completers import E5DirCompleter +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_DebuggerPropertiesDialog import Ui_DebuggerPropertiesDialog -import Utilities -import UI.PixmapCache from eric6config import getConfig @@ -44,27 +42,25 @@ self.setObjectName(name) self.setupUi(self) - self.debugClientButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.interpreterButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.debugClientPicker.setMode(E5PathPickerModes.OpenFileMode) + self.interpreterPicker.setMode(E5PathPickerModes.OpenFileMode) - self.debugClientCompleter = E5FileCompleter(self.debugClientEdit) - self.interpreterCompleter = E5FileCompleter(self.interpreterEdit) self.translationLocalCompleter = E5DirCompleter( self.translationLocalEdit) self.project = project if self.project.debugProperties["INTERPRETER"]: - self.interpreterEdit.setText( + self.interpreterPicker.setText( self.project.debugProperties["INTERPRETER"]) else: if self.project.pdata["PROGLANGUAGE"][0] in \ ["Python", "Python2", "Python3"]: - self.interpreterEdit.setText(sys.executable) + self.interpreterPicker.setText(sys.executable) elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby": - self.interpreterEdit.setText("/usr/bin/ruby") + self.interpreterPicker.setText("/usr/bin/ruby") if self.project.debugProperties["DEBUGCLIENT"]: - self.debugClientEdit.setText( + self.debugClientPicker.setText( self.project.debugProperties["DEBUGCLIENT"]) else: if self.project.pdata["PROGLANGUAGE"][0] in ["Python", "Python2"]: @@ -81,7 +77,7 @@ "DebugClients", "Ruby", "DebugClient.rb") else: debugClient = "" - self.debugClientEdit.setText(debugClient) + self.debugClientPicker.setText(debugClient) self.debugEnvironmentOverrideCheckBox.setChecked( self.project.debugProperties["ENVIRONMENTOVERRIDE"]) self.debugEnvironmentEdit.setText( @@ -109,44 +105,24 @@ msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height()) - - @pyqtSlot() - def on_interpreterButton_clicked(self): - """ - Private slot to handle the interpreter selection. - """ - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select interpreter for Debug Client"), - self.interpreterEdit.text(), - "") - - if file: - self.interpreterEdit.setText(Utilities.toNativeSeparators(file)) @pyqtSlot() - def on_debugClientButton_clicked(self): + def on_debugClientPicker_aboutToShowPathPickerDialog(self): """ - Private slot to handle the Debug Client selection. + Private slot to perform actions before the debug client selection + dialog is shown. """ filters = self.project.dbgFilters[ self.project.pdata["PROGLANGUAGE"][0]] filters += self.tr("All Files (*)") - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select Debug Client"), - self.debugClientEdit.text(), - filters) - - if file: - self.debugClientEdit.setText(Utilities.toNativeSeparators(file)) + self.debugClientPicker.setFilters(filters) def storeData(self): """ Public method to store the entered/modified data. """ self.project.debugProperties["INTERPRETER"] = \ - self.interpreterEdit.text() + self.interpreterPicker.text() if not self.project.debugProperties["INTERPRETER"]: if self.project.pdata["PROGLANGUAGE"][0] in \ ["Python", "Python2", "Python3"]: @@ -155,7 +131,7 @@ self.project.debugProperties["INTERPRETER"] = "/usr/bin/ruby" self.project.debugProperties["DEBUGCLIENT"] = \ - self.debugClientEdit.text() + self.debugClientPicker.text() if not self.project.debugProperties["DEBUGCLIENT"]: if self.project.pdata["PROGLANGUAGE"][0] in ["Python", "Python2"]: debugClient = os.path.join(
--- a/Project/DebuggerPropertiesDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/DebuggerPropertiesDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>592</width> - <height>656</height> + <height>594</height> </rect> </property> <property name="windowTitle"> @@ -16,27 +16,23 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout" name="_2"> + <layout class="QVBoxLayout" name="verticalLayout_3"> <item> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string>Debug Client</string> </property> - <layout class="QHBoxLayout" name="_4"> + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="QLineEdit" name="debugClientEdit"> + <widget class="E5PathPicker" name="debugClientPicker" native="true"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the path of the Debug Client to be used. Leave empty to use the default.</string> </property> </widget> </item> - <item> - <widget class="QToolButton" name="debugClientButton"> - <property name="toolTip"> - <string>Press to select the Debug Client via a file selection dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -45,21 +41,17 @@ <property name="title"> <string>Interpreter for Debug Client</string> </property> - <layout class="QHBoxLayout" name="_5"> + <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="QLineEdit" name="interpreterEdit"> + <widget class="E5PathPicker" name="interpreterPicker" native="true"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> <string>Enter the path of the interpreter to be used by the debug client.</string> </property> </widget> </item> - <item> - <widget class="QToolButton" name="interpreterButton"> - <property name="toolTip"> - <string>Press to select the interpreter via a file selection dialog</string> - </property> - </widget> - </item> </layout> </widget> </item> @@ -262,11 +254,17 @@ </widget> <layoutdefault spacing="6" margin="11"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>debugClientEdit</tabstop> - <tabstop>debugClientButton</tabstop> - <tabstop>interpreterEdit</tabstop> - <tabstop>interpreterButton</tabstop> + <tabstop>debugClientPicker</tabstop> + <tabstop>interpreterPicker</tabstop> <tabstop>debugEnvironmentOverrideCheckBox</tabstop> <tabstop>debugEnvironmentEdit</tabstop> <tabstop>remoteDebuggerGroup</tabstop> @@ -278,6 +276,7 @@ <tabstop>consoleDebuggerGroup</tabstop> <tabstop>consoleCommandEdit</tabstop> <tabstop>redirectCheckBox</tabstop> + <tabstop>noEncodingCheckBox</tabstop> </tabstops> <resources/> <connections>
--- a/Project/NewDialogClassDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/NewDialogClassDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -11,16 +11,12 @@ import os -from PyQt5.QtCore import QDir, pyqtSlot from PyQt5.QtWidgets import QDialog, QDialogButtonBox -from E5Gui.E5Completers import E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_NewDialogClassDialog import Ui_NewDialogClassDialog -import UI.PixmapCache - class NewDialogClassDialog(QDialog, Ui_NewDialogClassDialog): """ @@ -39,32 +35,18 @@ super(NewDialogClassDialog, self).__init__(parent) self.setupUi(self) - self.pathButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.pathnamePicker.setMode(E5PathPickerModes.DirectoryMode) self.okButton = self.buttonBox.button(QDialogButtonBox.Ok) self.okButton.setEnabled(False) - self.pathnameCompleter = E5DirCompleter(self.pathnameEdit) - self.classnameEdit.setText(defaultClassName) self.filenameEdit.setText(defaultFile) - self.pathnameEdit.setText(QDir.toNativeSeparators(defaultPath)) + self.pathnamePicker.setText(defaultPath) msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height()) - @pyqtSlot() - def on_pathButton_clicked(self): - """ - Private slot called to open a directory selection dialog. - """ - path = E5FileDialog.getExistingDirectory( - self, - self.tr("Select source directory"), - QDir.fromNativeSeparators(self.pathnameEdit.text())) - if path: - self.pathnameEdit.setText(QDir.toNativeSeparators(path)) - def __enableOkButton(self): """ Private slot to set the enable state of theok button. @@ -72,7 +54,7 @@ self.okButton.setEnabled( self.classnameEdit.text() != "" and self.filenameEdit.text() != "" and - self.pathnameEdit.text() != "") + self.pathnamePicker.text() != "") def on_classnameEdit_textChanged(self, text): """ @@ -90,9 +72,9 @@ """ self.__enableOkButton() - def on_pathnameEdit_textChanged(self, text): + def on_pathnamePicker_textChanged(self, text): """ - Private slot called, when thext of the pathname edit has changed. + Private slot called, when the text of the path name has changed. @param text changed text (string) """ @@ -105,5 +87,5 @@ @return tuple giving the classname (string) and the file name (string) """ return self.classnameEdit.text(), \ - os.path.join(self.pathnameEdit.text(), + os.path.join(self.pathnamePicker.text(), self.filenameEdit.text())
--- a/Project/NewDialogClassDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/NewDialogClassDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>600</width> - <height>140</height> + <height>124</height> </rect> </property> <property name="windowTitle"> @@ -16,16 +16,9 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout" name="_2"> + <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QGridLayout" name="_3"> - <item row="2" column="1"> - <widget class="QLineEdit" name="pathnameEdit"> - <property name="toolTip"> - <string>Enter the path of the file for the forms code</string> - </property> - </widget> - </item> + <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> <widget class="QLabel" name="label"> <property name="text"> @@ -36,6 +29,13 @@ </property> </widget> </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="classnameEdit"> + <property name="toolTip"> + <string>Enter the name of the new class</string> + </property> + </widget> + </item> <item row="1" column="0"> <widget class="QLabel" name="label_2"> <property name="text"> @@ -46,34 +46,36 @@ </property> </widget> </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="filenameEdit"> + <property name="toolTip"> + <string>Enter the name of the file for the forms code</string> + </property> + </widget> + </item> <item row="2" column="0"> <widget class="QLabel" name="label_3"> <property name="text"> <string>&Path:</string> </property> <property name="buddy"> - <cstring>pathnameEdit</cstring> - </property> - </widget> - </item> - <item row="0" column="1" colspan="2"> - <widget class="QLineEdit" name="classnameEdit"> - <property name="toolTip"> - <string>Enter the name of the new class</string> + <cstring>pathnamePicker</cstring> </property> </widget> </item> - <item row="1" column="1" colspan="2"> - <widget class="QLineEdit" name="filenameEdit"> - <property name="toolTip"> - <string>Enter the name of the file for the forms code</string> + <item row="2" column="1"> + <widget class="E5PathPicker" name="pathnamePicker" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - </widget> - </item> - <item row="2" column="2"> - <widget class="QToolButton" name="pathButton"> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> <property name="toolTip"> - <string>Select the source file path via a directory selection dialog</string> + <string>Enter the path of the file for the forms code</string> </property> </widget> </item> @@ -91,11 +93,17 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>classnameEdit</tabstop> <tabstop>filenameEdit</tabstop> - <tabstop>pathnameEdit</tabstop> - <tabstop>pathButton</tabstop> <tabstop>buttonBox</tabstop> </tabstops> <resources/>
--- a/Project/PropertiesDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/PropertiesDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -15,14 +15,12 @@ from PyQt5.QtWidgets import QDialog, QDialogButtonBox from E5Gui.E5Application import e5App -from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_PropertiesDialog import Ui_PropertiesDialog import Utilities import Preferences -import UI.PixmapCache class PropertiesDialog(QDialog, Ui_PropertiesDialog): @@ -43,16 +41,21 @@ self.setObjectName(name) self.setupUi(self) - self.dirButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.mainscriptButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.dirPicker.setMode(E5PathPickerModes.DirectoryMode) + self.mainscriptPicker.setMode(E5PathPickerModes.OpenFileMode) self.project = project self.newProject = new self.transPropertiesDlg = None self.spellPropertiesDlg = None - self.dirCompleter = E5DirCompleter(self.dirEdit) - self.mainscriptCompleter = E5FileCompleter(self.mainscriptEdit) + patterns = [] + for pattern, filetype in self.project.pdata["FILETYPES"].items(): + if filetype == "SOURCES": + patterns.append(pattern) + filters = self.tr("Source Files ({0});;All Files (*)")\ + .format(" ".join(sorted(patterns))) + self.mainscriptPicker.setFilters(filters) self.languageComboBox.addItems(project.getProgrammingLanguages()) @@ -82,13 +85,13 @@ if curIndex == -1: curIndex = self.projectTypeComboBox.findData("Qt4") self.projectTypeComboBox.setCurrentIndex(curIndex) - self.dirEdit.setText(self.project.ppath) + self.dirPicker.setText(self.project.ppath) try: self.versionEdit.setText(self.project.pdata["VERSION"][0]) except IndexError: pass try: - self.mainscriptEdit.setText( + self.mainscriptPicker.setText( self.project.pdata["MAINSCRIPT"][0]) except IndexError: pass @@ -133,7 +136,7 @@ self.languageComboBox.findText("Python3")) self.projectTypeComboBox.setCurrentIndex( self.projectTypeComboBox.findData("PyQt5")) - self.dirEdit.setText(self.__initPaths[0]) + self.dirPicker.setText(self.__initPaths[0]) self.versionEdit.setText('0.1') self.vcsLabel.hide() self.vcsInfoButton.hide() @@ -141,8 +144,8 @@ self.vcsCheckBox.hide() self.buttonBox.button(QDialogButtonBox.Ok).setEnabled( - bool(self.dirEdit.text()) and - Utilities.fromNativeSeparators(self.dirEdit.text()) not in + bool(self.dirPicker.text()) and + self.dirPicker.text() not in self.__initPaths) @pyqtSlot(str) @@ -166,7 +169,7 @@ self.projectTypeComboBox.setCurrentIndex(index) @pyqtSlot(str) - def on_dirEdit_textChanged(self, txt): + def on_dirPicker_textChanged(self, txt): """ Private slot to handle a change of the project directory. @@ -177,20 +180,6 @@ Utilities.fromNativeSeparators(txt) not in self.__initPaths) @pyqtSlot() - def on_dirButton_clicked(self): - """ - Private slot to display a directory selection dialog. - """ - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select project directory"), - self.dirEdit.text(), - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - - if directory: - self.dirEdit.setText(Utilities.toNativeSeparators(directory)) - - @pyqtSlot() def on_spellPropertiesButton_clicked(self): """ Private slot to display the spelling properties dialog. @@ -220,32 +209,31 @@ if res == QDialog.Rejected: self.transPropertiesDlg.initDialog() # reset the dialogs contents - @pyqtSlot() - def on_mainscriptButton_clicked(self): - """ - Private slot to display a file selection dialog. + @pyqtSlot(str) + def on_mainscriptPicker_pathSelected(self, script): """ - dir = self.dirEdit.text() - if not dir: - dir = QDir.currentPath() - patterns = [] - for pattern, filetype in list(self.project.pdata["FILETYPES"].items()): - if filetype == "SOURCES": - patterns.append(pattern) - filters = self.tr("Source Files ({0});;All Files (*)")\ - .format(" ".join(patterns)) - fn = E5FileDialog.getOpenFileName( - self, - self.tr("Select main script file"), - dir, - filters) + Private slot to check the selected main script name. - if fn: - ppath = self.dirEdit.text() + @param script name of the main script + @type str + """ + if script: + ppath = self.dirPicker.text() if ppath: ppath = QDir(ppath).absolutePath() + QDir.separator() - fn = fn.replace(ppath, "") - self.mainscriptEdit.setText(Utilities.toNativeSeparators(fn)) + script = script.replace(ppath, "") + self.mainscriptPicker.setText(script) + + @pyqtSlot() + def on_mainscriptPicker_aboutToShowPathPickerDialog(self): + """ + Private slot to perform actions before the main script selection dialog + is shown. + """ + path = self.dirPicker.text() + if not path: + path = QDir.currentPath() + self.mainscriptPicker.setDefaultDirectory(path) @pyqtSlot() def on_vcsInfoButton_clicked(self): @@ -275,13 +263,13 @@ @return data of the project directory edit (string) """ - return os.path.abspath(self.dirEdit.text()) + return os.path.abspath(self.dirPicker.text()) def storeData(self): """ Public method to store the entered/modified data. """ - self.project.ppath = os.path.abspath(self.dirEdit.text()) + self.project.ppath = os.path.abspath(self.dirPicker.text()) fn = self.nameEdit.text() if fn: self.project.name = fn @@ -290,7 +278,7 @@ else: self.project.pfile = "" self.project.pdata["VERSION"] = [self.versionEdit.text()] - fn = self.mainscriptEdit.text() + fn = self.mainscriptPicker.text() if fn: fn = self.project.getRelativePath(fn) self.project.pdata["MAINSCRIPT"] = [fn]
--- a/Project/PropertiesDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/PropertiesDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -114,12 +114,21 @@ <string>Project &Directory:</string> </property> <property name="buddy"> - <cstring>dirEdit</cstring> + <cstring>dirPicker</cstring> </property> </widget> </item> <item row="5" column="1"> - <widget class="QLineEdit" name="dirEdit"> + <widget class="E5PathPicker" name="dirPicker" 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 project directory</string> </property> @@ -157,12 +166,21 @@ <string>&Main Script:</string> </property> <property name="buddy"> - <cstring>mainscriptEdit</cstring> + <cstring>mainscriptPicker</cstring> </property> </widget> </item> <item row="7" column="1"> - <widget class="QLineEdit" name="mainscriptEdit"> + <widget class="E5PathPicker" name="mainscriptPicker" 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 main script</string> </property> @@ -292,28 +310,6 @@ </property> </widget> </item> - <item row="5" column="2"> - <widget class="QToolButton" name="dirButton"> - <property name="toolTip"> - <string>Show directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Project Directory</b> -<p>Select a project directory via a directory selection dialog.</p></string> - </property> - </widget> - </item> - <item row="7" column="2"> - <widget class="QToolButton" name="mainscriptButton"> - <property name="toolTip"> - <string>Show file selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Main Script</b> -<p>Select the projects main script via a file selection dialog.</p></string> - </property> - </widget> - </item> </layout> </item> <item> @@ -370,17 +366,23 @@ </widget> <layoutdefault spacing="6" margin="6"/> <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>nameEdit</tabstop> <tabstop>spellPropertiesButton</tabstop> <tabstop>languageComboBox</tabstop> <tabstop>mixedLanguageCheckBox</tabstop> <tabstop>projectTypeComboBox</tabstop> - <tabstop>dirEdit</tabstop> - <tabstop>dirButton</tabstop> + <tabstop>dirPicker</tabstop> <tabstop>versionEdit</tabstop> - <tabstop>mainscriptEdit</tabstop> - <tabstop>mainscriptButton</tabstop> + <tabstop>mainscriptPicker</tabstop> <tabstop>transPropertiesButton</tabstop> <tabstop>eolComboBox</tabstop> <tabstop>authorEdit</tabstop> @@ -388,7 +390,6 @@ <tabstop>descriptionEdit</tabstop> <tabstop>vcsCheckBox</tabstop> <tabstop>vcsInfoButton</tabstop> - <tabstop>buttonBox</tabstop> </tabstops> <resources/> <connections>
--- a/Project/SpellingPropertiesDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/SpellingPropertiesDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -9,19 +9,13 @@ from __future__ import unicode_literals -import os - -from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_SpellingPropertiesDialog import Ui_SpellingPropertiesDialog -import Utilities import Preferences -import UI.PixmapCache class SpellingPropertiesDialog(QDialog, Ui_SpellingPropertiesDialog): @@ -39,15 +33,19 @@ super(SpellingPropertiesDialog, self).__init__(parent) self.setupUi(self) - self.pwlButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.pelButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.pwlPicker.setMode(E5PathPickerModes.SaveFileMode) + self.pwlPicker.setDefaultDirectory(project.ppath) + self.pwlPicker.setFilters(self.tr( + "Dictionary File (*.dic);;All Files (*)")) + + self.pelPicker.setMode(E5PathPickerModes.SaveFileMode) + self.pelPicker.setDefaultDirectory(project.ppath) + self.pelPicker.setFilters(self.tr( + "Dictionary File (*.dic);;All Files (*)")) self.project = project self.parent = parent - self.pwlCompleter = E5FileCompleter(self.pwlEdit) - self.pelCompleter = E5FileCompleter(self.pelEdit) - from QScintilla.SpellChecker import SpellChecker self.spellingComboBox.addItem(self.tr("<default>")) self.spellingComboBox.addItems( @@ -69,53 +67,9 @@ index = 0 self.spellingComboBox.setCurrentIndex(index) if self.project.pdata["SPELLWORDS"][0]: - self.pwlEdit.setText(Utilities.toNativeSeparators( - self.project.pdata["SPELLWORDS"][0])) + self.pwlPicker.setText(self.project.pdata["SPELLWORDS"][0]) if self.project.pdata["SPELLEXCLUDES"][0]: - self.pelEdit.setText(Utilities.toNativeSeparators( - self.project.pdata["SPELLEXCLUDES"][0])) - - @pyqtSlot() - def on_pwlButton_clicked(self): - """ - Private slot to select the project word list file. - """ - pwl = Utilities.fromNativeSeparators(self.pwlEdit.text()) - if not pwl: - pwl = self.project.ppath - elif not os.path.isabs(pwl): - pwl = Utilities.fromNativeSeparators( - os.path.join(self.project.ppath, pwl)) - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select project word list"), - pwl, - self.tr("Dictionary File (*.dic);;All Files (*)")) - - if file: - self.pwlEdit.setText(self.project.getRelativePath( - Utilities.toNativeSeparators(file))) - - @pyqtSlot() - def on_pelButton_clicked(self): - """ - Private slot to select the project exclude list file. - """ - pel = Utilities.fromNativeSeparators(self.pelEdit.text()) - if not pel: - pel = self.project.ppath - elif not os.path.isabs(pel): - pel = Utilities.fromNativeSeparators( - os.path.join(self.project.ppath, pel)) - file = E5FileDialog.getOpenFileName( - self, - self.tr("Select project exclude list"), - pel, - self.tr("Dictionary File (*.dic);;All Files (*)")) - - if file: - self.pelEdit.setText(self.project.getRelativePath( - Utilities.toNativeSeparators(file))) + self.pelPicker.setText(self.project.pdata["SPELLEXCLUDES"][0]) def storeData(self): """ @@ -128,6 +82,6 @@ self.project.pdata["SPELLLANGUAGE"] = \ [self.spellingComboBox.currentText()] self.project.pdata["SPELLWORDS"] = \ - [self.project.getRelativePath(self.pwlEdit.text())] + [self.project.getRelativePath(self.pwlPicker.text())] self.project.pdata["SPELLEXCLUDES"] = \ - [self.project.getRelativePath(self.pelEdit.text())] + [self.project.getRelativePath(self.pelPicker.text())]
--- a/Project/SpellingPropertiesDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/SpellingPropertiesDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>600</width> - <height>213</height> + <height>114</height> </rect> </property> <property name="windowTitle"> @@ -27,61 +27,66 @@ </property> </widget> </item> - <item row="1" column="0"> + <item row="0" column="1"> <widget class="QComboBox" name="spellingComboBox"> <property name="toolTip"> <string>Select the project's language</string> </property> </widget> </item> - <item row="2" column="0"> + <item row="1" column="0"> <widget class="QLabel" name="label"> <property name="text"> <string>Project &Word List:</string> </property> <property name="buddy"> - <cstring>pwlEdit</cstring> + <cstring>pwlPicker</cstring> </property> </widget> </item> - <item row="3" column="0"> - <widget class="QLineEdit" name="pwlEdit"> + <item row="1" column="1"> + <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> <property name="toolTip"> <string>Enter the filename of the project word list</string> </property> </widget> </item> - <item row="4" column="0"> + <item row="2" column="0"> <widget class="QLabel" name="label_2"> <property name="text"> <string>Project E&xclude List:</string> </property> <property name="buddy"> - <cstring>pelEdit</cstring> + <cstring>pelPicker</cstring> </property> </widget> </item> - <item row="5" column="0"> - <widget class="QLineEdit" name="pelEdit"> + <item row="2" column="1"> + <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> <property name="toolTip"> <string>Enter the filename of the project exclude list</string> </property> </widget> </item> - <item row="6" column="0"> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>2</height> - </size> - </property> - </spacer> - </item> - <item row="7" column="0" colspan="2"> + <item row="3" column="0" colspan="2"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -91,28 +96,18 @@ </property> </widget> </item> - <item row="3" column="1"> - <widget class="QToolButton" name="pwlButton"> - <property name="toolTip"> - <string>Select the project word list file via a file selection dialog</string> - </property> - </widget> - </item> - <item row="5" column="1"> - <widget class="QToolButton" name="pelButton"> - <property name="toolTip"> - <string>Select the project exclude list file via a file selection dialog</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>spellingComboBox</tabstop> - <tabstop>pwlEdit</tabstop> - <tabstop>pwlButton</tabstop> - <tabstop>pelEdit</tabstop> - <tabstop>pelButton</tabstop> <tabstop>buttonBox</tabstop> </tabstops> <resources/>
--- a/Project/TranslationPropertiesDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/TranslationPropertiesDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -14,13 +14,13 @@ from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QListWidgetItem, QDialog, QDialogButtonBox -from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter +from E5Gui.E5Completers import E5FileCompleter from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_TranslationPropertiesDialog import Ui_TranslationPropertiesDialog import Utilities -import UI.PixmapCache class TranslationPropertiesDialog(QDialog, Ui_TranslationPropertiesDialog): @@ -38,14 +38,14 @@ super(TranslationPropertiesDialog, self).__init__(parent) self.setupUi(self) - self.transBinPathButton.setIcon(UI.PixmapCache.getIcon("open.png")) - self.transPatternButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.transPatternPicker.setMode(E5PathPickerModes.SaveFileMode) + self.transPatternPicker.setDefaultDirectory(project.ppath) + self.transBinPathPicker.setMode(E5PathPickerModes.DirectoryMode) + self.transBinPathPicker.setDefaultDirectory(project.ppath) self.project = project self.parent = parent - self.transPatternCompleter = E5FileCompleter(self.transPatternEdit) - self.transBinPathCompleter = E5DirCompleter(self.transBinPathEdit) self.exceptionCompleter = E5FileCompleter(self.exceptionEdit) self.initFilters() @@ -75,13 +75,13 @@ """ self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) try: - self.transPatternEdit.setText(Utilities.toNativeSeparators( - self.project.pdata["TRANSLATIONPATTERN"][0])) + self.transPatternPicker.setText( + self.project.pdata["TRANSLATIONPATTERN"][0]) except IndexError: pass try: - self.transBinPathEdit.setText(Utilities.toNativeSeparators( - self.project.pdata["TRANSLATIONSBINPATH"][0])) + self.transBinPathPicker.setText( + self.project.pdata["TRANSLATIONSBINPATH"][0]) except IndexError: pass self.exceptionsList.clear() @@ -89,54 +89,35 @@ if texcept: self.exceptionsList.addItem(texcept) - @pyqtSlot() - def on_transPatternButton_clicked(self): - """ - Private slot to display a file selection dialog. + @pyqtSlot(str) + def on_transPatternPicker_pathSelected(self, path): """ - tp = Utilities.fromNativeSeparators(self.transPatternEdit.text()) - if "%language%" in tp: - tp = tp.split("%language%")[0] - if not os.path.isabs(tp): - tp = Utilities.fromNativeSeparators( - os.path.join(self.project.ppath, tp)) - tsfile = E5FileDialog.getOpenFileName( - self, - self.tr("Select translation file"), - tp, - "") + Private slot handling the selection of a translation path. - if tsfile: - self.transPatternEdit.setText(self.project.getRelativePath( - Utilities.toNativeSeparators(tsfile))) + @param path selected path + @type str + """ + self.transPatternPicker.setText(self.project.getRelativePath(path)) @pyqtSlot(str) - def on_transPatternEdit_textChanged(self, txt): + def on_transPatternPicker_textChanged(self, txt): """ Private slot to check the translation pattern for correctness. - @param txt text of the transPatternEdit lineedit (string) + @param txt text of the transPatternPicker line edit (string) """ self.buttonBox.button(QDialogButtonBox.Ok).setEnabled( "%language%" in txt) - @pyqtSlot() - def on_transBinPathButton_clicked(self): - """ - Private slot to display a directory selection dialog. + @pyqtSlot(str) + def on_transBinPathPicker_pathSelected(self, path): """ - tbp = Utilities.fromNativeSeparators(self.transBinPathEdit.text()) - if not os.path.isabs(tbp): - tbp = Utilities.fromNativeSeparators( - os.path.join(self.project.ppath, tbp)) - directory = E5FileDialog.getExistingDirectory( - self, - self.tr("Select directory for binary translations"), - tbp) + Private slot handling the selection of a binary translations path. - if directory: - self.transBinPathEdit.setText(self.project.getRelativePath( - Utilities.toNativeSeparators(directory))) + @param path selected path + @type str + """ + self.transBinPathPicker.setText(self.project.getRelativePath(path)) @pyqtSlot() def on_deleteExceptionButton_clicked(self): @@ -217,14 +198,14 @@ """ Public method to store the entered/modified data. """ - tp = Utilities.toNativeSeparators(self.transPatternEdit.text()) + tp = self.transPatternPicker.text() if tp: tp = self.project.getRelativePath(tp) self.project.pdata["TRANSLATIONPATTERN"] = [tp] self.project.translationsRoot = tp.split("%language%")[0] else: self.project.pdata["TRANSLATIONPATTERN"] = [] - tp = Utilities.toNativeSeparators(self.transBinPathEdit.text()) + tp = self.transBinPathPicker.text() if tp: tp = self.project.getRelativePath(tp) self.project.pdata["TRANSLATIONSBINPATH"] = [tp]
--- a/Project/TranslationPropertiesDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/Project/TranslationPropertiesDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -16,78 +16,70 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QVBoxLayout" name="_2"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="textLabel1_3"> + <property name="text"> + <string>&Translation Path Pattern: +(Use '%language%' where the language code should be inserted, e.g. i18n/eric6_%language%.ts)</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + <property name="buddy"> + <cstring>transPatternPicker</cstring> + </property> + </widget> + </item> <item> - <layout class="QGridLayout" name="_3"> - <item row="3" column="0"> - <widget class="QLineEdit" name="transBinPathEdit"> - <property name="toolTip"> - <string>Enter the path for the binary translation files (*.qm)</string> - </property> - <property name="whatsThis"> - <string><b>Binary Translations Path</b> -<p>Enter the directory for the binary translation files (*.qm). Leave it empty to store them together with the *.ts files.</p></string> - </property> - </widget> - </item> - <item row="2" column="0" colspan="2"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>&Binary Translations Path:</string> - </property> - <property name="buddy"> - <cstring>transBinPathEdit</cstring> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLineEdit" name="transPatternEdit"> - <property name="toolTip"> - <string>Enter the path pattern for the translation files</string> - </property> - <property name="whatsThis"> - <string><b>Translation Pattern</b> + <widget class="E5PathPicker" name="transPatternPicker" 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 pattern for the translation files</string> + </property> + <property name="whatsThis"> + <string><b>Translation Pattern</b> <p>Enter the path pattern for the translation files using %language% at the place of the language code (e.g. /path_to_eric/i18n/eric6_%language%.ts). This will result in translation files like /path_to_eric/i18n/eric6_de.ts.</p></string> - </property> - </widget> - </item> - <item row="0" column="0" colspan="2"> - <widget class="QLabel" name="textLabel1_3"> - <property name="text"> - <string>&Translation Path Pattern: -(Use '%language%' where the language code should be inserted, e.g. i18n/eric6_%language%.ts)</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - <property name="buddy"> - <cstring>transPatternEdit</cstring> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QToolButton" name="transPatternButton"> - <property name="toolTip"> - <string>Show directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Translation Pattern</b> -<p>Select a translation file via a file selection dialog.</p></string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QToolButton" name="transBinPathButton"> - <property name="toolTip"> - <string>Show directory selection dialog</string> - </property> - <property name="whatsThis"> - <string><b>Binary Translations Path</b> -<p>Select the directory for the binary translations via a directory selection dialog.</p></string> - </property> - </widget> - </item> - </layout> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>&Binary Translations Path:</string> + </property> + <property name="buddy"> + <cstring>transBinPathPicker</cstring> + </property> + </widget> + </item> + <item> + <widget class="E5PathPicker" name="transBinPathPicker" 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 for the binary translation files (*.qm)</string> + </property> + <property name="whatsThis"> + <string><b>Binary Translations Path</b> +<p>Enter the directory for the binary translation files (*.qm). Leave it empty to store them together with the *.ts files.</p></string> + </property> + </widget> </item> <item> <widget class="QGroupBox" name="exceptionsGroup"> @@ -176,11 +168,17 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>E5PathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>transPatternEdit</tabstop> - <tabstop>transPatternButton</tabstop> - <tabstop>transBinPathEdit</tabstop> - <tabstop>transBinPathButton</tabstop> + <tabstop>transPatternPicker</tabstop> + <tabstop>transBinPathPicker</tabstop> <tabstop>exceptionsList</tabstop> <tabstop>exceptionEdit</tabstop> <tabstop>deleteExceptionButton</tabstop>
--- a/PyUnit/UnittestDialog.py Sat Nov 28 19:47:23 2015 +0100 +++ b/PyUnit/UnittestDialog.py Sat Nov 28 19:48:11 2015 +0100 @@ -21,9 +21,9 @@ QListWidgetItem from E5Gui.E5Application import e5App -from E5Gui.E5Completers import E5FileCompleter -from E5Gui import E5MessageBox, E5FileDialog +from E5Gui import E5MessageBox from E5Gui.E5MainWindow import E5MainWindow +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_UnittestDialog import Ui_UnittestDialog @@ -63,7 +63,7 @@ self.setObjectName(name) self.setupUi(self) - self.fileDialogButton.setIcon(UI.PixmapCache.getIcon("open.png")) + self.testsuitePicker.setMode(E5PathPickerModes.OpenFileMode) self.startButton = self.buttonBox.addButton( self.tr("Start"), QDialogButtonBox.ActionRole) @@ -106,8 +106,6 @@ self.progressLed.setDarkFactor(150) self.progressLed.off() - self.testSuiteCompleter = E5FileCompleter(self.testsuiteComboBox) - self.fileHistory = [] self.testNameHistory = [] self.running = False @@ -155,19 +153,19 @@ def insertProg(self, prog): """ - Public slot to insert the filename prog into the testsuiteComboBox + Public slot to insert the filename prog into the testsuitePicker object. @param prog filename to be inserted (string) """ - # prepend the selected file to the testsuite combobox + # prepend the selected file to the testsuite picker if prog is None: prog = "" if prog in self.fileHistory: self.fileHistory.remove(prog) self.fileHistory.insert(0, prog) - self.testsuiteComboBox.clear() - self.testsuiteComboBox.addItems(self.fileHistory) + self.testsuitePicker.clear() + self.testsuitePicker.addItems(self.fileHistory) def insertTestName(self, testName): """ @@ -185,9 +183,9 @@ self.testComboBox.addItems(self.testNameHistory) @pyqtSlot() - def on_fileDialogButton_clicked(self): + def on_testsuitePicker_aboutToShowPathPickerDialog(self): """ - Private slot to open a file dialog. + Private slot called before the test suite selection dialog is shown. """ if self.dbs: py2Extensions = \ @@ -201,19 +199,20 @@ .format(py2Extensions, py3Extensions) else: filter = self.tr("Python Files (*.py);;All Files (*)") - prog = E5FileDialog.getOpenFileName( - self, - "", - self.testsuiteComboBox.currentText(), - filter) - - if not prog: - return - - self.insertProg(Utilities.toNativeSeparators(prog)) + self.testsuitePicker.setFilters(filter) @pyqtSlot(str) - def on_testsuiteComboBox_editTextChanged(self, txt): + def on_testsuitePicker_pathSelected(self, suite): + """ + Private slot called after a test suite has been selected. + + @param suite file name of the test suite + @type str + """ + self.insertProg(suite) + + @pyqtSlot(str) + def on_testsuitePicker_editTextChanged(self, txt): """ Private slot to handle changes of the test file name. @@ -257,7 +256,7 @@ if self.running: return - prog = self.testsuiteComboBox.currentText() + prog = self.testsuitePicker.currentText() if not prog: E5MessageBox.critical( self, @@ -621,7 +620,7 @@ # now build the dialog from .Ui_UnittestStacktraceDialog import Ui_UnittestStacktraceDialog - self.dlg = QDialog() + self.dlg = QDialog(self) ui = Ui_UnittestStacktraceDialog() ui.setupUi(self.dlg) self.dlg.traceback = ui.traceback
--- a/PyUnit/UnittestDialog.ui Sat Nov 28 19:47:23 2015 +0100 +++ b/PyUnit/UnittestDialog.ui Sat Nov 28 19:48:11 2015 +0100 @@ -17,30 +17,30 @@ <item> <widget class="QGroupBox" name="groupBox"> <property name="title"> - <string/> + <string>Test Parameters</string> </property> - <layout class="QGridLayout" name="_4"> - <item row="1" column="1" colspan="2"> - <widget class="QComboBox" name="testComboBox"> - <property name="toolTip"> - <string>Enter the test name. Leave empty to use the default name "suite".</string> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="testsuiteLabel"> + <property name="text"> + <string>Enter test &filename:</string> </property> - <property name="whatsThis"> - <string><b>Testname</b><p>Enter the name of the test to be performed. This name must follow the rules given by Python's unittest module. If this field is empty, the default name of "suite" will be used.</p></string> - </property> - <property name="editable"> - <bool>true</bool> + <property name="buddy"> + <cstring>testsuitePicker</cstring> </property> </widget> </item> <item row="0" column="1"> - <widget class="QComboBox" name="testsuiteComboBox"> + <widget class="E5ComboPathPicker" name="testsuitePicker" native="true"> <property name="sizePolicy"> - <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> + </property> <property name="toolTip"> <string>Enter name of file defining the testsuite</string> </property> @@ -51,15 +51,6 @@ found, the module will be inspected for proper test cases.</p></string> </property> - <property name="editable"> - <bool>true</bool> - </property> - <property name="insertPolicy"> - <enum>QComboBox::InsertAtTop</enum> - </property> - <property name="duplicatesEnabled"> - <bool>false</bool> - </property> </widget> </item> <item row="1" column="0"> @@ -72,20 +63,16 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QLabel" name="testsuiteLabel"> - <property name="text"> - <string>Enter test &filename:</string> + <item row="1" column="1"> + <widget class="QComboBox" name="testComboBox"> + <property name="toolTip"> + <string>Enter the test name. Leave empty to use the default name "suite".</string> </property> - <property name="buddy"> - <cstring>testsuiteComboBox</cstring> + <property name="whatsThis"> + <string><b>Testname</b><p>Enter the name of the test to be performed. This name must follow the rules given by Python's unittest module. If this field is empty, the default name of "suite" will be used.</p></string> </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QToolButton" name="fileDialogButton"> - <property name="toolTip"> - <string>Open a file selection dialog</string> + <property name="editable"> + <bool>true</bool> </property> </widget> </item> @@ -95,7 +82,7 @@ <item> <widget class="QGroupBox" name="optionsGroup"> <property name="title"> - <string/> + <string>Run Parameters</string> </property> <layout class="QHBoxLayout" name="_5"> <item> @@ -137,7 +124,7 @@ <item> <widget class="QGroupBox" name="progressGroupBox"> <property name="title"> - <string/> + <string>Progress</string> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> @@ -415,6 +402,12 @@ </widget> <customwidgets> <customwidget> + <class>E5ComboPathPicker</class> + <extends>QWidget</extends> + <header>E5Gui/E5PathPicker.h</header> + <container>1</container> + </customwidget> + <customwidget> <class>E5Led</class> <extends>QFrame</extends> <header>E5Gui/E5Led.h</header> @@ -422,8 +415,7 @@ </customwidget> </customwidgets> <tabstops> - <tabstop>testsuiteComboBox</tabstop> - <tabstop>fileDialogButton</tabstop> + <tabstop>testsuitePicker</tabstop> <tabstop>testComboBox</tabstop> <tabstop>localCheckBox</tabstop> <tabstop>coverageCheckBox</tabstop>