/pidgin/main: 8bbbd0b12e84: Merged in qulogic/pidgin (pull reque...
Gary Kramlich <[email protected]> Tue, 06 Sep 2016 11:30:53 -0400
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 8bbbd0b12e844436fbc02cfc61734e9b9c4ade29 Author: Gary Kramlich <[email protected]> Date: 2016-09-06 10:30 -0500 Branch: default URL: https://hg.pidgin.im/pidgin/main/rev/8bbbd0b12e84 Description: Merged in qulogic/pidgin (pull request #119) Cleanup Python scripts diffstat: finch/plugins/pietray.py | 296 ++++++++++++++------------ libpurple/dbus-analyze-functions.py | 285 ++++++++++++++----------- libpurple/dbus-analyze-signals.py | 21 +- libpurple/dbus-analyze-types.py | 13 +- libpurple/plugins/dbus-buddyicons-example.py | 23 +- libpurple/plugins/startup.py | 44 ++- libpurple/purple-notifications-example | 35 +- libpurple/purple-remote | 94 +++++--- libpurple/purple-url-handler | 110 ++++++--- 9 files changed, 528 insertions(+), 393 deletions(-) diffs (truncated from 1856 to 300 lines): diff --git a/finch/plugins/pietray.py b/finch/plugins/pietray.py --- a/finch/plugins/pietray.py +++ b/finch/plugins/pietray.py @@ -12,196 +12,226 @@ # the tooltip. # - It can blink on unread IM/Chat messages, and it allows canging # the preference for that. -# +# # It requires GTK+ 2.10 or above, since it uses GtkStatusIcon. -# +# # Sadrul <[email protected]> +from __future__ import absolute_import, division, print_function + +import os # to get the pkg-config output + import pygtk -pygtk.require("2.0") +pygtk.require("2.0") # noqa import gtk -import dbus, gobject, dbus.glib -import os # to get the pkg-config output +import dbus +import dbus.glib + bus = dbus.SessionBus() -obj = bus.get_object( - "im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") +obj = bus.get_object("im.pidgin.purple.PurpleService", + "/im/pidgin/purple/PurpleObject") purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") + def pack_image_label(menu, image, label): - item = gtk.ImageMenuItem(label) - if image: - img = gtk.Image() - img.set_from_stock(image, 1) - item.set_image(img) - menu.append(item) - return item + item = gtk.ImageMenuItem(label) + if image: + img = gtk.Image() + img.set_from_stock(image, 1) + item.set_image(img) + menu.append(item) + return item + def activate_primitive_status(item, status): - saved = purple.PurpleSavedstatusFindTransientByTypeAndMessage(status, "") - if not saved: - saved = purple.PurpleSavedstatusNew("", status) - purple.PurpleSavedstatusActivate(saved) + saved = purple.PurpleSavedstatusFindTransientByTypeAndMessage(status, "") + if not saved: + saved = purple.PurpleSavedstatusNew("", status) + purple.PurpleSavedstatusActivate(saved) + def activate_popular_status(item, time): - saved = purple.PurpleSavedstatusFindByCreationTime(time) - if saved: - purple.PurpleSavedstatusActivate(saved) + saved = purple.PurpleSavedstatusFindByCreationTime(time) + if saved: + purple.PurpleSavedstatusActivate(saved) + def generate_status_menu(menu): - item = gtk.MenuItem("Available") - item.connect("activate", activate_primitive_status, 2) - menu.append(item) + item = gtk.MenuItem("Available") + item.connect("activate", activate_primitive_status, 2) + menu.append(item) - item = gtk.MenuItem("Away") - item.connect("activate", activate_primitive_status, 5) - menu.append(item) + item = gtk.MenuItem("Away") + item.connect("activate", activate_primitive_status, 5) + menu.append(item) - item = gtk.MenuItem("Invisible") - item.connect("activate", activate_primitive_status, 4) - menu.append(item) + item = gtk.MenuItem("Invisible") + item.connect("activate", activate_primitive_status, 4) + menu.append(item) - item = gtk.MenuItem("Offline") - item.connect("activate", activate_primitive_status, 1) - menu.append(item) + item = gtk.MenuItem("Offline") + item.connect("activate", activate_primitive_status, 1) + menu.append(item) - menu.append(gtk.MenuItem()) + menu.append(gtk.MenuItem()) - popular = purple.PurpleSavedstatusesGetPopular(10) - for pop in popular: - title = purple.PurpleSavedstatusGetTitle(pop).replace('_', '__') - item = gtk.MenuItem(title) - item.set_data("timestamp", purple.PurpleSavedstatusGetCreationTime(pop)) - item.connect("activate", activate_popular_status, purple.PurpleSavedstatusGetCreationTime(pop)) - menu.append(item) + popular = purple.PurpleSavedstatusesGetPopular(10) + for pop in popular: + title = purple.PurpleSavedstatusGetTitle(pop).replace('_', '__') + item = gtk.MenuItem(title) + item.set_data("timestamp", + purple.PurpleSavedstatusGetCreationTime(pop)) + item.connect("activate", activate_popular_status, + purple.PurpleSavedstatusGetCreationTime(pop)) + menu.append(item) + def toggle_pref(item, pref): - purple.PurplePrefsSetBool(pref, item.get_active()) + purple.PurplePrefsSetBool(pref, item.get_active()) + def quit_finch(item, null): - # XXX: Ask first - purple.PurpleCoreQuit() - gtk.main_quit() + # XXX: Ask first + purple.PurpleCoreQuit() + gtk.main_quit() + def close_docklet(item, null): - gtk.main_quit() + gtk.main_quit() + def popup_menu(icon, button, tm, none): - menu = gtk.Menu() + menu = gtk.Menu() - #item = gtk.ImageMenuItem(gtk.STOCK_QUIT) - #item.connect("activate", quit_finch, None) - #menu.append(item) + # item = gtk.ImageMenuItem(gtk.STOCK_QUIT) + # item.connect("activate", quit_finch, None) + # menu.append(item) - item = gtk.ImageMenuItem(gtk.STOCK_CLOSE) - item.connect("activate", close_docklet, None) - menu.append(item) + item = gtk.ImageMenuItem(gtk.STOCK_CLOSE) + item.connect("activate", close_docklet, None) + menu.append(item) - menu.append(gtk.MenuItem()) + menu.append(gtk.MenuItem()) - item = gtk.CheckMenuItem("Blink for unread IM") - item.set_active(purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/im")) - item.connect("activate", toggle_pref, "/plugins/dbus/docklet/blink/im") - menu.append(item) + item = gtk.CheckMenuItem("Blink for unread IM") + item.set_active( + purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/im")) + item.connect("activate", toggle_pref, "/plugins/dbus/docklet/blink/im") + menu.append(item) - item = gtk.CheckMenuItem("Blink for unread Chats") - item.set_active(purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/chat")) - item.connect("activate", toggle_pref, "/plugins/dbus/docklet/blink/chat") - menu.append(item) + item = gtk.CheckMenuItem("Blink for unread Chats") + item.set_active( + purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/chat")) + item.connect("activate", toggle_pref, "/plugins/dbus/docklet/blink/chat") + menu.append(item) - menu.append(gtk.MenuItem()) + menu.append(gtk.MenuItem()) - #item = pack_image_label(menu, None, "Change Status...") - item = gtk.MenuItem("Change Status...") - menu.append(item) - submenu = gtk.Menu() - item.set_submenu(submenu) - generate_status_menu(submenu) + # item = pack_image_label(menu, None, "Change Status...") + item = gtk.MenuItem("Change Status...") + menu.append(item) + submenu = gtk.Menu() + item.set_submenu(submenu) + generate_status_menu(submenu) - menu.show_all() - menu.popup(None, None, None, button, tm) + menu.show_all() + menu.popup(None, None, None, button, tm) + def get_status_message(): - status = purple.PurpleSavedstatusGetCurrent() - msg = purple.PurpleSavedstatusGetMessage(status) - if msg and len(msg) > 0: - text = msg + " " - else: - text = "" - text = text + "(" + { - 2: "Available", - 5: "Away", - 4: "Invisible", - 1: "Offline" - }[purple.PurpleSavedstatusGetType(status)] + ")" - return text + status_names = { + 1: 'Offline', + 2: 'Available', + 4: 'Invisible', + 5: 'Away', + } + + status = purple.PurpleSavedstatusGetCurrent() + msg = purple.PurpleSavedstatusGetMessage(status) + if msg and len(msg) > 0: + text = msg + " " + else: + text = "" + text += "(" + status_names[purple.PurpleSavedstatusGetType(status)] + ")" + return text + def detect_unread_conversations(): - im = purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/im") - chat = purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/chat") - tooltip = "" - blink = False - if im and chat: - convs = purple.PurpleGetConversations() - elif im: - convs = purple.PurpleGetIms() - elif chat: - convs = purple.PurpleGetChats() - else: - convs = None - for conv in convs: - count = purple.PurpleConversationGetData(conv, "unseen-count") - if count and count > 0: - blink = True - tooltip = tooltip + "\n" + purple.PurpleConversationGetName(conv) + " (" + str(count) + ")" - t.set_from_file(path + "/share/pixmaps/pidgin.png") - if blink: - # I hate this icon - # t.set_from_file(path + "/share/pixmaps/pidgin/tray/22/tray-message.png") - tooltip = "\nUnread Messages:" + tooltip - # There's going to be some way to expose the client's display name in 2.1.0. - # Use that instead of hardcoding Finch here. - t.set_tooltip("Finch: " + get_status_message() + tooltip) - t.set_blinking(blink) + im = purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/im") + chat = purple.PurplePrefsGetBool("/plugins/dbus/docklet/blink/chat") + tooltip = "" + blink = False + if im and chat: + convs = purple.PurpleGetConversations() + elif im: + convs = purple.PurpleGetIms() + elif chat: + convs = purple.PurpleGetChats() + else: + convs = None + for conv in convs: + count = purple.PurpleConversationGetData(conv, "unseen-count") + if count and count > 0: + blink = True + tooltip += "\n%s (%d)" % (purple.PurpleConversationGetName(conv), + count) + t.set_from_file(path + "/share/pixmaps/pidgin.png") + if blink: + # I hate this icon + # t.set_from_file(path + + # "/share/pixmaps/pidgin/tray/22/tray-message.png") + tooltip = "\nUnread Messages:" + tooltip + # There's going to be some way to expose the client's display name in + # 2.1.0. Use that instead of hardcoding Finch here. + t.set_tooltip("Finch: " + get_status_message() + tooltip) + t.set_blinking(blink) + def conversation_updated(conv, type): - detect_unread_conversations() + detect_unread_conversations() + def savedstatus_changed(new, old): - # Change the icon for status perhaps? _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits