#!/usr/bin/env python3 import sys import pathlib import os sys.path.append(str(pathlib.Path(__file__).absolute().parent.parent / 'src')) from nmreval.configs import check_for_config # does a directory for config stuff exist? create it if not check_for_config() # pyqtgraph warns on Mac if QApplication is created when it is imported # import pyqtgraph from nmreval.lib.logger import handle_exception sys.excepthook = handle_exception from gui_qt import App from gui_qt.Qt import QtCore app = App(['NMReval']) from gui_qt.main.mainwindow import NMRMainWindow from gui_qt.lib.backup import BackupManager def do_autosave(): # autosave and update timestamp in db success = mplQt.autosave() if success: backuping.update_last_save() # autosave stuff: keep track of instance and their backup files backuping = BackupManager() # look for autosaves in DB without running programs files = backuping.search_unsaved() # tell everyone what autosave files belongs to this process pid = os.getpid() bck_name = backuping.create_entry(pid) mplQt = NMRMainWindow(bck_file=bck_name) # one manual autosave to create the file do_autosave() # load all selected autosaves to program for f in files: mplQt.management.load_files(f) f.unlink() timer = QtCore.QTimer() timer.timeout.connect(do_autosave) timer.start(3 * 60 * 1000) app.aboutToQuit.connect(backuping.close) mplQt.show() sys.exit(app.exec())