summaryrefslogtreecommitdiff
path: root/portato/gui/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'portato/gui/gtk')
-rw-r--r--portato/gui/gtk/windows.py45
1 files changed, 41 insertions, 4 deletions
diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py
index 88d9a18..7c6f41b 100644
--- a/portato/gui/gtk/windows.py
+++ b/portato/gui/gtk/windows.py
@@ -186,9 +186,11 @@ class PreferenceWindow (AbstractDialog):
"deepCheck" : "deep_opt",
"newUseCheck" : "newuse_opt",
"maskPerVersionCheck" : "maskPerVersion_opt",
+ "minimizeCheck" : ("minimize_opt", "gui_sec"),
+ "systrayCheck" : ("systray_opt", "gui_sec"),
+ "testPerVersionCheck" : "testingPerVersion_opt",
"usePerVersionCheck" : "usePerVersion_opt",
- "useTipsCheck" : ("useTips_opt", "gtk_sec"),
- "testPerVersionCheck" : "testingPerVersion_opt"
+ "useTipsCheck" : ("useTips_opt", "gtk_sec")
}
# all edits in the window
@@ -800,6 +802,15 @@ class MainWindow (Window):
# popups
self.queuePopup = self.create_popup("queuePopup")
self.consolePopup = self.create_popup("consolePopup")
+ self.trayPopup = self.create_popup("systrayPopup")
+
+ # systray
+ if self.cfg.get_boolean("systray_opt", self.cfg.const["gui_sec"]):
+ self.tray = gtk.status_icon_new_from_file(APP_ICON)
+ self.tray.connect("activate", self.cb_systray_activated)
+ self.tray.connect("popup-menu", lambda icon, btn, time: self.trayPopup.popup(None, None, None, btn, time))
+ else:
+ self.tray = None
# set emerge queue
self.queueTree = GtkTree(self.queueList.get_model())
@@ -903,8 +914,13 @@ class MainWindow (Window):
def title_update (self, title):
- if title == None: title = "Console"
- else: title = ("Console (%s)" % title)
+ if self.tray:
+ self.tray.set_tooltip(title)
+
+ if title == None:
+ title = "Console"
+ else:
+ title = ("Console (%s)" % title)
gobject.idle_add(self.notebook.set_tab_label_text, self.termHB, title)
@@ -1127,6 +1143,27 @@ class MainWindow (Window):
return False
+ def cb_minimized (self, window, event):
+ if self.tray and self.cfg.get_boolean("minimize_opt", self.cfg.const["gui_sec"]):
+ if event.changed_mask & gtk.gdk.WINDOW_STATE_ICONIFIED:
+ if event.new_window_state & gtk.gdk.WINDOW_STATE_ICONIFIED:
+ self.window.hide()
+ return True
+
+ return False
+
+ def cb_systray_activated (self, tray):
+ if self.window.iconify_initially:
+ self.window.deiconify()
+ self.window.show()
+ self.window.window.show()
+ else:
+ self.window.iconify()
+
+ def cb_close (self, *args):
+ if not self.cb_delete(): # do the checks
+ self.window.destroy()
+
def cb_destroy (self, widget):
"""Calls main_quit()."""
gtk.main_quit()
b38cf62107&follow=1'>Documentation worknecoro2-154/+160 2006-10-12Enabled oneshotnecoro3-32/+103 2006-10-12Layout updatenecoro1-16/+38 2006-10-12Fixed bugsnecoro2-15/+16 2006-10-12Migrated to UIManagernecoro1-33/+64 2006-10-10Fixed bug not showing the use-flag-list in some casesnecoro1-3/+5 2006-10-09bla - prepared 0.4.0 ; added dialogs.py; extended some commentsnecoro9-125/+293 2006-10-08Made the testing stuff working too ... I hope ^^ ... removed obsolete-dirnecoro7-145/+113 2006-10-05Added first support for the masking stuff ... and hoping that it is going to ...necoro5-79/+135 2006-10-05Changed changelog / added config-filenecoro2-0/+10 2006-10-05Added preference windownecoro4-49/+155 2006-10-02Corrected comments, structure, bad algorithms etcnecoro4-176/+209 2006-10-02Corrected indention in commentnecoro1-8/+6 2006-10-010.3.3necoro1-0/+6 2006-10-01Implemented an internal db; removed unmerge-bugnecoro2-26/+43 2006-09-30Implemented some new backend functions which speed up the package-list-creati...necoro2-12/+37 2006-09-300.3.2 release; changed font in terminal; added new "masking"-dialognecoro3-11/+36 2006-09-29fixed bugsnecoro4-13/+23 2006-09-29Corrected setup.pynecoro1-1/+1