From e00f9f9414e3cef99e9ec422cf095e0962fa15e1 Mon Sep 17 00:00:00 2001 From: "benjamin.jakimow@geo.hu-berlin.de" <q8DTkxUg-BB> Date: Thu, 3 Aug 2017 17:21:56 +0200 Subject: [PATCH] [in progress] pickle/unpickle plotstyles --- timeseriesviewer/plotstyling.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/timeseriesviewer/plotstyling.py b/timeseriesviewer/plotstyling.py index f20b2b2b..9464a562 100644 --- a/timeseriesviewer/plotstyling.py +++ b/timeseriesviewer/plotstyling.py @@ -86,7 +86,20 @@ class PlotStyle(QObject): p.end() return QIcon(pm) + def __reduce_ex__(self, protocol): + return self.__class__, (), self.__getstate__() + + def __getstate__(self): + result = dict() + for k, i in self.__dict__.items(): + t = type(i) + if t in [str, int, float, QColor]: + result[k] = i + return result + + def __setstate__(self, state): + self.__dict__.update(state) class PlotStyleWidget(QWidget, loadUi('plotstylewidget.ui')): sigPlotStyleChanged = pyqtSignal(PlotStyle) @@ -330,6 +343,11 @@ if __name__ == '__main__': from timeseriesviewer import sandbox qgsApp = sandbox.initQgisEnvironment() + + import pickle + s1 = PlotStyle() + s2 = pickle.loads(pickle.dumps(s1)) + assert s1 == s2 btn = PlotStyleButton() btn.show() qgsApp.exec_() -- GitLab