def __init__(self, files): QMainWindow.__init__(self) sys.excepthook = self.excepthook self.profile = create_profile(files) self.view = View(self.profile, self) self.profile.setParent(self.view) self.view.set_title.connect(self.set_title) self.view.refresh_all.connect(self.refresh_all) self.setCentralWidget(self.view) self.files = files self.directories = {os.path.dirname(f['path']) for f in files.values()} self.file_watcher = QFileSystemWatcher( [f['path'] for f in files.values()] + list(self.directories), self) self.file_watcher.fileChanged.connect(self.file_changed, type=Qt.QueuedConnection) self.file_watcher.directoryChanged.connect(self.directory_changed, type=Qt.QueuedConnection) self.changed_files = set() self.changed_dirs = set() self.debounce_files, self.debounce_dirs = QTimer(), QTimer() for t in self.debounce_files, self.debounce_dirs: t.setInterval(1000), t.setSingleShot(True) self.debounce_files.timeout.connect(self.do_file_changed) self.debounce_dirs.timeout.connect(self.do_dir_changed) self.set_title(None)
def __init__(self, parent=None): super().__init__(parent) self._sessionsMetaDataList = [] # QList<SessionMetaData> self._firstBackupSession = DataPaths.currentProfilePath() + '/session.dat.old' self._secondBackupSession = DataPaths.currentProfilePath() + '/session.dat.old1' self._lastActiveSessionPath = '' sessionFileWatcher = QFileSystemWatcher([DataPaths.path(DataPaths.Sessions)], self) sessionFileWatcher.directoryChanged.connect(self._sessionsDirectoryChanged) sessionFileWatcher.directoryChanged.connect(self.sessionsMetaDataChanged) self.loadSettings()
def __init__(self, path, parent): QObject.__init__(self, parent) if path and os.path.isdir(path) and os.access(path, os.R_OK|os.W_OK): self.watcher = QFileSystemWatcher(self) self.worker = Worker(path, self.metadata_read.emit) self.watcher.directoryChanged.connect(self.dir_changed, type=Qt.QueuedConnection) self.metadata_read.connect(self.add_to_db, type=Qt.QueuedConnection) QTimer.singleShot(2000, self.initialize) self.auto_convert.connect(self.do_auto_convert, type=Qt.QueuedConnection) elif path: prints(path, 'is not a valid directory to watch for new ebooks, ignoring')