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