switch hide show in systray

This commit is contained in:
Marcos Pinto 2007-06-19 00:20:26 +00:00
parent 29bbac19db
commit af928cf83f
1 changed files with 14 additions and 7 deletions

View File

@ -32,8 +32,7 @@
import sys, os, os.path, urllib import sys, os, os.path, urllib
import core, common, dgtk, ipc_manager, dialogs import core, common, dgtk, ipc_manager, dialogs
import plugins, pref import plugins, pref, pygtk
import pygtk
pygtk.require('2.0') pygtk.require('2.0')
import gtk, gtk.glade, gobject import gtk, gtk.glade, gobject
import xdg, xdg.BaseDirectory import xdg, xdg.BaseDirectory
@ -159,7 +158,11 @@ class DelugeGTK:
def build_tray_icon(self): def build_tray_icon(self):
self.tray_icon = gtk.status_icon_new_from_file(common.get_pixmap("deluge32.png")) self.tray_icon = gtk.status_icon_new_from_file(common.get_pixmap("deluge32.png"))
self.tray_menu = gtk.Menu() self.tray_menu = gtk.Menu()
item_show = gtk.MenuItem(_("Show / Hide Window")) if self.window.get_property("visible"):
if self.window.is_active():
item_show = gtk.MenuItem(_("Hide Window"))
else:
item_show = gtk.MenuItem(_("Show Window"))
item_add = gtk.ImageMenuItem(_("Add Torrent")) item_add = gtk.ImageMenuItem(_("Add Torrent"))
item_clear = gtk.ImageMenuItem(_("Clear Finished")) item_clear = gtk.ImageMenuItem(_("Clear Finished"))
item_pref = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES) item_pref = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES)
@ -187,11 +190,13 @@ class DelugeGTK:
self.tray_menu.append(item_quit) self.tray_menu.append(item_quit)
self.tray_menu.show_all() self.tray_menu.show_all()
self.tray_icon.connect("activate", self.tray_clicked) self.tray_icon.connect("activate", self.tray_clicked)
self.tray_icon.connect("popup-menu", self.tray_popup) self.tray_icon.connect("popup-menu", self.tray_popup)
def tray_popup(self, status_icon, button, activate_time): def tray_popup(self, status_icon, button, activate_time):
self.tray_icon.set_visible(False)
self.tray_icon = None
self.build_tray_icon()
self.tray_menu.popup(None, None, gtk.status_icon_position_menu, self.tray_menu.popup(None, None, gtk.status_icon_position_menu,
button, activate_time, status_icon) button, activate_time, status_icon)
@ -244,12 +249,14 @@ class DelugeGTK:
def force_show_hide(self, arg=None): def force_show_hide(self, arg=None):
if self.window.get_property("visible"): if self.window.get_property("visible"):
self.window.hide() self.window.hide()
else: else:
if self.config.get("lock_tray", bool, default=False) == True: if self.config.get("lock_tray", bool, default=False) == True:
self.unlock_tray("mainwinshow") self.unlock_tray("mainwinshow")
else: else:
self.window.show() self.window.show()
def build_torrent_table(self): def build_torrent_table(self):
## Create the torrent listview ## Create the torrent listview
self.torrent_view = self.wtree.get_widget("torrent_view") self.torrent_view = self.wtree.get_widget("torrent_view")