blob: bfcd407b17e42efda45aa56dda8e87c6c28b8de1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import sys
import os
import psutil
import subprocess
from PyQt5 import QtCore, QtGui, QtWidgets
class SystemTrayIcon(QtWidgets.QSystemTrayIcon):
def __init__(self, icon, parent=None):
QtWidgets.QSystemTrayIcon.__init__(self, icon, parent)
self.menu = QtWidgets.QMenu(parent)
self.setContextMenu(self.menu)
def setupTrayIcon(url):
qApp = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
trayIcon = SystemTrayIcon(QtGui.QIcon("/usr/lib/pgadmin4/web/pgAdmin4.png"), w)
trayIcon.menu.addAction("New pgAdmin4 window", lambda: subprocess.run(["xdg-open", url]))
trayIcon.menu.addAction("Exit server process", qApp.exit)
trayIcon.show()
print("Setup tray icon...")
qApp.exec()
def checkRunning():
for proc in psutil.process_iter():
try:
if "pgadmin4.py" in " ".join(proc.cmdline()).lower() and os.getpid() != proc.pid:
print("pgAdmin4 server is already running...")
sys.exit()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
|