diff --git a/appindicator_integration/manifest.ini b/appindicator_integration/manifest.ini index 1811c767bdf61a91477a1429d2c43371dc82b010..bd9397ebd31ac3b31b0c480f9ad4372d225703d5 100644 --- a/appindicator_integration/manifest.ini +++ b/appindicator_integration/manifest.ini @@ -1,7 +1,7 @@ [info] name: Appindicator integration short_name: appindicator_integration -version: 0.1.3 +version: 0.1.4 description: This plugin integrates Gajim with the appindicator. You must have python-appindicator (and Gajim obviously) installed to enable this plugin. Rewriten from Ubuntu Ayatana Integration plugin homepage: http://trac-plugins.gajim.org/wiki/AppindicatorSupportPlugin diff --git a/appindicator_integration/plugin.py b/appindicator_integration/plugin.py index 9d03ca6c268bc9aa4eae3950e12c8314bc8c73ff..b12df3bf939fa44cee6d10415d964127e1c8d672 100644 --- a/appindicator_integration/plugin.py +++ b/appindicator_integration/plugin.py @@ -51,13 +51,16 @@ class AppindicatorIntegrationPlugin(GajimPlugin): self.online_icon = "tray-online" self.offline_icon = "tray-offline" self.connected = 0 - + + self.connect_menu_item = gtk.MenuItem('Connect') + self.connect_menu_item.connect("activate", self.connect) + self.show_gajim_menu_item = gtk.MenuItem('Show/hide roster') self.show_gajim_menu_item.connect("activate", self.roster_raise) self.show_gajim_menu_item.show() self.event_separator = gtk.SeparatorMenuItem() - self.menuEventInsertIndex = 2 + self.menuEventInsertIndex = 3 itemExitSeparator = gtk.SeparatorMenuItem() itemExitSeparator.show() @@ -67,6 +70,7 @@ class AppindicatorIntegrationPlugin(GajimPlugin): itemExit.show() self.menu = gtk.Menu() + self.menu.append(self.connect_menu_item) self.menu.append(self.show_gajim_menu_item) self.menu.append(self.event_separator) self.menu.append(itemExitSeparator) @@ -83,6 +87,13 @@ class AppindicatorIntegrationPlugin(GajimPlugin): gajim.events.event_added_subscribe(self.on_event_added) gajim.events.event_removed_subscribe(self.on_event_removed) + + def connect(self, widget, data=None): + for account in gajim.connections: + if gajim.config.get_per('accounts', account, + 'sync_with_global_status'): + gajim.connections[account].change_status('online','online') + def set_indicator_icon(self, obj=''): is_connected = 0 @@ -97,8 +108,10 @@ class AppindicatorIntegrationPlugin(GajimPlugin): self.connected = is_connected if self.connected == 1: self.indicator.set_icon(self.online_icon) + self.connect_menu_item.hide() else: self.indicator.set_icon(self.offline_icon) + self.connect_menu_item.show() @log_calls("AppindicatorPlugin") def deactivate(self):