Skip to content
Snippets Groups Projects
Commit d6cfa1f6 authored by Alberto LIVIO BECCARIA's avatar Alberto LIVIO BECCARIA
Browse files

Nuova versione che manda le notifiche usando direttamente l'interfaccia

Python verso DBUS
parent 6906e44a
No related branches found
No related tags found
No related merge requests found
Package: labsync-tray Package: labsync-tray
Version: 1.3 Version: 1.3-1
Section: misc Section: misc
Priority: optional Priority: optional
Architecture: all Architecture: all
Depends: python3 (>= 3.10), python3-pyqt5 Depends: python3 (>= 3.10), python3-pyqt5, python3-dbus
Installed-Size: 60 kB Installed-Size: 60 kB
Maintainer: ulisse <ulisse@di.unipmn.it> Maintainer: ulisse <ulisse@di.unipmn.it>
Description: Tray indicator of /opt synchronization Description: Tray indicator of /opt synchronization
......
09883148bc80f3f00823b877c47cf1d1 etc/xdg/autostart/labsync-tray.desktop 09883148bc80f3f00823b877c47cf1d1 etc/xdg/autostart/labsync-tray.desktop
f9f193232003c6cc1385d1843baa6f88 usr/local/sbin/labsync-tray-qt.py 6ef7b2a0ae337e988845f45c73ab1aa5 usr/local/sbin/labsync-tray-qt.py
bff0947d3490abe5c892c2f6dd2bbb83 usr/local/sbin/resources.py bff0947d3490abe5c892c2f6dd2bbb83 usr/local/sbin/resources.py
b4894a22afb866cee5d2d8bca7e5cfc8 usr/share/doc/labsync-tray/copyright b4894a22afb866cee5d2d8bca7e5cfc8 usr/share/doc/labsync-tray/copyright
5d2cb94cda899d151a73423b152a8d3e usr/share/doc/labsync-tray/README.md 5d2cb94cda899d151a73423b152a8d3e usr/share/doc/labsync-tray/README.md
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# exit 1 # exit 1
#fi #fi
VERSION=1.3 VERSION=1.3-1
mkdir labsync-tray_${VERSION} mkdir labsync-tray_${VERSION}
cd labsync-tray_${VERSION} cd labsync-tray_${VERSION}
install -d -m 0755 etc/xdg/autostart install -d -m 0755 etc/xdg/autostart
......
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
__version__ = '1.3' __version__ = '1.3-1'
""" """
Labsync Tray Qt Labsync Tray Qt
...@@ -12,6 +12,7 @@ import os ...@@ -12,6 +12,7 @@ import os
import signal import signal
import atexit import atexit
import argparse import argparse
import dbus
from functools import partial from functools import partial
from enum import Enum from enum import Enum
from PyQt5 import QtGui, QtCore from PyQt5 import QtGui, QtCore
...@@ -58,7 +59,7 @@ CHECK_INTERVAL = 15000 ...@@ -58,7 +59,7 @@ CHECK_INTERVAL = 15000
# Text messages and strings # Text messages and strings
MSG_SYNC_TITLE = "Aggiornamento software in corso" MSG_SYNC_TITLE = "Aggiornamento software in corso"
MSG_SYNC_TEXT = """Stiamo aggiornando il software nella cartella /opt; ci \ MSG_SYNC_TEXT = """Stiamo aggiornando il software nella cartella /opt; ci \
sarà un po&apos; di attività sul disco. sarà un po' di attività sul disco.
Alcuni dei programmi lì presenti (comprese le macchine virtuali) potrebbero \ Alcuni dei programmi lì presenti (comprese le macchine virtuali) potrebbero \
non funzionare correttamente fino al termine degli aggiornamenti. non funzionare correttamente fino al termine degli aggiornamenti.
...@@ -93,6 +94,11 @@ class SystemTrayIcon(QSystemTrayIcon): ...@@ -93,6 +94,11 @@ class SystemTrayIcon(QSystemTrayIcon):
if check_interval != None: if check_interval != None:
self.check_interval = check_interval self.check_interval = check_interval
# dbus interface for notifications
item = "org.freedesktop.Notifications"
self.notify_interface = dbus.Interface(
dbus.SessionBus().get_object(item, "/"+item.replace(".", "/")), item)
QSystemTrayIcon.__init__(self, icon, parent) QSystemTrayIcon.__init__(self, icon, parent)
# Define menu items # Define menu items
...@@ -156,12 +162,12 @@ class SystemTrayIcon(QSystemTrayIcon): ...@@ -156,12 +162,12 @@ class SystemTrayIcon(QSystemTrayIcon):
txt = MSG_SYNCED_TEXT txt = MSG_SYNCED_TEXT
#icon = QSystemTrayIcon.Information #icon = QSystemTrayIcon.Information
''' This does not work...
icon = QtGui.QIcon(APP_ICONS[self.status]) icon = QtGui.QIcon(APP_ICONS[self.status])
self.messageClicked.connect(self.notificationClicked)
self.showMessage(title, txt, icon, 150000) self.showMessage(title, txt, icon, 150000)
'''
def notificationClicked(self): # send notification using dbus interface
print("Tray message clicked!") self.notify_interface.Notify(APP_NAME, 0, "", title, txt, [], {"urgency": 1}, 150000)
def updateStatus(self): def updateStatus(self):
exists = os.path.isfile(FILE_TO_CHECK) exists = os.path.isfile(FILE_TO_CHECK)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment