Mercurial > octave
changeset 28409:ed8d11b1027d
reorganize network preferences in settings dialog
* gui-preferences-global.h: new lists with proxy types and flags for
those requiring manual input from the user in the dialog
* settings-dialog.cc (settings_dialog): fill the combo box of proxy types
witht the list defined in gui-preferences, connect signal for des-/enabling
dialog elements depending on changed selections, new names for the
elements avoiding camel-case
(proxy_items_update): slot for changes in proxy settings, des-/enabling
the line edits for the proxy accordingly
(write_changed_settings): new variable names
* settings-dialog.h: new slot proxy_items_update
* settings-dialog.ui: reordering network preferences in groups, new
variable names for proxy settings, removed realted signals and
slots for dis-/enabling elements which are now in settings_dialog
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Fri, 05 Jun 2020 20:50:22 +0200 |
parents | 99ffd1058bec |
children | 4bb892170ebb |
files | libgui/src/gui-preferences-global.h libgui/src/settings-dialog.cc libgui/src/settings-dialog.h libgui/src/settings-dialog.ui |
diffstat | 4 files changed, 213 insertions(+), 298 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/gui-preferences-global.h Fri Jun 05 11:40:49 2020 -0400 +++ b/libgui/src/gui-preferences-global.h Fri Jun 05 20:50:22 2020 +0200 @@ -126,4 +126,13 @@ const gui_pref global_proxy_pass ("proxyPassword", QVariant (QString ())); +const QStringList +global_proxy_all_types (QStringList () + << QT_TRANSLATE_NOOP ("octave::settings_dialog", "HttpProxy") + << QT_TRANSLATE_NOOP ("octave::settings_dialog", "Socks5Proxy") +// << QT_TRANSLATE_NOOP ("octave::settings_dialog", "Environment Varaibles") +); +const QList<int> +global_proxy_manual_types (QList<int> () << 0 << 1); + #endif
--- a/libgui/src/settings-dialog.cc Fri Jun 05 11:40:49 2020 -0400 +++ b/libgui/src/settings-dialog.cc Fri Jun 05 20:50:22 2020 +0200 @@ -397,21 +397,33 @@ le_file_browser_extensions->setText (settings->value (fb_txt_file_ext).toString ()); checkbox_allow_web_connect->setChecked (settings->value (nr_allow_connection).toBool ()); - useProxyServer->setChecked ( - settings->value (global_use_proxy.key, global_use_proxy.def).toBool ()); - proxyHostName->setText (settings->value (global_proxy_host.key, global_proxy_host.def).toString ()); - int currentIndex = 0; - QString proxyTypeString = settings->value (global_proxy_type.key, global_proxy_type.def).toString (); - while ((currentIndex < proxyType->count ()) - && (proxyType->currentText () != proxyTypeString)) + // Proxy + bool use_proxy = settings->value (global_use_proxy.key, global_use_proxy.def).toBool (); + use_proxy_server->setChecked (use_proxy); + // Fill combo box and activate current one + QString proxy_type_string = settings->value (global_proxy_type.key, global_proxy_type.def).toString (); + proxy_type->addItems (global_proxy_all_types); + for (int i = 0; i < global_proxy_all_types.length (); i++) { - currentIndex++; - proxyType->setCurrentIndex (currentIndex); + if (proxy_type->itemText (i) == proxy_type_string) + { + proxy_type->setCurrentIndex (i); + break; + } } - proxyPort->setText (settings->value (global_proxy_port.key, global_proxy_port.def).toString ()); - proxyUserName->setText (settings->value (global_proxy_user.key, global_proxy_user.def).toString ()); - proxyPassword->setText (settings->value (global_proxy_pass.key, global_proxy_pass.def).toString ()); + // Fill all line edits + proxy_host_name->setText (settings->value (global_proxy_host.key, global_proxy_host.def).toString ()); + proxy_port->setText (settings->value (global_proxy_port.key, global_proxy_port.def).toString ()); + proxy_username->setText (settings->value (global_proxy_user.key, global_proxy_user.def).toString ()); + proxy_password->setText (settings->value (global_proxy_pass.key, global_proxy_pass.def).toString ()); + // Connect relevant signals for dis-/enabling some elements + connect (proxy_type, SIGNAL (currentIndexChanged (int)), + this, SLOT (proxy_items_update (void))); + connect (use_proxy_server, SIGNAL (toggled (bool)), + this, SLOT (proxy_items_update (void))); + // Check whehter line edits have to be enabled + proxy_items_update (); // Workspace read_workspace_colors (settings); @@ -596,6 +608,32 @@ } } + // slot for updating enabled state of proxy settings + void settings_dialog::proxy_items_update (void) + { + bool use_proxy = use_proxy_server->isChecked (); + + bool manual = false; + for (int i = 0; i < global_proxy_manual_types.length (); i++) + { + if (proxy_type->currentIndex () == global_proxy_manual_types.at (i)) + { + manual = true; + break; + } + } + + proxy_type->setEnabled (use_proxy); + proxy_host_name_label->setEnabled (use_proxy && manual); + proxy_host_name->setEnabled (use_proxy && manual); + proxy_port_label->setEnabled (use_proxy && manual); + proxy_port->setEnabled (use_proxy && manual); + proxy_username_label->setEnabled (use_proxy && manual); + proxy_username->setEnabled (use_proxy && manual); + proxy_password_label->setEnabled (use_proxy && manual); + proxy_password->setEnabled (use_proxy && manual); + } + // slots for import/export of shortcut sets void settings_dialog::import_shortcut_set (void) @@ -951,12 +989,12 @@ settings->setValue (fb_txt_file_ext.key, le_file_browser_extensions->text ()); settings->setValue (nr_allow_connection.key, checkbox_allow_web_connect->isChecked ()); - settings->setValue (global_use_proxy.key, useProxyServer->isChecked ()); - settings->setValue (global_proxy_type.key, proxyType->currentText ()); - settings->setValue (global_proxy_host.key, proxyHostName->text ()); - settings->setValue (global_proxy_port.key, proxyPort->text ()); - settings->setValue (global_proxy_user.key, proxyUserName->text ()); - settings->setValue (global_proxy_pass.key, proxyPassword->text ()); + settings->setValue (global_use_proxy.key, use_proxy_server->isChecked ()); + settings->setValue (global_proxy_type.key, proxy_type->currentText ()); + settings->setValue (global_proxy_host.key, proxy_host_name->text ()); + settings->setValue (global_proxy_port.key, proxy_port->text ()); + settings->setValue (global_proxy_user.key, proxy_username->text ()); + settings->setValue (global_proxy_pass.key, proxy_password->text ()); settings->setValue (cs_cursor_use_fgcol.key, terminal_cursorUseForegroundColor->isChecked ()); settings->setValue (mw_dir_list.key, terminal_focus_command->isChecked ()); settings->setValue (cs_dbg_location.key, terminal_print_dbg_location->isChecked ());
--- a/libgui/src/settings-dialog.h Fri Jun 05 11:40:49 2020 -0400 +++ b/libgui/src/settings-dialog.h Fri Jun 05 20:50:22 2020 +0200 @@ -65,6 +65,7 @@ void get_file_browser_dir (void); void get_dir (QLineEdit*, const QString&); void set_disabled_pref_file_browser_dir (bool disable); + void proxy_items_update (void); // slots for dialog's buttons void button_clicked (QAbstractButton *button);
--- a/libgui/src/settings-dialog.ui Fri Jun 05 11:40:49 2020 -0400 +++ b/libgui/src/settings-dialog.ui Fri Jun 05 20:50:22 2020 +0200 @@ -32,7 +32,7 @@ </size> </property> <property name="currentIndex"> - <number>2</number> + <number>7</number> </property> <widget class="QWidget" name="tab_general"> <property name="enabled"> @@ -841,7 +841,7 @@ <property name="geometry"> <rect> <x>0</x> - <y>-898</y> + <y>0</y> <width>1021</width> <height>1529</height> </rect> @@ -2829,124 +2829,151 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_20"> <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QCheckBox" name="checkbox_allow_web_connect"> - <property name="text"> - <string>Allow Octave to connect to the Octave web site to display current news and information</string> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="1" column="1"> - <widget class="QLabel" name="label_4"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Hostname:</string> - </property> - </widget> - </item> - <item row="0" column="2"> - <widget class="QComboBox" name="proxyType"> - <property name="enabled"> - <bool>false</bool> - </property> - <item> - <property name="text"> - <string>HttpProxy</string> - </property> - </item> - <item> - <property name="text"> - <string>Socks5Proxy</string> - </property> - </item> - </widget> - </item> - <item row="3" column="1"> - <widget class="QLabel" name="label_6"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Username:</string> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QCheckBox" name="useProxyServer"> - <property name="text"> - <string>Use proxy server</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="label_3"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Proxy type:</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="label_5"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Port:</string> - </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="QLabel" name="label_7"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="text"> - <string>Password:</string> - </property> - </widget> - </item> - <item row="1" column="2"> - <widget class="QLineEdit" name="proxyHostName"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="2" column="2"> - <widget class="QLineEdit" name="proxyPort"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="3" column="2"> - <widget class="QLineEdit" name="proxyUserName"> - <property name="enabled"> - <bool>false</bool> - </property> - </widget> - </item> - <item row="4" column="2"> - <widget class="QLineEdit" name="proxyPassword"> - <property name="enabled"> - <bool>false</bool> - </property> - <property name="echoMode"> - <enum>QLineEdit::Password</enum> - </property> - </widget> - </item> - </layout> - </item> - </layout> + <widget class="QGroupBox" name="groupBox_12"> + <property name="title"> + <string>General</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_33"> + <item> + <widget class="QCheckBox" name="checkbox_allow_web_connect"> + <property name="text"> + <string>Allow Octave to connect to the Octave web site to display current news and information</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_13"> + <property name="title"> + <string>Proxy Server</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_34"> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="1" column="2"> + <widget class="QLabel" name="proxy_host_name_label"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Hostname:</string> + </property> + </widget> + </item> + <item row="0" column="3"> + <widget class="QComboBox" name="proxy_type"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="toolTip"> + <string><html><head/><body><p>Select <span style=" font-style:italic;">HttpProxy</span>, <span style=" font-style:italic;">Sock5Proxy</span> or <span style=" font-style:italic;">Environment Variables</span>. With the last selection, the proxy is taken from the first non-empty environment variable ALL_PROXY, HTTP_PROXY or HTTPS_PROXY .</p></body></html></string> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QLabel" name="proxy_username_label"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Username:</string> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="proxy_type_label"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>Proxy type:</string> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QLabel" name="proxy_port_label"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Port:</string> + </property> + </widget> + </item> + <item row="4" column="2"> + <widget class="QLabel" name="proxy_password_label"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Password:</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QLineEdit" name="proxy_host_name"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="2" column="3"> + <widget class="QLineEdit" name="proxy_port"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="3" column="3"> + <widget class="QLineEdit" name="proxy_username"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="4" column="3"> + <widget class="QLineEdit" name="proxy_password"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="echoMode"> + <enum>QLineEdit::Password</enum> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QCheckBox" name="use_proxy_server"> + <property name="text"> + <string>Use proxy server</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <spacer name="horizontalSpacer_30"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> </item> <item> <spacer name="verticalSpacer_5"> @@ -2981,102 +3008,6 @@ <resources/> <connections> <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>label_4</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>69</x> - <y>122</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>label_3</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>59</x> - <y>91</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>proxyHostName</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>291</x> - <y>124</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>label_5</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>44</x> - <y>152</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>proxyType</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>291</x> - <y>91</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>proxyPort</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>364</x> - <y>154</y> - </hint> - </hints> - </connection> - <connection> <sender>useCustomFileEditor</sender> <signal>toggled(bool)</signal> <receiver>customFileEditor</receiver> @@ -3093,70 +3024,6 @@ </hints> </connection> <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>label_7</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>67</x> - <y>212</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>label_6</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>68</x> - <y>182</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>proxyPassword</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>364</x> - <y>214</y> - </hint> - </hints> - </connection> - <connection> - <sender>useProxyServer</sender> - <signal>toggled(bool)</signal> - <receiver>proxyUserName</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>249</x> - <y>59</y> - </hint> - <hint type="destinationlabel"> - <x>364</x> - <y>184</y> - </hint> - </hints> - </connection> - <connection> <sender>useCustomFileEditor</sender> <signal>toggled(bool)</signal> <receiver>customEditorLabel</receiver>