Ejemplo n.º 1
0
 def openWorkspace(self):
     """ Function for opening a saved workspace. Goes through and reloads in reverse of how it is saved. """
     sel = QFileDialog.getOpenFileName(
         parent=self,
         caption="Open Workspace",
         directory=QDir.homePath(),
         filter="Linnaeo Workspace (*.lno);;Any (*)")
     if sel != ('', ''):
         filename = sel[0]
         self.mainLogger.debug("Opening file: " + str(filename))
         file = QFile(filename)
         file.open(QIODevice.ReadOnly)
         fstream = QDataStream(file)
         self.mainLogger.info("Starting restore")
         self.mainStatus.showMessage("Rebuilding workspace, please wait...")
         sequences = fstream.readQVariantHash()
         titles = fstream.readQVariantList()
         windex = fstream.readUInt32()
         windows = {}
         self.mdiArea.closeAllSubWindows()
         newBModel = widgets.ItemModel(windows, seqTree=True)
         newPModel = widgets.ItemModel(windows)
         self.restore_tree(newBModel.invisibleRootItem(), fstream)
         self.restore_tree(newPModel.invisibleRootItem(), fstream)
         self.mainStatus.showMessage("Rebuild complete!")
         self.mdiArea.closeAllSubWindows()
         self.start = time.perf_counter()
         self.disconnectSlots()
         self.guiSet(trees=[newBModel, newPModel],
                     data=[sequences, titles, windex])
         self.connectSlots()
         del sel, filename, file, fstream, sequences, titles, windex, windows, newBModel, newPModel
         #self.destroy()
     else:
         del sel