def __getstate__(self): result = dict(self.__dict__) result['url'] = result['url'].toEncoded() data = QByteArray() ds = QDataStream(data, QIODevice.WriteOnly) ds.writeQVariant(self.icon) result['icon'] = data.data() return result
def saveState(self): restoreData = RestoreData() for window in self._windows: restoreData.windows.append(BrowserWindow.SavedWindow(window)) if self._restoreManager and self._restoreManager.isValid(): stream = QDataStream(restoreData.crashedSession, QIODevice.WriteOnly) stream.writeQVariant(self._restoreManager.restoreData()) restoreData.closedWindows = self._closedWindowsManager.saveState() data = QByteArray() stream = QDataStream(data, QIODevice.WriteOnly) stream.writeInt(const.sessionVersion) stream.writeBytes(pickle.dumps(restoreData)) return data
def saveState(self): ''' @return: QByteArray ''' data = QByteArray() stream = QDataStream(data, QIODevice.WriteOnly) stream.writeInt(self._s_closedWindowsVersion) # Only save last 3 windows windowCount = min(max(0, len(self._closedWindows)), 3) stream.writeInt(windowCount) for window in self._closedWindows[:windowCount]: stream.writeQVariant(window.windowState) return data
def __getstate__(self): data = QByteArray() stream = QDataStream(data, QIODevice.WriteOnly) stream.writeQVariant(self.windows) stream.writeInt(self._s_restoreDataVersion) stream.writeQVariant(self.crashedSession) stream.writeQVariant(self.closedWindows) return data
return result def __setstate__(self, state): print('__setstate__') for key, val in state.items(): if key == 'test1': self.test1 = QUrl.fromEncoded(val) else: setattr(self, key, val) if argv[1] == 'dump': data = QByteArray() ds = QDataStream(data, QIODevice.WriteOnly) ds.writeInt(1) obj = ObjType() ds.writeQVariant([obj, obj]) print(data) with open('test.dat', 'wb') as fp: fp.write(data) elif argv[1] == 'load': with open('test.dat', 'rb') as fp: data = fp.read() dsOut = QDataStream(QByteArray(data)) ver = dsOut.readInt() lst = dsOut.readQVariant() print(lst[0].test1) print(lst) else: raise RuntimeError('action should be dump or load')