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.
This commit is contained in:
Salvo 'LtWorf' Tomaselli 2016-08-20 09:28:12 +02:00
parent c4e258bbf9
commit d1d781f3a3

View File

@ -22,6 +22,7 @@ import http.client
import urllib.parse import urllib.parse
import os.path import os.path
import pickle import pickle
import base64
from relational.relation import relation from relational.relation import relation
from relational import parser from relational import parser
@ -103,7 +104,7 @@ class UserInterface (object):
with open(filename, 'w') as f: with open(filename, 'w') as f:
pickle.dump(self.relations, f) pickle.dump(self.relations, f)
return None return None
return pickle.dumps(self.relations) return base64.b64encode(pickle.dumps(self.relations)).decode()
def session_restore(self, session=None, filename=None): def session_restore(self, session=None, filename=None):
''' '''
@ -113,7 +114,7 @@ class UserInterface (object):
''' '''
if session: if session:
try: try:
self.relations = pickle.loads(session) self.relations = pickle.loads(base64.b64decode(session))
except: except:
pass pass
elif filename: elif filename: