import sys, os, fcntl, signal
from PyQt5 import QtWidgets, QtCore
from devices import get_storage_devices
from forms.mainwindow import MainWindow
from pics import pics
devices = get_storage_devices(True, 'disk')
#if not os.access('/dev/{}', os.R_OK) or not os.access('/dev/{}', os.W_OK):
# if QtWidgets.QMessageBox.question('Access denied', 'Unable to get access to disk drives')
app = QtWidgets.QApplication(sys.argv)
def handle_signal_wakeup():
notifier.setEnabled(False)
read_fd = notifier.socket()
try:
os.read(read_fd, 1)
except OSError:
print("Failed to read wakeup fd.")
notifier.setEnabled(True)
def destroy(a, b):
form.clean()
app.exit(128 + a)
read_fd, write_fd = os.pipe()
for fd in (read_fd, write_fd):
flags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK)
notifier = QtCore.QSocketNotifier(read_fd, QtCore.QSocketNotifier.Read)
notifier.activated.connect(handle_signal_wakeup)
orig_wakeup_fd = signal.set_wakeup_fd(write_fd)
signal.signal(signal.SIGTERM, destroy)
signal.signal(signal.SIGINT, destroy)
form = MainWindow()
form.show()
rval = app.exec()
form.clean()
sys.exit(rval)