From c97e45f20ae7eb7017488faee7f98a6d435a6f53 Mon Sep 17 00:00:00 2001 From: Denis Fomin <fominde@gmail.com> Date: Fri, 5 Nov 2010 16:41:00 +0300 Subject: [PATCH] ftp manager plugin added to the main repository --- ftp_manager/ftp_manager.py | 20 ++++++++++++++++- ubuntu_integration/plugin.py | 43 ++++++++++++++++++------------------ 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/ftp_manager/ftp_manager.py b/ftp_manager/ftp_manager.py index ccc3adef..d80edf20 100644 --- a/ftp_manager/ftp_manager.py +++ b/ftp_manager/ftp_manager.py @@ -1,5 +1,23 @@ # -*- coding: utf-8 -*- - +# +## plugins/ftp_manager/ftp_manager.py +## +## Copyright (C) 2010 Denis Fomin <fominde AT gmail.com> +## +## This file is part of Gajim. +## +## Gajim is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published +## by the Free Software Foundation; version 3 only. +## +## Gajim is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Gajim. If not, see <http://www.gnu.org/licenses/>. +## import gtk import pango import gobject diff --git a/ubuntu_integration/plugin.py b/ubuntu_integration/plugin.py index 7f67ec0a..6e7d1360 100644 --- a/ubuntu_integration/plugin.py +++ b/ubuntu_integration/plugin.py @@ -44,24 +44,28 @@ class UbuntuIntegrationPlugin(GajimPlugin): """ Class for Messaging Menu and Me Menu. """ - + @log_calls("UbuntuIntegrationPlugin") def init(self): """ Does nothing. """ self.config_dialog = None - + @log_calls("UbuntuIntegrationPlugin") def activate(self): """ Displays gajim in the Messaging Menu. """ + # {(account, jid): (indicator, [event, ...]), ...} + self.events = {} + self.server = None + if not HAS_INDICATE: raise GajimPluginException("python-indicate is missing!") if not HAS_PYXDG: raise GajimPluginException("python-xdg is missing!") - + self.server = indicate.indicate_server_ref_default() self.server.set_type("message.im") dfile = "" @@ -72,13 +76,10 @@ class UbuntuIntegrationPlugin(GajimPlugin): raise GajimPluginException("Can't locate gajim.desktop!") self.server.set_desktop_file(dfile) self.server.show() - - # {(account, jid): (indicator, [event, ...]), ...} - self.events = {} - + gajim.events.event_added_subscribe(self.on_event_added) gajim.events.event_removed_subscribe(self.on_event_removed) - + @log_calls("UbuntuIntegrationPlugin") def deactivate(self): """ @@ -86,14 +87,14 @@ class UbuntuIntegrationPlugin(GajimPlugin): """ gajim.events.event_added_unsubscribe(self.on_event_added) gajim.events.event_removed_unsubscribe(self.on_event_removed) - + for (_, event) in self.events: event[0].hide() self.server.hide() - + del self.server del self.events - + def on_indicator_activate(self, indicator, _): """ Forwards the action to gajims event handler. @@ -101,20 +102,20 @@ class UbuntuIntegrationPlugin(GajimPlugin): key = indicator.key event = self.events[key][1][0] gajim.interface.handle_event(event.account, event.jid, event.type_) - + def on_event_added(self, event): """ Adds "Nickname Time" to the Messaging menu. """ print "----", event.type_ - + # Basic variables account = event.account jid = event.jid when = time.time() contact = "" key = (account, jid) - + # Check if the event is valid and modify the variables if event.type_ == "chat" or \ event.type_ == "printed_chat" or \ @@ -135,9 +136,9 @@ class UbuntuIntegrationPlugin(GajimPlugin): else: print "ignored"; return - + print account, jid, when, contact - + # Add a new indicator if necessary if not self.events.has_key(key): indicator = indicate.Indicator() @@ -152,11 +153,11 @@ class UbuntuIntegrationPlugin(GajimPlugin): indicator.show() indicator.key = key self.events[key] = (indicator, []) - + # Prepare the event and save it event.time = when self.events[key][1].append(event); - + def on_event_removed(self, events): """ Goes through the events and removes them from the array and @@ -164,13 +165,13 @@ class UbuntuIntegrationPlugin(GajimPlugin): """ for event in events: print "====", event.type_ - + key = (event.account, event.jid) - + if self.events.has_key(key) and \ event in self.events[key][1]: self.events[key][1].remove(event) - + if len(self.events[key][1]) == 0: # remove indicator self.events[key][0].hide() del self.events[key] -- GitLab