1
Index: kdeutils-4.3.98/printer-applet/printer-applet.py
2
===================================================================
3
--- kdeutils-4.3.98.orig/printer-applet/printer-applet.py 2010-02-02 18:32:33.463050816 -0500
4
+++ kdeutils-4.3.98/printer-applet/printer-applet.py 2010-02-02 18:36:49.360052925 -0500
6
from PyQt4.QtGui import *
8
from PyKDE4.kdecore import i18n, i18nc, i18np, i18ncp, ki18n, KAboutData, KCmdLineArgs, KCmdLineOptions, KStandardDirs, KLocalizedString
9
-from PyKDE4.kdeui import KApplication, KXmlGuiWindow, KStandardAction, KIcon, KToggleAction, KNotification, KMessageBox
10
+from PyKDE4.kdeui import KApplication, KXmlGuiWindow, KStandardAction, KIcon, KToggleAction, KNotification, KMenu, KMessageBox, KStatusNotifierItem
12
def translate(self, prop):
13
"""reimplement method from uic to change it to use gettext"""
15
self.printersWindow = PrintersWindow(self)
16
uic.loadUi(APPDIR + "/" + "printer-applet-printers.ui", self.printersWindow)
18
- self.sysTray = QSystemTrayIcon(KIcon("printer"), self.mainWindow)
19
- #self.sysTray.show()
20
- self.connect(self.sysTray, SIGNAL("activated( QSystemTrayIcon::ActivationReason )"), self.toggle_window_display)
23
- self.menu.addAction(i18n("_Hide").replace("_", ""), self.on_icon_hide_activate)
24
- self.menu.addAction(KIcon("application-exit"), i18n("Quit"), self.on_icon_quit_activate)
25
- self.sysTray.setContextMenu(self.menu)
26
+ self.sysTray = KStatusNotifierItem(self.mainWindow)
27
+ self.sysTray.setCategory(KStatusNotifierItem.Hardware)
28
+ self.sysTray.setIconByName("printer")
29
+ self.sysTray.setAssociatedWidget(self.mainWindow)
31
self.mainWindow.treeWidget.setContextMenuPolicy(Qt.CustomContextMenu)
32
self.connect(self.mainWindow.treeWidget, SIGNAL("customContextMenuRequested(const QPoint&)"), self.show_treeview_popup_menu)
33
#self.connect(self.mainWindow.treeWidget, SIGNAL("itemClicked(QTreeWidgetItem*, int)"), self.printItemClicked)
34
- self.rightClickMenu = QMenu(self.mainWindow.treeWidget)
35
+ self.rightClickMenu = KMenu(self.mainWindow.treeWidget)
36
self.cancel = self.rightClickMenu.addAction(i18n("Cancel"), self.on_job_cancel_activate)
37
self.hold = self.rightClickMenu.addAction(i18n("_Hold").replace("_",""), self.on_job_hold_activate)
38
self.release = self.rightClickMenu.addAction(i18n("_Release").replace("_",""), self.on_job_release_activate)
42
def notify_new_printer (self, printer, title, text):
44
+ self.sysTray.setStatus(KStatusNotifierItem.Active)
45
KNotification.event(title, text, KIcon("konqueror").pixmap(QSize(22,22)))
47
"""unused, see set_special_statusicon
49
error_text = error_text.replace("\n", "<br />")
50
error_text = error_text.replace("span", "strong")
51
KMessageBox.error(self.mainWindow, error_text, i18n("Error"))
53
- def toggle_window_display(self, activationReason):
54
- if activationReason == QSystemTrayIcon.Trigger:
55
- if self.mainWindow.isVisible():
56
- self.mainWindow.hide()
58
- self.mainWindow.show()
59
- self.monitor.refresh()
61
#FIXME, hide printer status window?
62
def hideMainWindow(self):
64
debugprint ("num_jobs: %d" % num_jobs)
65
debugprint ("num_jobs_when_hidden: %d" % self.num_jobs_when_hidden)
67
- self.sysTray.setVisible(self.special_status_icon or
68
- num_jobs > self.num_jobs_when_hidden)
69
+ if self.special_status_icon or num_jobs > self.num_jobs_when_hidden:
70
+ self.sysTray.setStatus(KStatusNotifierItem.Active)
72
+ self.sysTray.setStatus(KStatusNotifierItem.Passive)
74
def show_treeview_popup_menu(self, postition):
77
def on_icon_popupmenu(self, icon, button, time):
78
self.icon_popupmenu.popup (None, None, None, button, time)
80
- def on_icon_hide_activate(self):
81
- self.num_jobs_when_hidden = len (self.jobs.keys ())
82
- self.set_statusicon_visibility ()
84
- def on_icon_quit_activate(self):
87
def on_job_cancel_activate(self):
89
c = authconn.Connection (self.mainWindow)
92
num_jobs = len (self.jobs)
94
- tooltip = i18n("No documents queued")
95
+ tooltipText = i18n("No documents queued")
97
- tooltip = i18np("1 document queued", "%1 documents queued", num_jobs)
98
+ tooltipText = i18np("1 document queued", "%1 documents queued", num_jobs)
100
- self.sysTray.setToolTip(tooltip)
101
+ self.sysTray.setToolTip("printer", i18n("Printer Applet"), tooltipText)
103
def update_status (self, have_jobs=None):
104
# Found out which printer state reasons apply to our active jobs.
105
@@ -1161,5 +1144,5 @@
106
applet = JobManager()
107
if args.isSet("show"):
108
applet.mainWindow.show()
109
- applet.sysTray.show()
110
+ applet.sysTray.setStatus(KStatusNotifierItem.Active)
111
sys.exit(app.exec_())