def init(self): dbFile = os.path.join(smDataPath(),'scanmanager.settings') if not os.path.exists(dbFile): shutil.copyfile(os.path.join(smBasePath(),'scanmanager.settings.default'),dbFile) # open a db and check we can access its keys db = shelve.open(dbFile) [i for i in db.keys()] db.close() # db seems OK -- make a backup and then open it for real shutil.copyfile(dbFile,os.path.join(smDataPath(),'scanmanager.settings.backup')) self.db = shelve.open(dbFile) if not self.db.keys(): self.db['version'] = base.smGetSettingsVersion() self.settings = ApplicationMainSettings(db=self.db) if not self.settings.load(): log.error('Settings file out of date') e = QtGui.QMessageBox.critical( None, self.tr('Error'), self.tr(''' <p>Your scanmanager.settings file appears to be out of date (existing settings version %s, app settings version %s).</p> <p>Try deleting %s</p>''') % ( self.db.get('version',None), base.smGetSettingsVersion(), os.path.join(base.smDataPath(),'scanmanager.settings') ) ) self.quit() return self.images = [] backend.apis = backend.BackendManager(trace=base.runtimeOptions.trace) apis = backend.apis apis.loadAll() apis.openAll(db=self.db) errorText = apis.formatAPIErrors() if errorText: sys.stderr.write(errorText) self.processingQueue = processing.ProcessingQueue() self.setWindowIcon(QtGui.QIcon(':/scanmanager-16.png')) self.SetupWindow.initialiseOptions() self.SetupWindow.show() self.SetupWindow.loadSettings()
def init(self): dbFile = os.path.join(smDataPath(), 'scanmanager.settings') if not os.path.exists(dbFile): shutil.copyfile( os.path.join(smBasePath(), 'scanmanager.settings.default'), dbFile) # open a db and check we can access its keys db = shelve.open(dbFile) [i for i in db.keys()] db.close() # db seems OK -- make a backup and then open it for real shutil.copyfile( dbFile, os.path.join(smDataPath(), 'scanmanager.settings.backup')) self.db = shelve.open(dbFile) if not self.db.keys(): self.db['version'] = base.smGetSettingsVersion() self.settings = ApplicationMainSettings(db=self.db) if not self.settings.load(): log.error('Settings file out of date') e = QtGui.QMessageBox.critical( None, self.tr('Error'), self.tr(''' <p>Your scanmanager.settings file appears to be out of date (existing settings version %s, app settings version %s).</p> <p>Try deleting %s</p>''') % (self.db.get('version', None), base.smGetSettingsVersion(), os.path.join(base.smDataPath(), 'scanmanager.settings'))) self.quit() return self.images = [] backend.apis = backend.BackendManager(trace=base.runtimeOptions.trace) apis = backend.apis apis.loadAll() apis.openAll(db=self.db) errorText = apis.formatAPIErrors() if errorText: sys.stderr.write(errorText) self.processingQueue = processing.ProcessingQueue() self.setWindowIcon(QtGui.QIcon(':/scanmanager-16.png')) self.SetupWindow.initialiseOptions() self.SetupWindow.show() self.SetupWindow.loadSettings()
def load(self): if self._db.get('version', None) != base.smGetSettingsVersion(): return False for k, v in self._db.items(): if k not in self._children: continue setattr(self, k, v) for k in self._children: if k not in self: setattr(self, k, ApplicationSettings()) return True
def load(self): if self._db.get('version',None) != base.smGetSettingsVersion(): return False for k,v in self._db.items(): if k not in self._children: continue setattr(self,k,v) for k in self._children: if k not in self: setattr(self,k,ApplicationSettings()) return True