eric7/Sessions/SessionFile.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8319
ea11a3948f40
child 8358
144a6b854f70
equal deleted inserted replaced
8355:8a7677a63c8d 8356:68ec9c3d4de5
10 import json 10 import json
11 import time 11 import time
12 12
13 from PyQt6.QtCore import Qt, QObject 13 from PyQt6.QtCore import Qt, QObject
14 14
15 from E5Gui import E5MessageBox 15 from E5Gui import EricMessageBox
16 from E5Gui.E5OverrideCursor import E5OverridenCursor 16 from E5Gui.EricOverrideCursor import EricOverridenCursor
17 from E5Gui.E5Application import e5App 17 from E5Gui.EricApplication import ericApp
18 18
19 import Preferences 19 import Preferences
20 20
21 21
22 class SessionFile(QObject): 22 class SessionFile(QObject):
44 @type str 44 @type str
45 @return flag indicating a successful write 45 @return flag indicating a successful write
46 @rtype bool 46 @rtype bool
47 """ 47 """
48 # get references to objects we need 48 # get references to objects we need
49 project = e5App().getObject("Project") 49 project = ericApp().getObject("Project")
50 projectBrowser = e5App().getObject("ProjectBrowser") 50 projectBrowser = ericApp().getObject("ProjectBrowser")
51 multiProject = e5App().getObject("MultiProject") 51 multiProject = ericApp().getObject("MultiProject")
52 vm = e5App().getObject("ViewManager") 52 vm = ericApp().getObject("ViewManager")
53 dbg = e5App().getObject("DebugUI") 53 dbg = ericApp().getObject("DebugUI")
54 dbs = e5App().getObject("DebugServer") 54 dbs = ericApp().getObject("DebugServer")
55 55
56 # prepare the session data dictionary 56 # prepare the session data dictionary
57 # step 0: header 57 # step 0: header
58 sessionDict = {} 58 sessionDict = {}
59 sessionDict["header"] = {} 59 sessionDict["header"] = {}
225 try: 225 try:
226 jsonString = json.dumps(sessionDict, indent=2) 226 jsonString = json.dumps(sessionDict, indent=2)
227 with open(filename, "w") as f: 227 with open(filename, "w") as f:
228 f.write(jsonString) 228 f.write(jsonString)
229 except (TypeError, OSError) as err: 229 except (TypeError, OSError) as err:
230 with E5OverridenCursor(): 230 with EricOverridenCursor():
231 E5MessageBox.critical( 231 EricMessageBox.critical(
232 None, 232 None,
233 self.tr("Save Session"), 233 self.tr("Save Session"),
234 self.tr( 234 self.tr(
235 "<p>The session file <b>{0}</b> could not be" 235 "<p>The session file <b>{0}</b> could not be"
236 " written.</p><p>Reason: {1}</p>" 236 " written.</p><p>Reason: {1}</p>"
252 try: 252 try:
253 with open(filename, "r") as f: 253 with open(filename, "r") as f:
254 jsonString = f.read() 254 jsonString = f.read()
255 sessionDict = json.loads(jsonString) 255 sessionDict = json.loads(jsonString)
256 except (OSError, json.JSONDecodeError) as err: 256 except (OSError, json.JSONDecodeError) as err:
257 E5MessageBox.critical( 257 EricMessageBox.critical(
258 None, 258 None,
259 self.tr("Read Session"), 259 self.tr("Read Session"),
260 self.tr( 260 self.tr(
261 "<p>The session file <b>{0}</b> could not be read.</p>" 261 "<p>The session file <b>{0}</b> could not be read.</p>"
262 "<p>Reason: {1}</p>" 262 "<p>Reason: {1}</p>"
263 ).format(filename, str(err)) 263 ).format(filename, str(err))
264 ) 264 )
265 return False 265 return False
266 266
267 # get references to objects we need 267 # get references to objects we need
268 project = e5App().getObject("Project") 268 project = ericApp().getObject("Project")
269 projectBrowser = e5App().getObject("ProjectBrowser") 269 projectBrowser = ericApp().getObject("ProjectBrowser")
270 multiProject = e5App().getObject("MultiProject") 270 multiProject = ericApp().getObject("MultiProject")
271 vm = e5App().getObject("ViewManager") 271 vm = ericApp().getObject("ViewManager")
272 dbg = e5App().getObject("DebugUI") 272 dbg = ericApp().getObject("DebugUI")
273 dbs = e5App().getObject("DebugServer") 273 dbs = ericApp().getObject("DebugServer")
274 274
275 # step 1: multi project and project 275 # step 1: multi project and project
276 # ================================= 276 # =================================
277 if sessionDict["MultiProject"]: 277 if sessionDict["MultiProject"]:
278 multiProject.openMultiProject(sessionDict["MultiProject"], False) 278 multiProject.openMultiProject(sessionDict["MultiProject"], False)

eric ide

mercurial