def __init__(self, account): EventHelper.__init__(self) self.account = account self.privacy_lists_save = [] self._ui = get_builder('privacy_lists_window.ui') self.window = self._ui.get_object('privacy_lists_first_window') self.draw_privacy_lists_in_combobox([]) self.privacy_lists_refresh() self.enabled = True if len(app.connections) > 1: title = _('Privacy Lists for %s') % self.account else: title = _('Privacy Lists') self.window.set_title(title) # pylint: disable=line-too-long self.register_events([ ('privacy-lists-received', ged.GUI1, self._nec_privacy_lists_received), ('privacy-list-removed', ged.GUI1, self._nec_privacy_lists_removed), ]) # pylint: enable=line-too-long self.window.show_all() self._ui.connect_signals(self)
def __init__(self, type_id, parent_win, widget_name, contact, account, resource=None): # dict { cb id : widget} # keep all registered callbacks of widgets, created by self.xml self.handlers = {} self.type_id = type_id self.parent_win = parent_win self.widget_name = widget_name self.contact = contact self.account = account self.resource = resource # control_id is a unique id for the control, # its used as action name for actions that belong to a control self.control_id = str(uuid.uuid4()) self.session = None app.last_message_time[self.account][self.get_full_jid()] = 0 self.xml = get_builder('%s.ui' % widget_name) self.xml.connect_signals(self) self.widget = self.xml.get_object('%s_hbox' % widget_name) app.ged.register_event_handler('message-outgoing', ged.OUT_GUI1, self._nec_message_outgoing)
def __init__(self): self.xml = get_builder('account_creation_wizard_window.ui') self.window = self.xml.get_object('account_creation_wizard_window') active_window = app.app.get_active_window() self.window.set_transient_for(active_window) # Connect events from comboboxtext_entry server_comboboxtext = self.xml.get_object('server_comboboxtext') entry = self.xml.get_object('server_comboboxtext_entry') entry.connect('key_press_event', self.on_entry_key_press_event, server_comboboxtext) server_comboboxtext1 = self.xml.get_object('server_comboboxtext1') self.update_proxy_list() # parse servers.json server_file_path = os.path.join( configpaths.get('DATA'), 'other', 'servers.json') servers = helpers.load_json(server_file_path, 'servers', []) servers_model = self.xml.get_object('server_liststore') for server in servers: servers_model.append((server,)) server_comboboxtext.set_model(servers_model) server_comboboxtext1.set_model(servers_model) # Generic widgets self.notebook = self.xml.get_object('notebook') self.cancel_button = self.xml.get_object('cancel_button') self.back_button = self.xml.get_object('back_button') self.forward_button = self.xml.get_object('forward_button') self.finish_button = self.xml.get_object('finish_button') self.advanced_button = self.xml.get_object('advanced_button') self.finish_label = self.xml.get_object('finish_label') self.go_online_checkbutton = self.xml.get_object( 'go_online_checkbutton') self.show_vcard_checkbutton = self.xml.get_object( 'show_vcard_checkbutton') self.progressbar = self.xml.get_object('progressbar') # some vars self.update_progressbar_timeout_id = None self.notebook.set_current_page(0) self.xml.connect_signals(self) self.window.show_all() app.ged.register_event_handler( 'new-account-connected', ged.GUI1, self._nec_new_acc_connected) app.ged.register_event_handler( 'new-account-not-connected', ged.GUI1, self._nec_new_acc_not_connected) app.ged.register_event_handler( 'account-created', ged.GUI1, self._nec_acc_is_ok) app.ged.register_event_handler( 'account-not-created', ged.GUI1, self._nec_acc_is_not_ok)
def __init__(self, jid, text, account, user_nick=None): Gtk.ApplicationWindow.__init__(self) self.set_name('SubscriptionRequest') self.set_application(app.app) self.set_show_menubar(False) self.set_resizable(False) self.set_position(Gtk.WindowPosition.CENTER) self.set_title(_('Subscription Request')) self._ui = get_builder('subscription_request_window.ui') self.add(self._ui.subscription_box) self.jid = jid self.account = account self.user_nick = user_nick self._ui.jid_label.set_text(self.jid) if len(app.connections) >= 2: prompt_text = \ _('Subscription request for account %(account)s from %(jid)s')\ % {'account': account, 'jid': self.jid} else: prompt_text = _('Subscription request from %s') % self.jid self._ui.request_label.set_text(prompt_text) self._ui.subscription_text.set_text(text) self._ui.connect_signals(self) self.show_all()
def __init__(self, dataformnode=None): ''' Create a widget. ''' GObject.GObject.__init__(self, xscale=1.0, yscale=1.0) self._data_form = None self.selectable = False self.clean_cb = None self.xml = get_builder('data_form_window.ui', ['data_form_vbox']) self.xml.connect_signals(self) for name in ('instructions_label', 'instructions_hseparator', 'single_form_viewport', 'data_form_types_notebook', 'single_form_scrolledwindow', 'multiple_form_hbox', 'records_treeview', 'buttons_vbox', 'add_button', 'remove_button', 'edit_button', 'up_button', 'down_button', 'clear_button'): self.__dict__[name] = self.xml.get_object(name) self.add(self.xml.get_object('data_form_vbox')) if dataformnode is not None: self.set_data_form(dataformnode) selection = self.records_treeview.get_selection() selection.connect('changed', self.on_records_selection_changed) selection.set_mode(Gtk.SelectionMode.MULTIPLE)
def __init__(self, account, remote_account): self.local_account = account self.remote_account = remote_account self.xml = get_builder('synchronise_select_contacts_dialog.ui') self.dialog = self.xml.get_object('synchronise_select_contacts_dialog') self.contacts_treeview = self.xml.get_object('contacts_treeview') model = Gtk.ListStore(bool, str) self.contacts_treeview.set_model(model) # columns renderer1 = Gtk.CellRendererToggle() renderer1.set_property('activatable', True) renderer1.connect('toggled', self.toggled_callback) self.contacts_treeview.insert_column_with_attributes(-1, _('Synchronise'), renderer1, active=0) renderer2 = Gtk.CellRendererText() self.contacts_treeview.insert_column_with_attributes(-1, _('Name'), renderer2, text=1) self.xml.connect_signals(self) self.init_contacts() self.dialog.show_all()
def __init__(self, account): self.account = account self.privacy_lists_save = [] self.xml = get_builder('privacy_lists_window.ui') self.window = self.xml.get_object('privacy_lists_first_window') for widget_to_add in ( 'list_of_privacy_lists_combobox', 'delete_privacy_list_button', 'open_privacy_list_button', 'new_privacy_list_button', 'new_privacy_list_entry', 'privacy_lists_refresh_button', 'close_privacy_lists_window_button'): self.__dict__[widget_to_add] = self.xml.get_object(widget_to_add) self.draw_privacy_lists_in_combobox([]) self.privacy_lists_refresh() self.enabled = True if len(app.connections) > 1: title = _('Privacy Lists for %s') % self.account else: title = _('Privacy Lists') self.window.set_title(title) app.ged.register_event_handler('privacy-lists-received', ged.GUI1, self._nec_privacy_lists_received) app.ged.register_event_handler('privacy-list-removed', ged.GUI1, self._nec_privacy_lists_removed) self.window.show_all() self.xml.connect_signals(self)
def __init__(self, account): # 'account' can be None if we are about to create our first one if not account or app.connections[account].connected < 2: ErrorDialog( _('You are not connected to the server'), _('Without a connection, you can not synchronise your contacts.' )) raise GajimGeneralException('You are not connected to the server') self.account = account self.xml = get_builder('synchronise_select_account_dialog.ui') self.dialog = self.xml.get_object('synchronise_select_account_dialog') self.dialog.set_transient_for(app.get_app_window('AccountsWindow')) self.accounts_treeview = self.xml.get_object('accounts_treeview') model = Gtk.ListStore(str, str, bool) self.accounts_treeview.set_model(model) # columns renderer = Gtk.CellRendererText() self.accounts_treeview.insert_column_with_attributes(-1, _('Name'), renderer, text=0) renderer = Gtk.CellRendererText() self.accounts_treeview.insert_column_with_attributes(-1, _('Server'), renderer, text=1) self.xml.connect_signals(self) self.init_accounts() self.dialog.show_all()
def __init__(self, list_): """ list_ is a list of (contact, account) tuples """ self.xml = get_builder('edit_groups_dialog.ui') self.dialog = self.xml.get_object('edit_groups_dialog') self.dialog.set_transient_for(app.interface.roster.window) self.list_ = list_ self.changes_made = False self.treeview = self.xml.get_object('groups_treeview') if len(list_) == 1: contact = list_[0][0] self.xml.get_object('nickname_label').set_markup( _('Contact name: <i>%s</i>') % contact.get_shown_name()) self.xml.get_object('jid_label').set_markup( _('XMPP Address: <i>%s</i>') % contact.jid) else: self.xml.get_object('nickname_label').set_no_show_all(True) self.xml.get_object('nickname_label').hide() self.xml.get_object('jid_label').set_no_show_all(True) self.xml.get_object('jid_label').hide() self.xml.connect_signals(self) self.init_list() self.dialog.show_all() if self.changes_made: for (contact, account) in self.list_: con = app.connections[account] con.get_module('Roster').update_contact( contact.jid, contact.name, contact.groups)
def __init__(self, account): Gtk.ApplicationWindow.__init__(self) EventHelper.__init__(self) self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_name('PEPConfig') self.set_default_size(300, 350) self.set_resizable(True) self.set_transient_for(app.interface.roster.window) self._ui = get_builder('manage_pep_services_window.ui') self.add(self._ui.manage_pep_services) self.account = account self.set_title(_('PEP Service Configuration (%s)') % self.account) self._con = app.connections[self.account] self._init_services() self._ui.services_treeview.get_selection().connect( 'changed', self._on_services_selection_changed) self.register_events([ ('pubsub-config-received', ged.GUI1, self._nec_pep_config_received), ]) self.show_all() self.connect('key-press-event', self._on_key_press_event) self._ui.connect_signals(self)
def __init__(self, account): Gtk.ApplicationWindow.__init__(self) self.set_name('CreateGroupchat') self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_resizable(True) self.set_title(_('Create Group Chat')) self._ui = get_builder('groupchat_creation.ui') self.add(self._ui.create_group_chat) self._destroyed = False self._account = self._fill_account_combo(account) self._create_entry_completion() self._fill_placeholders() self._ui.connect_signals(self) self.connect('key-press-event', self._on_key_press_event) self.connect('destroy', self._on_destroy) self.show_all() self.set_focus(self._ui.address_entry)
def __init__(self, account): Gtk.ApplicationWindow.__init__(self) self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_title(_('Blocking List for %s') % account) self.connect('key-press-event', self._on_key_press) self.account = account self._con = app.connections[account] self._prev_blocked_jids = set() self._await_results = 2 self._received_errors = False self._ui = get_builder('blocking_list.ui') self.add(self._ui.blocking_grid) self._spinner = Gtk.Spinner() self._ui.overlay.add_overlay(self._spinner) self._set_grid_state(False) self._ui.connect_signals(self) self.show_all() self._activate_spinner() self._con.get_module('Blocking').get_blocking_list( callback=self._on_blocking_list_received)
def __init__(self, title, label_str, checktext='', input_str=None, is_modal=True, ok_handler=None, cancel_handler=None, transient_for=None): self.xml = get_builder('input_dialog.ui') InputDialog.__init__(self, title, label_str, input_str=input_str, is_modal=is_modal, ok_handler=ok_handler, cancel_handler=cancel_handler, transient_for=transient_for) self.input_entry = self.xml.get_object('input_entry') if input_str: self.input_entry.set_text(input_str) self.input_entry.select_region(0, -1) # select all if checktext: self.checkbutton = Gtk.CheckButton.new_with_mnemonic(checktext) self.vbox.pack_start(self.checkbutton, False, True, 0) self.checkbutton.show()
def __init__(self): log_db_path = configpaths.get('LOG_DB') if not os.path.exists(log_db_path): ErrorDialog(_('Cannot find history logs database'), _('%s does not exist.') % log_db_path) sys.exit() self._ui = get_builder('history_manager.ui') Gtk.Window.set_default_icon_list( get_app_icon_list(self._ui.history_manager_window)) self.jids_already_in = [] # holds jids that we already have in DB self.AT_LEAST_ONE_DELETION_DONE = False self.con = sqlite3.connect(log_db_path, timeout=20.0, isolation_level='IMMEDIATE') self.con.execute("PRAGMA secure_delete=1") self.cur = self.con.cursor() self._init_jids_listview() self._init_logs_listview() self._init_search_results_listview() self._fill_jids_listview() self._ui.search_entry.grab_focus() self._ui.history_manager_window.show_all() self._ui.connect_signals(self)
def __init__(self, transfer): Gtk.ApplicationWindow.__init__(self) EventHelper.__init__(self) self.set_name('FileTransferProgress') self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_title(_('File Transfer')) self._destroyed = False self._transfer = transfer self._transfer.connect('state-changed', self._on_transfer_state_change) self._transfer.connect('progress', self._on_transfer_progress) if app.config.get('use_kib_mib'): self._units = GLib.FormatSizeFlags.IEC_UNITS else: self._units = GLib.FormatSizeFlags.DEFAULT self._start_time = time.time() self._ui = get_builder('filetransfer_progress.ui') self._ui.file_name_label.set_text(transfer.filename) self.add(self._ui.box) self._pulse = GLib.timeout_add(100, self._pulse_progressbar) self.show_all() self.connect('destroy', self._on_destroy) self._ui.connect_signals(self)
def __init__(self, transient_for=None, width=550, height=400, transition_duration=200): Gtk.ApplicationWindow.__init__(self) EventHelper.__init__(self) self.set_application(Gio.Application.get_default()) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_name('Assistant') self.set_default_size(width, height) self.set_resizable(True) self.set_transient_for(transient_for) self._pages = {} self._buttons = {} self._button_visible_func = None self._ui = get_builder('assistant.ui') self.add(self._ui.main_grid) self._ui.stack.set_transition_duration(transition_duration) self.connect('key-press-event', self._on_key_press_event) self.connect('destroy', self.__on_destroy) self._ui.connect_signals(self)
def __init__(self, file): Gtk.ApplicationWindow.__init__(self) self.set_name('HTTPUploadProgressWindow') self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_title(_('File Transfer')) self.event = file.event self.file = file if app.config.get('use_kib_mib'): self.units = GLib.FormatSizeFlags.IEC_UNITS else: self.units = GLib.FormatSizeFlags.DEFAULT file_name = os.path.basename(file.path) self._start_time = time.time() self._ui = get_builder('httpupload_progress_dialog.ui') self._ui.file_name_label.set_text(file_name) self.add(self._ui.box) self.pulse = GLib.timeout_add(100, self._pulse_progressbar) self.show_all() self.connect('destroy', self._on_destroy) self._ui.connect_signals(self) app.ged.register_event_handler('httpupload-progress', ged.CORE, self._on_httpupload_progress)
def _startup(self, _application): # Create and initialize Application Paths & Databases app.detect_dependencies() configpaths.create_paths() try: app.logger = logger.Logger() caps_cache.initialize(app.logger) except exceptions.DatabaseMalformed as error: dlg = Gtk.MessageDialog(transient_for=None, destroy_with_parent=True, modal=True, message_type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK, text=_('Database Error')) dlg.format_secondary_text(str(error)) dlg.run() dlg.destroy() sys.exit() from gajim.gtk.util import load_user_iconsets load_user_iconsets() # Set Application Menu app.app = self from gajim.gtk.util import get_builder builder = get_builder('application_menu.ui') menubar = builder.get_object("menubar") appmenu = builder.get_object("appmenu") if app.prefers_app_menu(): self.set_app_menu(appmenu) else: # Add it to the menubar instead menubar.prepend_submenu('Gajim', appmenu) self.set_menubar(menubar)
def __init__(self, account): Gtk.ApplicationWindow.__init__(self) self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_title(_('Archiving Preferences for %s') % account) self.connect('destroy', self._on_destroy) self.connect('key-press-event', self._on_key_press) self.account = account self._con = app.connections[account] self._ui = get_builder('mam_preferences.ui') self.add(self._ui.get_object('mam_box')) self._spinner = Gtk.Spinner() self._ui.overlay.add_overlay(self._spinner) app.ged.register_event_handler('mam-prefs-received', ged.GUI1, self._mam_prefs_received) app.ged.register_event_handler('mam-prefs-saved', ged.GUI1, self._mam_prefs_saved) app.ged.register_event_handler('mam-prefs-error', ged.GUI1, self._mam_prefs_error) self._set_mam_box_state(False) self._ui.connect_signals(self) self.show_all() self._activate_spinner() self._con.get_module('MAM').request_mam_preferences()
def __init__(self, titletext, labeltext, checkbuttontext=None, ok_handler=None, cancel_handler=None, transient_for=None): self._ui = get_builder('passphrase_dialog.ui') self.window = self._ui.get_object('passphrase_dialog') self.passphrase = -1 self.window.set_title(titletext) self._ui.message_label.set_text(labeltext) self.ok = False self.cancel_handler = cancel_handler self.ok_handler = ok_handler self._ui.ok_button.connect('clicked', self.on_okbutton_clicked) self._ui.cancel_button.connect('clicked', self.on_cancelbutton_clicked) self._ui.connect_signals(self) if transient_for is None: transient_for = app.app.get_active_window() self.window.set_transient_for(transient_for) self.window.show_all() self.check = bool(checkbuttontext) if self._ui.save_passphrase_checkbutton: self._ui.save_passphrase_checkbutton.set_label(checkbuttontext) else: self._ui.save_passphrase_checkbutton.hide()
def __init__(self): super().__init__() self.set_name('EmoticonPopover') self._text_widget = None self._load_source_id = None self._pango_layout = Pango.Layout(self.get_pango_context()) self._builder = get_builder('emoji_chooser.ui') self._search = self._builder.get_object('search') self._stack = self._builder.get_object('stack') self._sections = OrderedDict() for name in self._section_names: self._sections[name] = Section(name, self._search, self._on_emoticon_press, self) section_box = self._builder.get_object('section_box') for section in self._sections.values(): section_box.add(section) self.add(self._builder.get_object('box')) self.connect('key-press-event', self._key_press) self._builder.connect_signals(self) self.show_all()
def __init__(self, transient): Gtk.Window.__init__(self) self.set_application(app.app) self.set_title(_('Gajim Themes')) self.set_name('ThemesWindow') self.set_show_menubar(False) self.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.set_transient_for(transient) self.set_resizable(True) self.set_default_size(600, 400) self.builder = get_builder('themes_window.ui') self.add(self.builder.get_object('theme_grid')) widgets = ['option_listbox', 'remove_theme_button', 'theme_store', 'theme_treeview', 'choose_option_listbox', 'add_option_button'] for widget in widgets: setattr(self, '_%s' % widget, self.builder.get_object(widget)) # Doesnt work if we set it in Glade self._add_option_button.set_sensitive(False) self._get_themes() self.builder.connect_signals(self) self.connect('destroy', self._on_destroy) self.show_all() self._fill_choose_listbox()
def __init__(self, account): Gtk.ApplicationWindow.__init__(self) self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_title(_('Bookmarks for %s' % app.get_account_label(account))) self.set_default_size(700, 500) self.account = account self._ui = get_builder('bookmarks.ui') self.add(self._ui.bookmarks_grid) con = app.connections[account] for bookmark in con.get_module('Bookmarks').bookmarks: self._ui.bookmarks_store.append([str(bookmark.jid), bookmark.name, bookmark.nick, bookmark.password, bookmark.autojoin]) self._ui.bookmarks_view.set_search_equal_func(self._search_func) self._ui.connect_signals(self) self.connect('key-press-event', self._on_key_press) self.show_all()
def __init__(self): transient = app.app.get_active_window() builder = get_builder('shortcuts_window.ui') self.window = builder.get_object('shortcuts_window') self.window.connect('destroy', self._on_window_destroy) self.window.set_transient_for(transient) self.window.show_all() self.window.present()
def show(self, parent=None): if self.window is None: builder = get_builder('shortcuts_window.ui') self.window = builder.get_object('shortcuts_window') self.window.connect('destroy', self._on_window_destroy) self.window.set_transient_for(parent) self.window.show_all() self.window.present()
def __init__(self, account): self.account = account self._ui = get_builder('remove_account_window.ui') active_window = app.app.get_active_window() self._ui.remove_account_window.set_transient_for(active_window) self._ui.remove_account_window.set_title( _('Removing account %s') % self.account) self._ui.connect_signals(self) self._ui.remove_account_window.show_all()
def __init__(self): self._ui = get_builder('manage_bookmarks_window.ui') self._ui.manage_bookmarks_window.set_transient_for( app.interface.roster.window) self.ignore_events = False # Account-JID, RoomName, Room-JID, Autojoin, Password, Nick, Name self.treestore = Gtk.TreeStore(str, str, str, bool, str, str, str) self.treestore.set_sort_column_id(1, Gtk.SortType.ASCENDING) # Store bookmarks in treeview. for account, account_label in app.get_enabled_accounts_with_labels( connected_only=True, private_storage_only=True): iter_ = self.treestore.append(None, [ None, account, None, None, None, None, account_label]) con = app.connections[account] bookmarks = con.get_module('Bookmarks').get_sorted_bookmarks() for bookmark in bookmarks: self.treestore.append(iter_, [account, bookmark.name, str(bookmark.jid), bookmark.autojoin, bookmark.password, bookmark.nick, bookmark.name]) self._ui.bookmarks_treeview.set_model(self.treestore) self._ui.bookmarks_treeview.expand_all() renderer = Gtk.CellRendererText() column = Gtk.TreeViewColumn('Bookmarks', renderer, text=Row.LABEL) self._ui.bookmarks_treeview.append_column(column) self.selection = self._ui.bookmarks_treeview.get_selection() self.selection.connect('changed', self.bookmark_selected) # Prepare input fields self._ui.title_entry.connect('changed', self.on_title_entry_changed) self._ui.nick_entry.connect('changed', self.on_nick_entry_changed) self._ui.server_entry.connect( 'focus-out-event', self.on_server_entry_focus_out) self.room_entry_changed_id = self._ui.room_entry.connect( 'changed', self.on_room_entry_changed) self._ui.pass_entry.connect('changed', self.on_pass_entry_changed) self._ui.connect_signals(self) self._ui.manage_bookmarks_window.show_all() # select root iter first_iter = self.treestore.get_iter_first() if first_iter: self.selection.select_iter(first_iter)
def __init__(self, account, jid, own_affiliation, form=None): Gtk.ApplicationWindow.__init__(self) self.set_application(app.app) self.set_position(Gtk.WindowPosition.CENTER) self.set_show_menubar(False) self.set_title(_('Group Chat Configuration')) self._destroyed = False self.account = account self.jid = jid self._own_affiliation = own_affiliation self._ui = get_builder('groupchat_config.ui') self.add(self._ui.grid) # Activate Add button only for Admins and Owners if self._own_affiliation in ('admin', 'owner'): self._ui.add_button.set_sensitive(True) self._ui.add_button.set_tooltip_text('') disco_info = app.logger.get_last_disco_info(self.jid) visible = disco_info.supports(nbxmpp.NS_REGISTER) self._ui.reserved_name_column.set_visible(visible) self._ui.info_button.set_sensitive(False) self._form = form self._affiliations = {} self._new_affiliations = {} con = app.connections[self.account] for affiliation in ('owner', 'admin', 'member', 'outcast'): con.get_module('MUC').get_affiliation( self.jid, affiliation, callback=self._on_affiliations_received, user_data=affiliation) if form is not None: self._ui.stack.set_visible_child_name('config') self._data_form_widget = DataFormWidget(form) self._data_form_widget.connect('is-valid', self._on_is_valid) self._data_form_widget.validate() self._ui.config_grid.add(self._data_form_widget) else: self._ui.stack.get_child_by_name('config').hide() self._ui.stack.get_child_by_name('config').set_no_show_all(True) self._ui.stack.set_visible_child_name('affiliation') self._ui.connect_signals(self) self.connect('delete-event', self._cancel) self.connect('destroy', self._on_destroy) self.connect('key-press-event', self._on_key_press) self.show_all() self._ui.stack.notify('visible-child-name')
def __init__(self): StatusTable.__init__(self) self.create_table() self.account = None self.row = None self.contact_jid = None self.prim_contact = None self.last_widget = None self.num_resources = 0 self._ui = get_builder('tooltip_roster_contact.ui')
def __init__(self, transient_for, account, cert): Gtk.ApplicationWindow.__init__(self) self.set_name('CertificateDialog') self.set_application(app.app) self.set_show_menubar(False) self.set_resizable(False) self.set_position(Gtk.WindowPosition.CENTER) self.set_title(_('Certificate')) self.account = account self._ui = get_builder('certificate_dialog.ui') self.add(self._ui.certificate_box) self.account = account self._clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) # Get data for labels and copy button issuer = cert.get_issuer() subject = cert.get_subject() self._headline = _('Certificate for account\n%s') % account self._it_common_name = subject.commonName or '' self._it_organization = subject.organizationName or '' self._it_org_unit = subject.organizationalUnitName or '' self._it_serial_number = str(cert.get_serial_number()) self._ib_common_name = issuer.commonName or '' self._ib_organization = issuer.organizationName or '' self._ib_org_unit = issuer.organizationalUnitName or '' issued = datetime.strptime(cert.get_notBefore().decode('ascii'), '%Y%m%d%H%M%SZ') self._issued = issued.strftime('%c %Z') expires = datetime.strptime(cert.get_notAfter().decode('ascii'), '%Y%m%d%H%M%SZ') self._expires = expires.strftime('%c %Z') self._sha1 = cert.digest('sha1').decode('utf-8') self._sha256 = cert.digest('sha256').decode('utf-8') # Set labels self._ui.label_cert_for_account.set_text(self._headline) self._ui.data_it_common_name.set_text(self._it_common_name) self._ui.data_it_organization.set_text(self._it_organization) self._ui.data_it_organizational_unit.set_text(self._it_org_unit) self._ui.data_it_serial_number.set_text(self._it_serial_number) self._ui.data_ib_common_name.set_text(self._ib_common_name) self._ui.data_ib_organization.set_text(self._ib_organization) self._ui.data_ib_organizational_unit.set_text(self._ib_org_unit) self._ui.data_issued_on.set_text(self._issued) self._ui.data_expires_on.set_text(self._expires) self._ui.data_sha1.set_text(self._sha1) self._ui.data_sha256.set_text(self._sha256) self.set_transient_for(transient_for) self._ui.connect_signals(self) self.show_all()