From d1d781f3a33899c0fbf89456f9ebd63302b83d5a Mon Sep 17 00:00:00 2001 From: Salvo 'LtWorf' Tomaselli Date: Sat, 20 Aug 2016 09:28:12 +0200 Subject: [PATCH] Encode session in base64 to workaround a Qt bug Recent updates of Qt can no longer store python's binary strings as settings, so I encode it as an easy to handle base64 string to make the session storing work again. --- relational/maintenance.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/relational/maintenance.py b/relational/maintenance.py index 4492349..04bc9b5 100644 --- a/relational/maintenance.py +++ b/relational/maintenance.py @@ -22,6 +22,7 @@ import http.client import urllib.parse import os.path import pickle +import base64 from relational.relation import relation from relational import parser @@ -103,7 +104,7 @@ class UserInterface (object): with open(filename, 'w') as f: pickle.dump(self.relations, f) return None - return pickle.dumps(self.relations) + return base64.b64encode(pickle.dumps(self.relations)).decode() def session_restore(self, session=None, filename=None): ''' @@ -113,7 +114,7 @@ class UserInterface (object): ''' if session: try: - self.relations = pickle.loads(session) + self.relations = pickle.loads(base64.b64decode(session)) except: pass elif filename: