def __init__(self): '''Initialize Plugins window''' self.xml = gtkgui_helpers.get_gtk_builder('plugins_window.ui') self.window = self.xml.get_object('plugins_window') self.window.set_transient_for(gajim.interface.roster.window) widgets_to_extract = ('plugins_notebook', 'plugin_name_label', 'plugin_version_label', 'plugin_authors_label', 'plugin_homepage_linkbutton', 'uninstall_plugin_button', 'configure_plugin_button', 'installed_plugins_treeview') for widget_name in widgets_to_extract: setattr(self, widget_name, self.xml.get_object(widget_name)) self.plugin_description_textview = HtmlTextView() sw = self.xml.get_object('scrolledwindow2') sw.add(self.plugin_description_textview) self.installed_plugins_model = Gtk.ListStore(object, str, bool, bool, GdkPixbuf.Pixbuf) self.installed_plugins_treeview.set_model(self.installed_plugins_model) self.installed_plugins_treeview.set_rules_hint(True) renderer = Gtk.CellRendererText() col = Gtk.TreeViewColumn(_('Plugin'))#, renderer, text=NAME) cell = Gtk.CellRendererPixbuf() col.pack_start(cell, False) col.add_attribute(cell, 'pixbuf', ICON) col.pack_start(renderer, True) col.add_attribute(renderer, 'text', NAME) col.set_property('expand', True) self.installed_plugins_treeview.append_column(col) renderer = Gtk.CellRendererToggle() renderer.connect('toggled', self.installed_plugins_toggled_cb) col = Gtk.TreeViewColumn(_('Active'), renderer, active=ACTIVE, activatable=ACTIVATABLE) self.installed_plugins_treeview.append_column(col) self.def_icon = gtkgui_helpers.get_icon_pixmap('preferences-desktop') # connect signal for selection change selection = self.installed_plugins_treeview.get_selection() selection.connect('changed', self.installed_plugins_treeview_selection_changed) selection.set_mode(Gtk.SelectionMode.SINGLE) self._clear_installed_plugin_info() self.fill_installed_plugins_model() root_iter = self.installed_plugins_model.get_iter_first() if root_iter: selection.select_iter(root_iter ) self.xml.connect_signals(self) self.plugins_notebook.set_current_page(0) self.xml.get_object('close_button').grab_focus() self.window.show_all() gtkgui_helpers.possibly_move_window_in_current_desktop(self.window)
def on_left_click(self): win = gajim.interface.roster.window if len(self.jids) == 0: # no pending events, so toggle visible/hidden for roster window if win.get_property('visible'): # visible in ANY virtual desktop? win.hide() # we hide it from VD that was visible in # but we could be in another VD right now. eg vd2 # and we want not only to hide it in vd1 but also show it in vd2 gtkgui_helpers.possibly_move_window_in_current_desktop(win) else: win.present() else: self.handle_first_event()
def on_left_click(self): win = gajim.interface.roster.window if len(gajim.events.get_systray_events()) == 0: # No pending events, so toggle visible/hidden for roster window if win.get_property('visible') and (win.get_property( 'has-toplevel-focus') or os.name == 'nt'): # visible in ANY virtual desktop? # we could be in another VD right now. eg vd2 # and we want to show it in vd2 if not gtkgui_helpers.possibly_move_window_in_current_desktop( win) and gajim.config.get('save-roster-position'): x, y = win.get_position() gajim.config.set('roster_x-position', x) gajim.config.set('roster_y-position', y) win.hide() # else we hide it from VD that was visible in else: if not win.get_property('visible'): win.show_all() if gajim.config.get('save-roster-position'): gtkgui_helpers.move_window(win, gajim.config.get('roster_x-position'), gajim.config.get('roster_y-position')) if not gajim.config.get('roster_window_skip_taskbar'): win.set_property('skip-taskbar-hint', False) win.present_with_time(gtk.get_current_event_time()) else: self.handle_first_event()
def on_left_click(self): win = gajim.interface.roster.window if len(gajim.events.get_systray_events()) == 0: # No pending events, so toggle visible/hidden for roster window if win.get_property('visible') and (win.get_property( 'has-toplevel-focus') or os.name == 'nt'): # visible in ANY virtual desktop? # we could be in another VD right now. eg vd2 # and we want to show it in vd2 if not gtkgui_helpers.possibly_move_window_in_current_desktop( win) and gajim.config.get('save-roster-position'): x, y = win.get_position() gajim.config.set('roster_x-position', x) gajim.config.set('roster_y-position', y) win.hide() # else we hide it from VD that was visible in else: if not win.get_property('visible'): win.show_all() if gajim.config.get('save-roster-position'): gtkgui_helpers.move_window(win, gajim.config.get('roster_x-position'), gajim.config.get('roster_y-position')) if not gajim.config.get('roster_window_skip_taskbar'): win.set_property('skip-taskbar-hint', False) win.present_with_time(Gtk.get_current_event_time()) else: self.handle_first_event()
def on_left_click(self): self.double_click_id = None if self.double_click: self.double_click = False return win = gajim.interface.roster.window # toggle visible/hidden for roster window if win.get_property('visible') and (win.get_property('has-toplevel-focus') or \ os.name == 'nt'): # visible in ANY virtual desktop? # we could be in another VD right now. eg vd2 # and we want to show it in vd2 if not gtkgui_helpers.possibly_move_window_in_current_desktop(win): win.hide() # else we hide it from VD that was visible in else: # in Windows (perhaps other Window Managers too) minimize state # is remembered, so make sure it's not minimized (iconified) # because user wants to see roster win.deiconify() win.present()
def __init__(self): '''Initialize Plugins window''' self.xml = gtkgui_helpers.get_gtk_builder('plugins_window.ui') self.window = self.xml.get_object('plugins_window') self.window.set_transient_for(gajim.interface.roster.window) widgets_to_extract = ('plugins_notebook', 'plugin_name_label', 'plugin_version_label', 'plugin_authors_label', 'plugin_homepage_linkbutton', 'uninstall_plugin_button', 'configure_plugin_button', 'installed_plugins_treeview') for widget_name in widgets_to_extract: setattr(self, widget_name, self.xml.get_object(widget_name)) self.plugin_description_textview = HtmlTextView() sw = self.xml.get_object('scrolledwindow2') sw.add(self.plugin_description_textview) self.installed_plugins_model = Gtk.ListStore(object, str, bool, bool, GdkPixbuf.Pixbuf) self.installed_plugins_treeview.set_model(self.installed_plugins_model) self.installed_plugins_treeview.set_rules_hint(True) renderer = Gtk.CellRendererText() col = Gtk.TreeViewColumn(_('Plugin')) #, renderer, text=NAME) cell = Gtk.CellRendererPixbuf() col.pack_start(cell, False) col.add_attribute(cell, 'pixbuf', ICON) col.pack_start(renderer, True) col.add_attribute(renderer, 'text', NAME) col.set_property('expand', True) self.installed_plugins_treeview.append_column(col) renderer = Gtk.CellRendererToggle() renderer.connect('toggled', self.installed_plugins_toggled_cb) col = Gtk.TreeViewColumn(_('Active'), renderer, active=ACTIVE, activatable=ACTIVATABLE) self.installed_plugins_treeview.append_column(col) self.def_icon = gtkgui_helpers.get_icon_pixmap('preferences-desktop') # connect signal for selection change selection = self.installed_plugins_treeview.get_selection() selection.connect('changed', self.installed_plugins_treeview_selection_changed) selection.set_mode(Gtk.SelectionMode.SINGLE) self._clear_installed_plugin_info() self.fill_installed_plugins_model() root_iter = self.installed_plugins_model.get_iter_first() if root_iter: selection.select_iter(root_iter) self.xml.connect_signals(self) self.plugins_notebook.set_current_page(0) self.xml.get_object('close_button').grab_focus() self.window.show_all() gtkgui_helpers.possibly_move_window_in_current_desktop(self.window)