def close(self): self.__app.session.unregisterXPath(self.__chat_query) self.__app.session.unregisterXPath(self.__event_query) self.__manager.release(self.__jid) ## let it fully clean us up BaseGabberWindow.close(self)
def __init__(self, mgr, jid, node=None): BaseGabberWindow.__init__(self, "OOOChat_win") self.__manager = mgr self.__jid = jid self.__init() ## See what type to start if node: self.display(Message(node))
def on_delete_event(self, win, event): now = time() ## XXX This timer is arbitrary if (now - self.__last_msg_time) < 3: dlg = gtk.Dialog("Recent Message", self.window, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_NO, 0, gtk.STOCK_YES, 1)) lbl = gtk.Label("A message was received recently, really close this chat?") dlg.vbox.set_border_width(4) dlg.vbox.set_spacing(8) dlg.vbox.pack_start(lbl) dlg.show_all() resp = dlg.run() dlg.destroy() del dlg if not resp: return 1 BaseGabberWindow.on_delete_event(self, win, event)
def __init__(self): BaseGabberWindow.__init__(self, "Gabber_win") self.__prev_show = 0 self.__app = GabberApp.GabberApp() ## Get all our widgets self.__optPres = self.get_widget("Presence_optmenu") self.__optPres.set_relief(gtk.RELIEF_NONE) self.__appbarMain = self.get_widget("Gabber_appbar") ## Setup the roster view self.__rostermodel = RosterModel(self.__app) tv = self.get_widget("Roster_treeview") self.__rosterview = RosterView(tv, self.__rostermodel) tv.show() ## Our status dialog self.status_dlg = BaseGabberWindow("Status_dlg") self.status_dlg.window.connect("response", self.__on_status_dlg_response) ## Our Add JID dialog self.addjid_dlg = BaseGabberWindow("AddJID_dlg") self.addjid_dlg.window.connect("response", self.__on_addjid_dlg_response) w = self.addjid_dlg.get_widget("toggleAdvancedOptions") w.connect("toggled", self.__on_addjid_advanced_options) ## hookup all the menus self.__init_menus() ## Connect to events self.__app.evtConnecting.connect(self.__on_evtConnecting) self.__app.evtConnected.connect(self.__on_evtConnected) self.__app.evtDisconnected.connect(self.__on_evtDisconnected) self.__app.session.evtMyPresence.connect(self.__on_my_presence_event)
def __init__(self, is_startup=0): BaseGabberWindow.__init__(self, "Login_dlg") ConfigWrapper.__init__(self, Keys.Account.main_dir) b = self.get_widget("Cancel_btn") b.connect("clicked", self.on_Cancel_clicked) self.__btnLogIn = self.get_widget("LogIn_btn") self.__btnLogIn.connect("clicked", self.on_LogIn_clicked) self.__entUsername = self.get_widget("Username_ent") self.__entUsername.connect("changed", self.on_Changed) self.__entServer = self.get_widget("Server_ent") self.__entServer.connect("changed", self.on_Changed) self.__entPassword = self.get_widget("Password_ent") self.__entPassword.connect("changed", self.on_Changed) self.__entResource = self.get_widget("Resource_ent") self.__entResource.connect("changed", self.on_Changed) self.__spinPort = self.get_widget("Port_spin") self.__spinPort.set_width_chars(4) self.__spinPort.connect("changed", self.on_Changed) self.__spinPriority = self.get_widget("Priority_spin") self.__spinPriority.connect("changed", self.on_Changed) self.__ckPassword = self.get_widget("SavePassword_chk") self.__ckPassword.connect("toggled", self.on_Changed) self.loadConfig() ## If this is opened during startup, it is the only window available if is_startup: self.window.set_modal(1)
class GabberWin(BaseGabberWindow): def __init__(self): BaseGabberWindow.__init__(self, "Gabber_win") self.__prev_show = 0 self.__app = GabberApp.GabberApp() ## Get all our widgets self.__optPres = self.get_widget("Presence_optmenu") self.__optPres.set_relief(gtk.RELIEF_NONE) self.__appbarMain = self.get_widget("Gabber_appbar") ## Setup the roster view self.__rostermodel = RosterModel(self.__app) tv = self.get_widget("Roster_treeview") self.__rosterview = RosterView(tv, self.__rostermodel) tv.show() ## Our status dialog self.status_dlg = BaseGabberWindow("Status_dlg") self.status_dlg.window.connect("response", self.__on_status_dlg_response) ## Our Add JID dialog self.addjid_dlg = BaseGabberWindow("AddJID_dlg") self.addjid_dlg.window.connect("response", self.__on_addjid_dlg_response) w = self.addjid_dlg.get_widget("toggleAdvancedOptions") w.connect("toggled", self.__on_addjid_advanced_options) ## hookup all the menus self.__init_menus() ## Connect to events self.__app.evtConnecting.connect(self.__on_evtConnecting) self.__app.evtConnected.connect(self.__on_evtConnected) self.__app.evtDisconnected.connect(self.__on_evtDisconnected) self.__app.session.evtMyPresence.connect(self.__on_my_presence_event) def __del__(self): pass def close(self): self.__app.quit() def __init_menus(self): mi = self.get_widget("Quit_item") mi.connect("activate", self.__on_quit_item_activate) mi = self.get_widget("Login_item") mi.set_sensitive(1) mi.connect("activate", self.__on_login_item_activate) mi = self.get_widget("Logout_item") mi.set_sensitive(0) mi.connect("activate", self.__on_logout_item_activate) ## Add contact mi = self.get_widget("AddContact_item") mi.connect("activate", self.__on_addcontact_item_activate) self.__optPres.set_sensitive(0) self.__optPres.get_menu().set_active(0) self.__optPres.connect("changed", self.__on_pres_menu_changed) ## Hide Offline Contacts mi = self.get_widget("OfflineContacts_item") mi.connect("activate", self.__on_offlinecontacts_item_activate) def __on_evtConnecting(self): mi = self.get_widget("Login_item") mi.set_sensitive(0) mi = self.get_widget("Logout_item") mi.set_sensitive(1) def __on_evtConnected(self): self.__optPres.set_sensitive(1) def __on_evtDisconnected(self): mi = self.get_widget("Login_item") mi.set_sensitive(1) mi = self.get_widget("Logout_item") mi.set_sensitive(0) def __on_quit_item_activate(self, item): self.close() def __on_login_item_activate(self, item): ld = LoginDlg(1) ld.evtDoConnect = self.__on_login_dlg_do_connect def __on_login_dlg_do_connect(self): self.__app.connect() def __on_logout_item_activate(self, item): self.__app.session.disconnect() def __on_addcontact_item_activate(self, item): self.addjid_dlg.show() def __on_offlinecontacts_item_activate(self, item): if item.get_active(): self.__rostermodel.show_online_only = 1 else: self.__rostermodel.show_online_only = 0 self.__rostermodel.refresh(1) def __on_my_presence_event(self, pres): show = pres.getShow() if (show == Presence.Show.stChat): self.__optPres.get_menu().set_active(1) elif (show == Presence.Show.stAway): self.__optPres.get_menu().set_active(2) elif (show == Presence.Show.stXA): self.__optPres.get_menu().set_active(3) elif (show == Presence.Show.stDND): self.__optPres.get_menu().set_active(4) else: self.__optPres.get_menu().set_active(0) def __on_pres_menu_changed(self, btn): if (self.__prev_show == self.__optPres.get_history()): return tv = self.status_dlg.get_widget("tvStatus") tv.get_buffer().set_text("") self.status_dlg.show() def __on_addjid_dlg_response(self, dlg, resp): self.addjid_dlg.hide() ent = self.addjid_dlg.get_widget("entJID") jid = ent.get_text() tv = self.addjid_dlg.get_widget("txtReason") tb = tv.get_buffer() reason = None if tb.get_char_count() > 0: reason = tb.get_text(tb.get_start_iter(), tb.get_end_iter(), 0) p = Presence(jid, Presence.Type.ptSubRequest) if reason: p.status = reason self.__app.session.send(p) def __on_addjid_advanced_options(self, widget): frame = self.addjid_dlg.get_widget("frameAdvancedOptions") arrow = self.addjid_dlg.get_widget("arrowAdvancedOptions") lbl = self.addjid_dlg.get_widget("lblAdvancedOptions") if widget.get_active(): frame.show_all() arrow.set_property("arrow-type", gtk.ARROW_DOWN) lbl.set_text("Hide Advanced Options") else: frame.hide() arrow.set_property("arrow-type", gtk.ARROW_RIGHT) lbl.set_text("Show Advanced Options") def __on_status_dlg_response(self, dlg, resp): self.status_dlg.hide() if (resp == gtk.RESPONSE_CANCEL): self.__optPres.set_history(self.__prev_show) return tv = self.status_dlg.get_widget("tvStatus") tb = tv.get_buffer() status = tb.get_text(tb.get_start_iter(), tb.get_end_iter(), 0) cur = self.__optPres.get_history() show = None pt = Presence.Type.ptAvailable if (cur == 0): show = Presence.Show.stOnline elif (cur == 1): show = Presence.Show.stChat elif (cur == 2): show = Presence.Show.stAway elif (cur == 3): show = Presence.Show.stXA elif (cur == 4): show = Presence.Show.stDND elif (cur == 5): show = Presence.Show.stOnline pt = Presence.Type.ptInvisible self.__app.session.send(Presence("", pt, show, status)) self.__prev_show = cur