Philipp Hörist pushed to branch master at gajim / gajim
Commits: 1165bde2 by Daniel Brötzmann at 2019-07-03T19:15:10Z ManageProxies: Layout changes and code cleanup
- - - - -
6 changed files:
- gajim/app_actions.py - + gajim/data/gui/manage_proxies.ui - − gajim/data/gui/manage_proxies_window.ui - gajim/gtk/account_wizard.py - gajim/gtk/preferences.py - gajim/gtk/proxies.py
Changes:
===================================== gajim/app_actions.py ===================================== @@ -252,10 +252,11 @@ def on_xml_console(action, param):
def on_manage_proxies(action, param): - if 'manage_proxies' in app.interface.instances: - app.interface.instances['manage_proxies'].window.present() + window = app.get_app_window(ManageProxies) + if window is None: + ManageProxies() else: - app.interface.instances['manage_proxies'] = ManageProxies() + window.present()
# Admin Actions
===================================== gajim/data/gui/manage_proxies.ui ===================================== @@ -0,0 +1,439 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface> + <requires lib="gtk+" version="3.20"/> + <object class="GtkListStore" id="liststore1"> + <columns> + <!-- column-name item --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes" context="proxy configuration">HTTP Connect</col> + </row> + <row> + <col id="0" translatable="yes" context="proxy configuration">SOCKS5</col> + </row> + <row> + <col id="0" translatable="yes" context="proxy configuration">BOSH</col> + </row> + </data> + </object> + <object class="GtkBox" id="box"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="border_width">18</property> + <property name="spacing">12</property> + <child> + <object class="GtkBox"> + <property name="width_request">200</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="proxies_treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + <signal name="cursor-changed" handler="_on_proxies_treeview_cursor_changed" swapped="no"/> + <signal name="key-press-event" handler="_on_proxies_treeview_key_press_event" swapped="no"/> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkToolbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="toolbar_style">icons</property> + <property name="show_arrow">False</property> + <property name="icon_size">1</property> + <child> + <object class="GtkToolButton" id="add_proxy_button"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Add Proxy</property> + <property name="use_underline">True</property> + <property name="icon_name">list-add-symbolic</property> + <signal name="clicked" handler="_on_add_proxy_button_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="remove_proxy_button"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Remove Proxy</property> + <property name="use_underline">True</property> + <property name="icon_name">list-remove-symbolic</property> + <signal name="clicked" handler="_on_remove_proxy_button_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <style> + <class name="inline-toolbar"/> + </style> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkGrid" id="settings_grid"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">start</property> + <property name="row_spacing">6</property> + <property name="column_spacing">12</property> + <child> + <object class="GtkEntry" id="proxypass_entry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="visibility">False</property> + <property name="input_purpose">password</property> + <signal name="changed" handler="_on_proxypass_entry_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">10</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">Pass_word</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">proxypass_entry</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">10</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="proxyuser_entry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <signal name="changed" handler="_on_proxyuser_entry_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">9</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="useauth_checkbutton"> + <property name="label" translatable="yes">Use proxy auth_entication</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="halign">start</property> + <property name="margin_top">12</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="_on_useauth_toggled" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">8</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Username</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">proxyuser_entry</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">9</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="proxyport_entry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="placeholder_text">9050</property> + <property name="input_purpose">number</property> + <signal name="changed" handler="_on_proxyport_entry_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">7</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Port</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">proxyport_entry</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">7</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="proxyhost_entry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="placeholder_text" translatable="yes">example.org</property> + <property name="input_purpose">url</property> + <signal name="changed" handler="_on_proxyhost_entry_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">6</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Host</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">proxyhost_entry</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">6</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="bosh_useproxy_checkbutton"> + <property name="label" translatable="yes">Use HTTP prox_y</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="no_show_all">True</property> + <property name="halign">start</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="_on_bosh_useproxy_toggled" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">5</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="boshuri_entry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="no_show_all">True</property> + <property name="margin_bottom">12</property> + <property name="placeholder_text" translatable="yes">https://example.org/http-bind/</property> + <property name="input_purpose">url</property> + <signal name="changed" handler="_on_boshuri_entry_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">4</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="boshuri_label"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> + <property name="halign">end</property> + <property name="margin_bottom">12</property> + <property name="label" translatable="yes">_BOSH URL</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">boshuri_entry</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">4</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_top">12</property> + <property name="margin_bottom">6</property> + <property name="label" translatable="yes">Settings</property> + <property name="use_markup">True</property> + <style> + <class name="bold16"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">3</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="proxytype_combobox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="model">liststore1</property> + <signal name="changed" handler="_on_proxytype_combobox_changed" swapped="no"/> + <child> + <object class="GtkCellRendererText"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Type</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">proxytype_combobox</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Name</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">proxyname_entry</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="proxyname_entry"> + <property name="width_request">200</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <signal name="changed" handler="_on_proxyname_entry_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="margin_bottom">6</property> + <property name="label" translatable="yes">Proxy</property> + <property name="use_markup">True</property> + <style> + <class name="bold16"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GtkBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">5</property> + </packing> + </child> + <child> + <object class="GtkBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">8</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> +</interface>
===================================== gajim/data/gui/manage_proxies_window.ui deleted ===================================== @@ -1,442 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.22.1 --> -<interface> - <requires lib="gtk+" version="3.20"/> - <object class="GtkListStore" id="liststore1"> - <columns> - <!-- column-name item --> - <column type="gchararray"/> - </columns> - <data> - <row> - <col id="0" translatable="yes">HTTP Connect</col> - </row> - <row> - <col id="0" translatable="yes">SOCKS5</col> - </row> - <row> - <col id="0" translatable="yes">BOSH</col> - </row> - </data> - </object> - <object class="GtkWindow" id="manage_proxies_window"> - <property name="width_request">500</property> - <property name="height_request">440</property> - <property name="can_focus">False</property> - <property name="border_width">18</property> - <property name="title" translatable="yes">Manage Proxy Profiles</property> - <property name="window_position">center-on-parent</property> - <property name="default_width">500</property> - <property name="default_height">440</property> - <property name="type_hint">dialog</property> - <signal name="destroy" handler="_on_destroy" swapped="no"/> - <signal name="key-press-event" handler="_on_key_press" swapped="no"/> - <child> - <placeholder/> - </child> - <child> - <object class="GtkBox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">12</property> - <child> - <object class="GtkBox"> - <property name="width_request">200</property> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="orientation">vertical</property> - <child> - <object class="GtkScrolledWindow"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="proxies_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">False</property> - <signal name="cursor-changed" handler="on_proxies_treeview_cursor_changed" swapped="no"/> - <signal name="key-press-event" handler="on_proxies_treeview_key_press_event" swapped="no"/> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"/> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkToolbar"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="toolbar_style">icons</property> - <property name="show_arrow">False</property> - <property name="icon_size">1</property> - <child> - <object class="GtkToolButton" id="add_proxy_button"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">Add Proxy</property> - <property name="use_underline">True</property> - <property name="icon_name">list-add-symbolic</property> - <signal name="clicked" handler="on_add_proxy_button_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <child> - <object class="GtkToolButton" id="remove_proxy_button"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">Remove Proxy</property> - <property name="use_underline">True</property> - <property name="icon_name">list-remove-symbolic</property> - <signal name="clicked" handler="on_remove_proxy_button_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <style> - <class name="inline-toolbar"/> - </style> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkBox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkGrid"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="row_spacing">6</property> - <property name="column_spacing">12</property> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Properties</property> - <property name="use_markup">True</property> - <style> - <class name="bold"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_Name</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_Type</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="proxyname_entry"> - <property name="width_request">200</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <signal name="changed" handler="on_proxyname_entry_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="proxytype_combobox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="margin_bottom">6</property> - <property name="model">liststore1</property> - <signal name="changed" handler="on_proxytype_combobox_changed" swapped="no"/> - <child> - <object class="GtkCellRendererText"/> - <attributes> - <attribute name="text">0</attribute> - </attributes> - </child> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkGrid" id="proxy_table"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="row_spacing">6</property> - <property name="column_spacing">12</property> - <child> - <object class="GtkLabel" id="boshuri_label"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_BOSH URL</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="boshuri_entry"> - <property name="width_request">200</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <signal name="changed" handler="on_boshuri_entry_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="boshuseproxy_checkbutton"> - <property name="label" translatable="yes">Use HTTP prox_y</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="halign">start</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_boshuseproxy_checkbutton_toggled" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Proxy _Host</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">3</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="proxyhost_entry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <signal name="changed" handler="on_proxyhost_entry_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">3</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Proxy _Port</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">4</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="proxyport_entry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <signal name="changed" handler="on_proxyport_entry_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">4</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_Username</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">6</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="useauth_checkbutton"> - <property name="label" translatable="yes">Use proxy auth_entication</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="halign">start</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_useauth_checkbutton_toggled" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">5</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="proxyuser_entry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <signal name="changed" handler="on_proxyuser_entry_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">6</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Pass_word</property> - <property name="use_underline">True</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">7</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="proxypass_entry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="visibility">False</property> - <signal name="changed" handler="on_proxypass_entry_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">7</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Settings</property> - <property name="use_markup">True</property> - <style> - <class name="bold"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> -</interface>
===================================== gajim/gtk/account_wizard.py ===================================== @@ -347,11 +347,12 @@ class AccountCreationWizard: model.append([proxy]) proxies_combobox.set_active(0)
- def on_manage_proxies_button_clicked(self, widget): - if 'manage_proxies' in app.interface.instances: - app.interface.instances['manage_proxies'].window.present() + def on_manage_proxies_button_clicked(self, _widget): + window = app.get_app_window(ManageProxies) + if window is None: + ManageProxies() else: - app.interface.instances['manage_proxies'] = ManageProxies() + window.present()
def on_custom_host_port_checkbutton_toggled(self, widget): self.xml.get_object('custom_host_hbox').set_sensitive(
===================================== gajim/gtk/preferences.py ===================================== @@ -972,11 +972,12 @@ class Preferences(Gtk.ApplicationWindow): proxy = '' app.config.set('global_proxy', proxy)
- def on_manage_proxies_button_clicked(self, widget): - if 'manage_proxies' in app.interface.instances: - app.interface.instances['manage_proxies'].window.present() + def on_manage_proxies_button_clicked(self, _widget): + window = app.get_app_window(ManageProxies) + if window is None: + ManageProxies() else: - app.interface.instances['manage_proxies'] = ManageProxies() + window.present()
def update_proxy_list(self): our_proxy = app.config.get('global_proxy')
===================================== gajim/gtk/proxies.py ===================================== @@ -16,54 +16,70 @@ from gi.repository import Gdk from gi.repository import Gtk
from gajim.common import app +from gajim.common.i18n import _
from gajim.gtk.util import get_builder
-class ManageProxies: +class ManageProxies(Gtk.ApplicationWindow): def __init__(self): - self._ui = get_builder('manage_proxies_window.ui') - self.window = self._ui.manage_proxies_window - self.window.set_transient_for(app.app.get_active_window()) - - self.init_list() - self.block_signal = False + Gtk.ApplicationWindow.__init__(self) + self.set_name('ManageProxies') + self.set_application(app.app) + self.set_position(Gtk.WindowPosition.CENTER) + self.set_default_size(500, -1) + self.set_show_menubar(False) + self.set_title(_('Manage Proxies')) + + self._ui = get_builder('manage_proxies.ui') + self.add(self._ui.box) + + self._init_list() + self._block_signal = False + + self.connect('key-press-event', self._on_key_press) + self.connect('destroy', self._on_destroy) self._ui.connect_signals(self) - self.window.show_all() + self.show_all()
- # hide the BOSH fields by default - self.show_bosh_fields() - self._ui.boshuri_entry.hide() - self._ui.boshuri_label.hide() - self._ui.boshuseproxy_checkbutton.hide() + def _on_key_press(self, _widget, event): + if event.keyval == Gdk.KEY_Escape: + self.destroy()
- def show_bosh_fields(self, show=True): + def _on_destroy(self, *args): + # Window callbacks for updating proxy comboboxes + window_pref = app.get_app_window('Preferences') + window_accounts = app.get_app_window('AccountsWindow') + if window_pref is not None: + window_pref.update_proxy_list() + if window_accounts is not None: + window_accounts.update_proxy_list() + + def _show_bosh_fields(self, show=True): if show: self._ui.boshuri_entry.show() self._ui.boshuri_label.show() - self._ui.boshuseproxy_checkbutton.show() - act = self._ui.boshuseproxy_checkbutton.get_active() + self._ui.bosh_useproxy_checkbutton.show() + act = self._ui.bosh_useproxy_checkbutton.get_active() self._ui.proxyhost_entry.set_sensitive(act) self._ui.proxyport_entry.set_sensitive(act) else: - self._ui.boshuseproxy_checkbutton.hide() - self._ui.boshuseproxy_checkbutton.set_active(True) - self.on_boshuseproxy_checkbutton_toggled( - self._ui.boshuseproxy_checkbutton) self._ui.boshuri_entry.hide() self._ui.boshuri_label.hide() + self._ui.bosh_useproxy_checkbutton.hide() + self._ui.proxyhost_entry.set_sensitive(True) + self._ui.proxyport_entry.set_sensitive(True)
- def fill_proxies_treeview(self): + def _fill_proxies_treeview(self): model = self._ui.proxies_treeview.get_model() model.clear() for proxy in app.config.get_per('proxies'): iter_ = model.append() model.set(iter_, 0, proxy)
- def init_list(self): + def _init_list(self): self._ui.remove_proxy_button.set_sensitive(False) - self._ui.proxytype_combobox.set_sensitive(False) - self._ui.proxy_table.set_sensitive(False) + self._ui.settings_grid.set_sensitive(False) model = Gtk.ListStore(str) self._ui.proxies_treeview.set_model(model) col = Gtk.TreeViewColumn('Proxies') @@ -71,10 +87,10 @@ class ManageProxies: renderer = Gtk.CellRendererText() col.pack_start(renderer, True) col.add_attribute(renderer, 'text', 0) - self.fill_proxies_treeview() + self._fill_proxies_treeview() self._ui.proxytype_combobox.set_active(0)
- def on_add_proxy_button_clicked(self, _widget): + def _on_add_proxy_button_clicked(self, _widget): model = self._ui.proxies_treeview.get_model() proxies = app.config.get_per('proxies') i = 1 @@ -85,7 +101,7 @@ class ManageProxies: app.config.add_per('proxies', 'proxy' + str(i)) self._ui.proxies_treeview.set_cursor(model.get_path(iter_))
- def on_remove_proxy_button_clicked(self, _widget): + def _on_remove_proxy_button_clicked(self, _widget): sel = self._ui.proxies_treeview.get_selection() if not sel: return @@ -96,12 +112,12 @@ class ManageProxies: model.remove(iter_) app.config.del_per('proxies', proxy) self._ui.remove_proxy_button.set_sensitive(False) - self.block_signal = True - self.on_proxies_treeview_cursor_changed(self._ui.proxies_treeview) - self.block_signal = False + self._block_signal = True + self._on_proxies_treeview_cursor_changed(self._ui.proxies_treeview) + self._block_signal = False
- def on_useauth_checkbutton_toggled(self, widget): - if self.block_signal: + def _on_useauth_toggled(self, widget): + if self._block_signal: return act = widget.get_active() proxy = self._ui.proxyname_entry.get_text() @@ -109,20 +125,17 @@ class ManageProxies: self._ui.proxyuser_entry.set_sensitive(act) self._ui.proxypass_entry.set_sensitive(act)
- def on_boshuseproxy_checkbutton_toggled(self, widget): - if self.block_signal: + def _on_bosh_useproxy_toggled(self, checkbutton): + if self._block_signal: return - act = widget.get_active() + act = checkbutton.get_active() proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'bosh_useproxy', act) self._ui.proxyhost_entry.set_sensitive(act) self._ui.proxyport_entry.set_sensitive(act)
- def on_proxies_treeview_cursor_changed(self, widget): - #FIXME: check if off proxy settings are correct (see - # http://trac.gajim.org/changeset/1921#file2 line 1221 - - self.block_signal = True + def _on_proxies_treeview_cursor_changed(self, widget): + self._block_signal = True self._ui.proxyhost_entry.set_text('') self._ui.proxyport_entry.set_text('') self._ui.proxyuser_entry.set_text('') @@ -136,9 +149,8 @@ class ManageProxies: iter_ = None if not iter_: self._ui.proxyname_entry.set_text('') - self._ui.proxytype_combobox.set_sensitive(False) - self._ui.proxy_table.set_sensitive(False) - self.block_signal = False + self._ui.settings_grid.set_sensitive(False) + self._block_signal = False return
proxy = model[iter_][0] @@ -146,20 +158,19 @@ class ManageProxies:
proxytype = app.config.get_per('proxies', proxy, 'type')
- self.show_bosh_fields(proxytype == 'bosh') + self._show_bosh_fields(proxytype == 'bosh')
- self._ui.proxyname_entry.set_editable(True) - self._ui.proxyname_entry.set_sensitive(True) self._ui.remove_proxy_button.set_sensitive(True) - self._ui.proxytype_combobox.set_sensitive(True) - self._ui.proxy_table.set_sensitive(True) + self._ui.proxyname_entry.set_editable(True) + + self._ui.settings_grid.set_sensitive(True)
self._ui.boshuri_entry.set_text( app.config.get_per('proxies', proxy, 'bosh_uri')) - self._ui.boshuseproxy_checkbutton.set_active( + self._ui.bosh_useproxy_checkbutton.set_active( app.config.get_per('proxies', proxy, 'bosh_useproxy')) if proxytype == 'bosh': - act = self._ui.boshuseproxy_checkbutton.get_active() + act = self._ui.bosh_useproxy_checkbutton.get_active() self._ui.proxyhost_entry.set_sensitive(act) self._ui.proxyport_entry.set_sensitive(act)
@@ -181,14 +192,14 @@ class ManageProxies: self._ui.proxyuser_entry.set_sensitive(act) self._ui.proxypass_entry.set_sensitive(act)
- self.block_signal = False + self._block_signal = False
- def on_proxies_treeview_key_press_event(self, widget, event): + def _on_proxies_treeview_key_press_event(self, widget, event): if event.keyval == Gdk.KEY_Delete: - self.on_remove_proxy_button_clicked(widget) + self._on_remove_proxy_button_clicked(widget)
- def on_proxyname_entry_changed(self, widget): - if self.block_signal: + def _on_proxyname_entry_changed(self, widget): + if self._block_signal: return sel = self._ui.proxies_treeview.get_selection() if not sel: @@ -209,59 +220,48 @@ class ManageProxies: app.config.set_per('proxies', new_name, option, config[option]) model.set_value(iter_, 0, new_name)
- def on_proxytype_combobox_changed(self, _widget): - if self.block_signal: + def _on_proxytype_combobox_changed(self, _widget): + if self._block_signal: return types = ['http', 'socks5', 'bosh'] type_ = self._ui.proxytype_combobox.get_active() - self.show_bosh_fields(types[type_] == 'bosh') + self._ui.proxyhost_entry.set_sensitive(True) + self._ui.proxyport_entry.set_sensitive(True) + self._show_bosh_fields(types[type_] == 'bosh') proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'type', types[type_])
- def on_boshuri_entry_changed(self, widget): - if self.block_signal: + def _on_boshuri_entry_changed(self, entry): + if self._block_signal: return - value = widget.get_text() + value = entry.get_text() proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'bosh_uri', value)
- def on_proxyhost_entry_changed(self, widget): - if self.block_signal: + def _on_proxyhost_entry_changed(self, entry): + if self._block_signal: return - value = widget.get_text() + value = entry.get_text() proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'host', value)
- def on_proxyport_entry_changed(self, widget): - if self.block_signal: + def _on_proxyport_entry_changed(self, entry): + if self._block_signal: return - value = widget.get_text() + value = entry.get_text() proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'port', value)
- def on_proxyuser_entry_changed(self, widget): - if self.block_signal: + def _on_proxyuser_entry_changed(self, entry): + if self._block_signal: return - value = widget.get_text() + value = entry.get_text() proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'user', value)
- def on_proxypass_entry_changed(self, widget): - if self.block_signal: + def _on_proxypass_entry_changed(self, entry): + if self._block_signal: return - value = widget.get_text() + value = entry.get_text() proxy = self._ui.proxyname_entry.get_text() app.config.set_per('proxies', proxy, 'pass', value) - - def _on_key_press(self, widget, event): - if event.keyval == Gdk.KEY_Escape: - self.window.destroy() - - def _on_destroy(self, *args): - window_pref = app.get_app_window('Preferences') - window_accounts = app.get_app_window('AccountsWindow') - if window_pref is not None: - window_pref.update_proxy_list() - if window_accounts is not None: - window_accounts.update_proxy_list() - del app.interface.instances['manage_proxies']
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/1165bde27b1ce89e0eac7eda22e26682970...