Philipp Hörist pushed to branch mainwindow at gajim / gajim
Commits: e9cbce5d by lovetox at 2021-03-04T22:05:55+01:00 AddContact: Refactor
- - - - -
1 changed file:
- gajim/gtk/add_contact.py
Changes:
===================================== gajim/gtk/add_contact.py ===================================== @@ -21,6 +21,7 @@ from gajim.common import helpers from gajim.common.i18n import _
+from .service_registration import ServiceRegistration from .dialogs import ErrorDialog from .util import get_builder from .util import EventHelper @@ -58,27 +59,18 @@ def __init__(self, account=None, contact_jid=None, user_nick=None, group=None): if not account: self.account = accounts[0][0]
- self.xml = get_builder('add_new_contact_window.ui') - self.add(self.xml.get_object('add_contact_box')) - self.xml.connect_signals(self) + self._ui = get_builder('add_new_contact_window.ui') + self.add(self._ui.add_contact_box) + self._ui.connect_signals(self)
- for w in ('account_combobox', 'account_label', 'prompt_label', - 'uid_label', 'uid_entry', 'show_contact_info_button', - 'protocol_combobox', 'protocol_jid_combobox', - 'protocol_label', 'nickname_entry', - 'message_scrolledwindow', 'save_message_checkbutton', - 'register_hbox', 'add_button', 'message_textview', - 'connected_label', 'group_comboboxentry', - 'auto_authorize_checkbutton', 'save_message_revealer', - 'nickname_label', 'group_label'): - self.__dict__[w] = self.xml.get_object(w) + self.subscription_table = [ + self._ui.uid_label, self._ui.uid_entry, + self._ui.show_contact_info_button, + self._ui.nickname_label, self._ui.nickname_entry, + self._ui.group_label, self._ui.group_comboboxentry + ]
- self.subscription_table = [self.uid_label, self.uid_entry, - self.show_contact_info_button, - self.nickname_label, self.nickname_entry, - self.group_label, self.group_comboboxentry] - - self.add_button.grab_default() + self._ui.add_button.grab_default()
self.agents = {'jabber': []} self.gateway_prompt = {} @@ -110,7 +102,7 @@ def __init__(self, account=None, contact_jid=None, user_nick=None, group=None):
uf_type = {'jabber': 'XMPP', 'gadu-gadu': 'Gadu Gadu', 'icq': 'ICQ'} # Jabber as first - liststore = self.protocol_combobox.get_model() + liststore = self._ui.protocol_combobox.get_model() liststore.append(['XMPP', 'xmpp', 'jabber']) for type_ in self.agents: if type_ == 'jabber': @@ -124,8 +116,8 @@ def __init__(self, account=None, contact_jid=None, user_nick=None, group=None): for service in self.agents[type_]: con = app.connections[account] con.get_module('Gateway').request_gateway_prompt(service) - self.protocol_combobox.set_active(0) - self.auto_authorize_checkbutton.show() + self._ui.protocol_combobox.set_active(0) + self._ui.auto_authorize_checkbutton.show()
if contact_jid: self.jid_escaped = True @@ -133,42 +125,42 @@ def __init__(self, account=None, contact_jid=None, user_nick=None, group=None): if not type_: type_ = 'jabber' if type_ == 'jabber': - self.uid_entry.set_text(contact_jid) + self._ui.uid_entry.set_text(contact_jid) transport = None else: uid, transport = app.get_name_and_server_from_jid(contact_jid) - self.uid_entry.set_text(uid.replace('%', '@', 1)) + self._ui.uid_entry.set_text(uid.replace('%', '@', 1))
- self.show_contact_info_button.set_sensitive(True) + self._ui.show_contact_info_button.set_sensitive(True)
# set protocol_combobox - model = self.protocol_combobox.get_model() + model = self._ui.protocol_combobox.get_model() iter_ = model.get_iter_first() i = 0 while iter_: if model[iter_][2] == type_: - self.protocol_combobox.set_active(i) + self._ui.protocol_combobox.set_active(i) break iter_ = model.iter_next(iter_) i += 1
# set protocol_jid_combobox - self.protocol_jid_combobox.set_active(0) - model = self.protocol_jid_combobox.get_model() + self._ui.protocol_jid_combobox.set_active(0) + model = self._ui.protocol_jid_combobox.get_model() iter_ = model.get_iter_first() i = 0 while iter_: if model[iter_][0] == transport: - self.protocol_jid_combobox.set_active(i) + self._ui.protocol_jid_combobox.set_active(i) break iter_ = model.iter_next(iter_) i += 1 if user_nick: - self.nickname_entry.set_text(user_nick) - self.nickname_entry.grab_focus() + self._ui.nickname_entry.set_text(user_nick) + self._ui.nickname_entry.grab_focus() else: self.jid_escaped = False - self.uid_entry.grab_focus() + self._ui.uid_entry.grab_focus() group_names = [] for acct in accounts: for g in app.groups[acct[0]].keys(): @@ -177,31 +169,31 @@ def __init__(self, account=None, contact_jid=None, user_nick=None, group=None): group_names.sort() i = 0 for g in group_names: - self.group_comboboxentry.append_text(g) + self._ui.group_comboboxentry.append_text(g) if group == g: - self.group_comboboxentry.set_active(i) + self._ui.group_comboboxentry.set_active(i) i += 1
if len(accounts) > 1: - liststore = self.account_combobox.get_model() + liststore = self._ui.account_combobox.get_model() for acc in accounts: liststore.append(acc)
- self.account_combobox.set_active_id(self.account) - self.account_label.show() - self.account_combobox.show() + self._ui.account_combobox.set_active_id(self.account) + self._ui.account_label.show() + self._ui.account_combobox.show()
if len(self.agents) > 1: - self.protocol_label.show() - self.protocol_combobox.show() + self._ui.protocol_label.show() + self._ui.protocol_combobox.show()
if self.account: - message_buffer = self.message_textview.get_buffer() + message_buffer = self._ui.message_textview.get_buffer() msg = helpers.from_one_line(helpers.get_subscription_request_msg( self.account)) message_buffer.set_text(msg)
- self.uid_entry.connect('changed', self.on_uid_entry_changed) + self._ui.uid_entry.connect('changed', self.on_uid_entry_changed) self.show_all()
self.register_events([ @@ -210,14 +202,14 @@ def __init__(self, account=None, contact_jid=None, user_nick=None, group=None): ])
def on_uid_entry_changed(self, widget): - is_empty = bool(not self.uid_entry.get_text() == '') - self.show_contact_info_button.set_sensitive(is_empty) + is_empty = bool(not self._ui.uid_entry.get_text() == '') + self._ui.show_contact_info_button.set_sensitive(is_empty)
def on_show_contact_info_button_clicked(self, widget): """ Ask for vCard """ - jid = self.uid_entry.get_text().strip() + jid = self._ui.uid_entry.get_text().strip()
if jid in app.interface.instances[self.account]['infos']: app.interface.instances[self.account]['infos'][jid].window.present() @@ -230,10 +222,9 @@ def on_show_contact_info_button_clicked(self, widget): get_object('information_notebook').remove_page(0)
def on_register_button_clicked(self, widget): - model = self.protocol_jid_combobox.get_model() - row = self.protocol_jid_combobox.get_active() + model = self._ui.protocol_jid_combobox.get_model() + row = self._ui.protocol_jid_combobox.get_active() jid = model[row][0] - from .service_registration import ServiceRegistration ServiceRegistration(self.account, jid)
def _on_key_press(self, widget, event): @@ -247,28 +238,28 @@ def on_cancel_button_clicked(self, widget): self.destroy()
def on_message_textbuffer_changed(self, widget): - self.save_message_revealer.show() - self.save_message_revealer.set_reveal_child(True) + self._ui.save_message_revealer.show() + self._ui.save_message_revealer.set_reveal_child(True)
def on_add_button_clicked(self, widget): """ When Subscribe button is clicked """ - jid = self.uid_entry.get_text().strip() + jid = self._ui.uid_entry.get_text().strip() if not jid: ErrorDialog( - _('%s Missing') % self.uid_label.get_text(), + _('%s Missing') % self._ui.uid_label.get_text(), (_('You must supply the %s of the new contact.') % - self.uid_label.get_text()) + self._ui.uid_label.get_text()) ) return
- model = self.protocol_combobox.get_model() - row = self.protocol_combobox.get_active_iter() + model = self._ui.protocol_combobox.get_model() + row = self._ui.protocol_combobox.get_active_iter() type_ = model[row][2] if type_ != 'jabber': - model = self.protocol_jid_combobox.get_model() - row = self.protocol_jid_combobox.get_active() + model = self._ui.protocol_jid_combobox.get_model() + row = self._ui.protocol_jid_combobox.get_active() transport = model[row][0] if self.account and not self.jid_escaped: self.adding_jid = (jid, transport, type_) @@ -307,11 +298,11 @@ def _add_jid(self, jid, type_): ) return
- nickname = self.nickname_entry.get_text() or '' + nickname = self._ui.nickname_entry.get_text() or '' # get value of account combobox, if account was not specified if not self.account: - model = self.account_combobox.get_model() - index = self.account_combobox.get_active() + model = self._ui.account_combobox.get_model() + index = self._ui.account_combobox.get_active() self.account = model[index][1]
# Check if jid is already in roster @@ -324,30 +315,35 @@ def _add_jid(self, jid, type_): return
if type_ == 'jabber': - message_buffer = self.message_textview.get_buffer() + message_buffer = self._ui.message_textview.get_buffer() start_iter = message_buffer.get_start_iter() end_iter = message_buffer.get_end_iter() message = message_buffer.get_text(start_iter, end_iter, True) - if self.save_message_checkbutton.get_active(): + if self._ui.save_message_checkbutton.get_active(): msg = helpers.to_one_line(message) app.settings.set_account_setting(self.account, 'subscription_request_msg', msg) else: message = '' - group = self.group_comboboxentry.get_child().get_text() + group = self._ui.group_comboboxentry.get_child().get_text() groups = [] if group: groups = [group] - auto_auth = self.auto_authorize_checkbutton.get_active() - app.interface.roster.req_sub( - self, jid, message, self.account, - groups=groups, nickname=nickname, auto_auth=auto_auth) + auto_auth = self._ui.auto_authorize_checkbutton.get_active() + + client = app.get_client(self.account) + client.get_module('Presence').subscribe(jid, + message, + nickname, + groups=groups, + auto_auth=auto_auth) + self.destroy()
def on_account_combobox_changed(self, widget): account = widget.get_active_id() - message_buffer = self.message_textview.get_buffer() + message_buffer = self._ui.message_textview.get_buffer() message_buffer.set_text(helpers.get_subscription_request_msg(account)) self.account = account
@@ -357,8 +353,8 @@ def on_protocol_jid_combobox_changed(self, widget): if not iter_: return jid_ = model[iter_][0] - model = self.protocol_combobox.get_model() - iter_ = self.protocol_combobox.get_active_iter() + model = self._ui.protocol_combobox.get_model() + iter_ = self._ui.protocol_combobox.get_active_iter() type_ = model[iter_][2]
desc = None @@ -366,10 +362,10 @@ def on_protocol_jid_combobox_changed(self, widget): desc = self.gateway_prompt[jid_]['desc']
if desc: - self.prompt_label.set_markup(desc) - self.prompt_label.show() + self._ui.prompt_label.set_markup(desc) + self._ui.prompt_label.show() else: - self.prompt_label.hide() + self._ui.prompt_label.hide()
prompt = None if self.agents[type_] and jid_ in self.gateway_prompt: @@ -379,18 +375,18 @@ def on_protocol_jid_combobox_changed(self, widget): prompt = self.uid_labels[type_] else: prompt = _('User ID:') - self.uid_label.set_text(prompt) + self._ui.uid_label.set_text(prompt)
def on_protocol_combobox_changed(self, widget): model = widget.get_model() iter_ = widget.get_active_iter() type_ = model[iter_][2] - model = self.protocol_jid_combobox.get_model() + model = self._ui.protocol_jid_combobox.get_model() model.clear() if self.agents[type_]: for jid_ in self.agents[type_]: model.append([jid_]) - self.protocol_jid_combobox.set_active(0) + self._ui.protocol_jid_combobox.set_active(0) desc = None if self.agents[type_]: jid_ = self.agents[type_][0] @@ -398,15 +394,15 @@ def on_protocol_combobox_changed(self, widget): desc = self.gateway_prompt[jid_]['desc']
if desc: - self.prompt_label.set_markup(desc) - self.prompt_label.show() + self._ui.prompt_label.set_markup(desc) + self._ui.prompt_label.show() else: - self.prompt_label.hide() + self._ui.prompt_label.hide()
if len(self.agents[type_]) > 1: - self.protocol_jid_combobox.show() + self._ui.protocol_jid_combobox.show() else: - self.protocol_jid_combobox.hide() + self._ui.protocol_jid_combobox.hide() prompt = None if self.agents[type_]: jid_ = self.agents[type_][0] @@ -417,59 +413,59 @@ def on_protocol_combobox_changed(self, widget): prompt = self.uid_labels[type_] else: prompt = _('User ID:') - self.uid_label.set_text(prompt) + self._ui.uid_label.set_text(prompt)
if type_ == 'jabber': - self.message_scrolledwindow.show() - self.save_message_checkbutton.show() + self._ui.message_scrolledwindow.show() + self._ui.save_message_checkbutton.show() else: - self.message_scrolledwindow.hide() - self.save_message_checkbutton.hide() + self._ui.message_scrolledwindow.hide() + self._ui.save_message_checkbutton.hide() if type_ in self.available_types: - self.register_hbox.show() - self.auto_authorize_checkbutton.hide() - self.connected_label.hide() + self._ui.register_hbox.show() + self._ui.auto_authorize_checkbutton.hide() + self._ui.connected_label.hide() self._subscription_table_hide() - self.add_button.set_sensitive(False) + self._ui.add_button.set_sensitive(False) else: - self.register_hbox.hide() + self._ui.register_hbox.hide() if type_ != 'jabber': - model = self.protocol_jid_combobox.get_model() - row = self.protocol_jid_combobox.get_active() + model = self._ui.protocol_jid_combobox.get_model() + row = self._ui.protocol_jid_combobox.get_active() jid = model[row][0] contact = app.contacts.get_first_contact_from_jid( self.account, jid) if contact is None or contact.show in ('offline', 'error'): self._subscription_table_hide() - self.connected_label.show() - self.add_button.set_sensitive(False) - self.auto_authorize_checkbutton.hide() + self._ui.connected_label.show() + self._ui.add_button.set_sensitive(False) + self._ui.auto_authorize_checkbutton.hide() return self._subscription_table_show() - self.auto_authorize_checkbutton.show() - self.connected_label.hide() - self.add_button.set_sensitive(True) + self._ui.auto_authorize_checkbutton.show() + self._ui.connected_label.hide() + self._ui.add_button.set_sensitive(True)
def transport_signed_in(self, jid): - model = self.protocol_jid_combobox.get_model() - row = self.protocol_jid_combobox.get_active() + model = self._ui.protocol_jid_combobox.get_model() + row = self._ui.protocol_jid_combobox.get_active() _jid = model[row][0] if _jid == jid: - self.register_hbox.hide() - self.connected_label.hide() + self._ui.register_hbox.hide() + self._ui.connected_label.hide() self._subscription_table_show() - self.auto_authorize_checkbutton.show() - self.add_button.set_sensitive(True) + self._ui.auto_authorize_checkbutton.show() + self._ui.add_button.set_sensitive(True)
def transport_signed_out(self, jid): - model = self.protocol_jid_combobox.get_model() - row = self.protocol_jid_combobox.get_active() + model = self._ui.protocol_jid_combobox.get_model() + row = self._ui.protocol_jid_combobox.get_active() _jid = model[row][0] if _jid == jid: self._subscription_table_hide() - self.auto_authorize_checkbutton.hide() - self.connected_label.show() - self.add_button.set_sensitive(False) + self._ui.auto_authorize_checkbutton.hide() + self._ui.connected_label.show() + self._ui.add_button.set_sensitive(False)
def _nec_presence_received(self, obj): if app.jid_is_transport(obj.jid):
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/e9cbce5d8ef4934566f8e231d68650108...