[kupfer: 4/22] plugin.pidgin: Add SendMessage action
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 4/22] plugin.pidgin: Add SendMessage action
- Date: Fri, 30 Oct 2009 14:02:30 +0000 (UTC)
commit b7dc07d66b57182a86cd185945daf2127d559d6f
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Tue Oct 27 14:18:10 2009 +0100
plugin.pidgin: Add SendMessage action
Add an action to send messages directly from kupfer.
kupfer/plugin/pidgin.py | 39 ++++++++++++++++++++++++++++++++++-----
1 files changed, 34 insertions(+), 5 deletions(-)
---
diff --git a/kupfer/plugin/pidgin.py b/kupfer/plugin/pidgin.py
index 72a5fa4..9aa565d 100644
--- a/kupfer/plugin/pidgin.py
+++ b/kupfer/plugin/pidgin.py
@@ -2,7 +2,9 @@
plugin'''
import dbus
-from kupfer.objects import Leaf, Action, Source, AppLeafContentMixin
+from kupfer.objects import (Leaf, Action, Source, AppLeafContentMixin,
+ TextLeaf, TextSource)
+from kupfer import pretty
from kupfer import pretty, icons
__kupfer_name__ = _("Pidgin")
@@ -39,6 +41,19 @@ def _create_dbus_connection(activate=False):
return interface
+def _send_message_to_contact(pcontact, message):
+ """
+ Send @message to PidginContact @pcontact
+ """
+ interface = _create_dbus_connection()
+ if not interface:
+ return
+ account, jid = pcontact.account, pcontact.jid
+ conversation = interface.PurpleConversationNew(1, account, jid)
+ im = interface.PurpleConvIm(conversation)
+ interface.PurpleConvImSend(im, message)
+
+
class OpenChat(Action):
""" Open Chat Conversation Window with jid """
@@ -46,14 +61,27 @@ class OpenChat(Action):
Action.__init__(self, _('Open Chat'))
def activate(self, leaf):
- interface = _create_dbus_connection()
- conversation = interface.PurpleConversationNew(1, leaf.account, leaf.jid)
- im = interface.PurpleConvIm(conversation)
- interface.PurpleConvImSend(im, dbus.String(''))
+ _send_message_to_contact(leaf, u"")
def get_icon_name(self):
return 'stock_person'
+class SendMessage (Action):
+ """ Send chat message directly from Kupfer """
+ def __init__(self):
+ Action.__init__(self, _("Send Message..."))
+
+ def activate(self, leaf, iobj):
+ _send_message_to_contact(leaf, iobj.object)
+
+ def item_types(self):
+ yield PidginContact
+ def requires_object(self):
+ return True
+ def object_types(self):
+ yield TextLeaf
+ def object_source(self, for_item=None):
+ return TextSource()
class PidginContact(Leaf):
""" Leaf represent single contact from Pidgin """
@@ -79,6 +107,7 @@ class PidginContact(Leaf):
def get_actions(self):
yield OpenChat()
+ yield SendMessage()
def get_description(self):
return self._description
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]