def on_left_click(self): win = app.interface.roster.window if len(app.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 app.config.get('save-roster-position'): x, y = win.get_position() app.config.set('roster_x-position', x) app.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 app.config.get('save-roster-position'): gtkgui_helpers.move_window( win, app.config.get('roster_x-position'), app.config.get('roster_y-position')) if not app.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 handle_first_event(self): account, jid, event = app.events.get_first_systray_event() if not event: return win = app.interface.roster.window if not win.get_property('visible') and app.config.get( 'save-roster-position'): gtkgui_helpers.move_window(win, app.config.get('roster_x-position'), app.config.get('roster_y-position')) app.interface.handle_event(account, jid, event.type_)
def __init__(self, jid=None, account=None): xml = gtkgui_helpers.get_gtk_builder('history_window.ui') self.window = xml.get_object('history_window') self.window.set_application(app.app) self.calendar = xml.get_object('calendar') self.button_first_day = xml.get_object('button_first_day') self.button_previous_day = xml.get_object('button_previous_day') self.button_next_day = xml.get_object('button_next_day') self.button_last_day = xml.get_object('button_last_day') scrolledwindow = xml.get_object('scrolledwindow') self.history_textview = conversation_textview.ConversationTextview( account, used_in_history_window=True) scrolledwindow.add(self.history_textview.tv) self.history_buffer = self.history_textview.tv.get_buffer() self.history_buffer.create_tag('highlight', background='yellow') self.history_buffer.create_tag('invisible', invisible=True) self.checkbutton = xml.get_object('log_history_checkbutton') self.checkbutton.connect('toggled', self.on_log_history_checkbutton_toggled) self.show_status_checkbutton = xml.get_object( 'show_status_checkbutton') self.search_entry = xml.get_object('search_entry') self.query_liststore = xml.get_object('query_liststore') self.jid_entry = xml.get_object('query_entry') self.jid_entry.connect('activate', self.on_jid_entry_activate) self.results_treeview = xml.get_object('results_treeview') self.results_window = xml.get_object('results_scrolledwindow') self.search_in_date = xml.get_object('search_in_date') # jid, contact_name, date, message, time, log_line_id model = Gtk.ListStore(str, str, str, str, str, int) self.results_treeview.set_model(model) col = Gtk.TreeViewColumn(_('Name')) self.results_treeview.append_column(col) renderer = Gtk.CellRendererText() col.pack_start(renderer, True) col.add_attribute(renderer, 'text', Column.CONTACT_NAME) col.set_sort_column_id( Column.CONTACT_NAME) # user can click this header and sort col.set_resizable(True) col = Gtk.TreeViewColumn(_('Date')) self.results_treeview.append_column(col) renderer = Gtk.CellRendererText() col.pack_start(renderer, True) col.add_attribute(renderer, 'text', Column.UNIXTIME) col.set_sort_column_id( Column.UNIXTIME) # user can click this header and sort col.set_resizable(True) col = Gtk.TreeViewColumn(_('Message')) self.results_treeview.append_column(col) renderer = Gtk.CellRendererText() col.pack_start(renderer, True) col.add_attribute(renderer, 'text', Column.MESSAGE) col.set_resizable(True) self.jid = None # The history we are currently viewing self.account = account self.completion_dict = {} self.accounts_seen_online = [] # Update dict when new accounts connect self.jids_to_search = [] # This will load history too task = self._fill_completion_dict() GLib.idle_add(next, task) if jid: self.jid_entry.set_text(jid) else: self._load_history(None) gtkgui_helpers.resize_window(self.window, app.config.get('history_window_width'), app.config.get('history_window_height')) gtkgui_helpers.move_window(self.window, app.config.get('history_window_x-position'), app.config.get('history_window_y-position')) xml.connect_signals(self) self.window.show_all() # PluginSystem: adding GUI extension point for # HistoryWindow instance object app.plugin_manager.gui_extension_point('history_window', self)