def __switchFromInput(self, source, isNew): """ When in the editing state of nickname and psm, change back to the uneditable label state. """ if (isNew): if source is self.btnNickname.get_child(): newText = source.get_text() strv = StringView() strv.appendText(newText) self._myview.nick = strv elif source is self.btnPsm.get_child(): newText = source.get_text() strv = StringView() strv.appendText(newText) self._myview.psm = strv else: if source is self.btnNickname.get_child(): # User discards input newText = self.nicklabel.get_text() # Old nickname elif source is self.btnPsm.get_child(): newText = self.psmlabel.get_text() parentWidget = source.get_parent() currWidget = parentWidget.get_child() currWidget.disconnect( self.focusOutId) # Else we trigger focus-out-event; segfault. parentWidget.remove(currWidget) entry = gtk.Label() entry.set_markup(newText) parentWidget.add(entry) entry.show() parentWidget.set_relief(gtk.RELIEF_NONE) # remove cool elevated effect
def __on_chat_send(self, entry, event_keyval, event_keymod): if (event_keyval == gtk.keysyms.Return): buffer = entry.get_buffer() start, end = buffer.get_bounds() msg = buffer.get_text(start, end) entry.clear() entry.grab_focus() if (msg == ''): return False color = self.button_color.get_color() hex8 = "%.2x%.2x%.2x" % ((color.red / 0x101), (color.green / 0x101), (color.blue / 0x101)) style = papyon.TextFormat.NO_EFFECT if self.button_bold.get_active(): style |= papyon.TextFormat.BOLD if self.button_italic.get_active(): style |= papyon.TextFormat.ITALIC if self.button_underline.get_active(): style |= papyon.TextFormat.UNDERLINE if self.button_strikethrough.get_active(): style |= papyon.TextFormat.STRIKETHROUGH font_name = self.button_font.get_font_name() font_family = pango.FontDescription(font_name).get_family() format = papyon.TextFormat(font=font_family, color=hex8, style=style) strv = StringView() strv.appendText(msg) self._amsn_conversation.sendMessage(strv, format) elif event_keyval == gtk.keysyms.Escape: self._parent.destroy()
def groupUpdated(self, group): if (group.uid == 0): group.uid = '0' if group.uid not in self.groups: return gitem = self.__search_by_id(group.uid) self._model.item(self._model.indexFromItem(gitem).row(), 3).setData(QVariant(group), Qt.DisplayRole) gname = StringView() gname = group.name self._model.item((self._model.indexFromItem(gitem)).row(), 0).setText('<b>'+QString.fromUtf8(gname.toHtmlString())+'</b>') try: cuids = self.contacts[group.uid] except: cuids = [] self.contacts[group.uid] = group.contact_ids.copy() for cid in group.contact_ids: if cid not in cuids: gitem = self.__search_by_id(group.uid) gitem.appendRow([QStandardItem(cid), QStandardItem(cid), QStandardItem("contact"), QStandardItem()]) # Remove unused contacts for cid in cuids: if cid not in self.contacts[group.uid]: citem = self.__search_by_id(cid) self._model.removeRow((self._model.indexFromItem(citem)).row())
def __sendMessage(self): # TODO: Switch to this when implemented """ msg = self.ui.inputWidget.toHtml() self.ui.inputWidget.clear() strv = StringView() strv.appendElementsFromHtml(msg) """ msg = QString.fromUtf8(self.ui.inputWidget.toPlainText()) self.ui.inputWidget.clear() strv = StringView() strv.appendText(str(msg)) ## as we send our msg to the conversation: self._amsn_conversation.sendMessage(strv)
def groupAdded(self, group): pi = self._model.invisibleRootItem() # Adding Group Item groupItem = QStandardItem() gname = StringView() gname = group.name self._model.item(groupItem.row(), 0).setText('<b>'+QString.fromUtf8(gname.toHtmlString())+'</b>') self._model.item(groupItem.row(), 1).setText(QString.fromUtf8(str(group.uid))) pi.appendRow(groupItem) for contact in group.contacts: contactItem = QStandardItem() cname = StringView() cname = contact.name self._model.item(contactItem.row(), 0).setText(QString.fromUtf8(cname.toHtmlString())) self._model.item(contactItem.row(), 1).setText(QString.fromUtf8(str(contact.uid))) groupItem.appendRow(contactItem) self._contactDict[contact.uid] = contact
def contactUpdated(self, contact): citem = self.__search_by_id(contact.uid) if citem is None: return gitem = citem.parent() if gitem is None: return dp = Image(self._parent._theme_manager, contact.dp) dp = dp.to_size(28, 28) #icon = Image(self._parent._theme_manager, contact.icon) gitem.child(self._model.indexFromItem(citem).row(), 0).setData(QVariant(dp), Qt.DecorationRole) #gitem.child(self._model.indexFromItem(citem).row(), 0).setData(QVariant(icon), Qt.DecorationRole) gitem.child(self._model.indexFromItem(citem).row(), 3).setData(QVariant(contact), Qt.DisplayRole) cname = StringView() cname = contact.name.toHtmlString() gitem.child(self._model.indexFromItem(citem).row(), 0).setText(QString.fromUtf8(cname))
def __slotChangeNick(self): sv = StringView() sv.appendText(str(self.ui.nickName.text())) self._amsn_core._profile.client.changeNick(sv)