205
206
class SystraySettingsDialog(QDialog):
206
207
def __init__(self, parent, systray_visible, polling,
207
208
polling_interval, systray_messages,
211
upgrade_pending_time=0,
212
upgrade_last_update_time=0,
215
# upgrade_pending_update_time=0,
210
218
QDialog.__init__(self, parent)
220
228
self.polling = polling
221
229
self.polling_interval = polling_interval
230
self.upgrade_notify =upgrade_notify
231
self.upgrade_last_update_time=upgrade_last_update_time
232
self.upgrade_pending_time=upgrade_pending_time
233
self.upgrade_msg=upgrade_msg
224
236
self.SystemTraySettings.updateUi()
235
247
self.SystemTraySettings.initUi(self.systray_visible,
236
248
self.polling, self.polling_interval,
237
249
self.device_list,
238
self.systray_messages)
250
self.systray_messages,
252
self.upgrade_pending_time,
240
255
sizePolicy = QSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding)
241
256
sizePolicy.setHorizontalStretch(0)
260
275
#QMetaObject.connectSlotsByName(self)
262
277
self.setWindowTitle(self.__tr("HP Device Manager - System Tray Settings"))
278
self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
279
# pm = load_pixmap("hp_logo", "32x32")
280
# self.prop_icon = QIcon(pm)
265
283
def acceptClicked(self):
325
345
self.tray_icon.setIcon(self.prop_active_icon)
326
346
self.active_icon = True
348
self.handle_hplip_updation()
328
349
QTimer.singleShot(SET_MENU_DELAY, self.initDone)
351
self.timer = QTimer()
352
self.timer.connect(self.timer,SIGNAL("timeout()"),self.handle_hplip_updation)
353
self.timer.start(UPGRADE_CHECK_DELAY)
331
357
def initDone(self):
332
358
self.tray_icon.setIcon(self.prop_icon)
344
370
devices[device_uri].needs_update = True
373
def handle_hplip_updation(self):
374
log.debug("handle_hplip_updation upgrade_notify =%d"%(self.user_settings.upgrade_notify))
375
path = utils.which('hp-upgrade')
376
if self.user_settings.upgrade_notify is False:
377
log.debug("upgrade notification is disabled in systray ")
379
path = os.path.join(path, 'hp-upgrade')
380
log.debug("Running hp-upgrade: %s " % (path))
381
# this just updates the available version in conf file. But won't notify
382
os.spawnlp(os.P_NOWAIT, path, 'hp-upgrade', '--check')
386
current_time = time.time()
388
if int(current_time) > self.user_settings.upgrade_pending_update_time:
389
path = utils.which('hp-upgrade')
391
path = os.path.join(path, 'hp-upgrade')
392
log.debug("Running hp-upgrade: %s " % (path))
393
os.spawnlp(os.P_NOWAIT, path, 'hp-upgrade', '--notify')
396
log.error("Unable to find hp-upgrade --notify on PATH.")
398
log.debug("upgrade schedule time is not yet completed. schedule time =%d current time =%d " %(self.user_settings.upgrade_pending_update_time, current_time))
348
405
def setMenu(self):
349
406
self.menu = QMenu()
351
title = QWidgetAction(self.menu)
408
title = QAction(self.menu)
352
409
#title.setDisabled(True)
354
hbox = QFrame(self.menu)
355
layout = QHBoxLayout(hbox)
358
pix_label = QLabel(hbox)
360
layout.insertWidget(-1, pix_label, 0)
362
icon_size = self.menu.style().pixelMetric(QStyle.PM_SmallIconSize)
363
pix_label.setPixmap(self.prop_icon.pixmap(icon_size))
366
layout.insertWidget(-1, label, 20)
367
title.setDefaultWidget(hbox)
369
label.setText(self.__tr("HPLIP Status Service"))
410
title.setText(self.__tr("HPLIP Status Service"))
411
title.setIcon(self.prop_icon)
412
title.setIconVisibleInMenu(True)
374
413
self.menu.insertAction(None, title)
419
458
self.sendMessage('', '', EVENT_DEVICE_STOP_POLLING)
460
cur_vers = sys_conf.get('hplip', 'version')
461
self.user_settings.load()
462
installed_time =time.strftime("%d-%m-%Y", time.localtime(self.user_settings.upgrade_last_update_time))
463
if utils.Is_HPLIP_older_version(cur_vers, self.user_settings.latest_available_version):
464
if int(time.time()) < self.user_settings.upgrade_pending_update_time :
465
postponed_time =time.strftime("%d-%m-%Y", time.localtime(self.user_settings.upgrade_pending_update_time))
466
upgrade_msg ="HPLIP-%s version was installed on %s.\n\nNew version of HPLIP-%s is available for upgrade. HPLIP upgrade is scheduled on %s." %(cur_vers,installed_time , self.user_settings.latest_available_version, postponed_time)
467
elif self.user_settings.upgrade_last_update_time:
468
upgrade_msg ="HPLIP-%s version was installed on %s.\n\nNew version of HPLIP-%s is available for upgrade." %(cur_vers,installed_time , self.user_settings.latest_available_version)
470
upgrade_msg ="HPLIP-%s version was installed.\n\nNew version of HPLIP-%s is available for upgrade." %(cur_vers, self.user_settings.latest_available_version)
471
elif self.user_settings.upgrade_last_update_time:
472
upgrade_msg ="HPLIP-%s version was installed on %s."%(cur_vers, installed_time)
474
upgrade_msg ="HPLIP-%s version was installed."%(cur_vers)
421
478
dlg = SystraySettingsDialog(self.menu, self.user_settings.systray_visible,
422
479
self.user_settings.polling, self.user_settings.polling_interval,
423
480
self.user_settings.systray_messages,
424
self.user_settings.polling_device_list)
481
self.user_settings.polling_device_list,
482
self.user_settings.upgrade_notify,
483
self.user_settings.upgrade_pending_update_time,
484
self.user_settings.upgrade_last_update_time,
426
488
if dlg.exec_() == QDialog.Accepted:
427
489
self.user_settings.systray_visible = dlg.systray_visible
428
490
self.user_settings.systray_messages = dlg.systray_messages
491
self.user_settings.upgrade_notify = dlg.upgrade_notify
493
log.debug("HPLIP update notification = %d"%(self.user_settings.upgrade_notify))
430
494
self.user_settings.save()
432
496
if self.user_settings.systray_visible == SYSTRAY_VISIBLE_SHOW_ALWAYS: