eric7/Tasks/TasksFile.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8318
962bce857696
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 QObject 13 from PyQt6.QtCore import 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 from .Task import TaskType, TaskPriority 21 from .Task import TaskType, TaskPriority
22 22
61 tasksDict["ProjectScanFilter"] = "" 61 tasksDict["ProjectScanFilter"] = ""
62 62
63 # step 2: tasks 63 # step 2: tasks
64 tasksDict["Tasks"] = [ 64 tasksDict["Tasks"] = [
65 task.toDict() 65 task.toDict()
66 for task in e5App().getObject("TaskViewer").getGlobalTasks() 66 for task in ericApp().getObject("TaskViewer").getGlobalTasks()
67 ] 67 ]
68 else: 68 else:
69 tasksDict["header"] = { 69 tasksDict["header"] = {
70 "comment": "eric tasks file for project {0}".format( 70 "comment": "eric tasks file for project {0}".format(
71 e5App().getObject("Project").getProjectName()), 71 ericApp().getObject("Project").getProjectName()),
72 "warning": ( 72 "warning": (
73 "This file was generated automatically, do not edit." 73 "This file was generated automatically, do not edit."
74 ), 74 ),
75 } 75 }
76 if Preferences.getProject("TimestampFile"): 76 if Preferences.getProject("TimestampFile"):
77 tasksDict["header"]["saved"] = ( 77 tasksDict["header"]["saved"] = (
78 time.strftime('%Y-%m-%d, %H:%M:%S') 78 time.strftime('%Y-%m-%d, %H:%M:%S')
79 ) 79 )
80 # step 1: project scan filter 80 # step 1: project scan filter
81 tasksDict["ProjectScanFilter"] = ( 81 tasksDict["ProjectScanFilter"] = (
82 e5App().getObject("TaskViewer").getTasksScanFilter() 82 ericApp().getObject("TaskViewer").getTasksScanFilter()
83 ) 83 )
84 84
85 # step 2: tasks 85 # step 2: tasks
86 tasksDict["Tasks"] = [ 86 tasksDict["Tasks"] = [
87 task.toDict() 87 task.toDict()
88 for task in e5App().getObject("TaskViewer").getProjectTasks() 88 for task in ericApp().getObject("TaskViewer").getProjectTasks()
89 ] 89 ]
90 90
91 try: 91 try:
92 jsonString = json.dumps(tasksDict, indent=2) 92 jsonString = json.dumps(tasksDict, indent=2)
93 with open(filename, "w") as f: 93 with open(filename, "w") as f:
94 f.write(jsonString) 94 f.write(jsonString)
95 except (TypeError, OSError) as err: 95 except (TypeError, OSError) as err:
96 with E5OverridenCursor(): 96 with EricOverridenCursor():
97 E5MessageBox.critical( 97 EricMessageBox.critical(
98 None, 98 None,
99 self.tr("Save Tasks"), 99 self.tr("Save Tasks"),
100 self.tr( 100 self.tr(
101 "<p>The tasks file <b>{0}</b> could not be" 101 "<p>The tasks file <b>{0}</b> could not be"
102 " written.</p><p>Reason: {1}</p>" 102 " written.</p><p>Reason: {1}</p>"
118 try: 118 try:
119 with open(filename, "r") as f: 119 with open(filename, "r") as f:
120 jsonString = f.read() 120 jsonString = f.read()
121 tasksDict = json.loads(jsonString) 121 tasksDict = json.loads(jsonString)
122 except (OSError, json.JSONDecodeError) as err: 122 except (OSError, json.JSONDecodeError) as err:
123 E5MessageBox.critical( 123 EricMessageBox.critical(
124 None, 124 None,
125 self.tr("Read Tasks"), 125 self.tr("Read Tasks"),
126 self.tr( 126 self.tr(
127 "<p>The tasks file <b>{0}</b> could not be read.</p>" 127 "<p>The tasks file <b>{0}</b> could not be read.</p>"
128 "<p>Reason: {1}</p>" 128 "<p>Reason: {1}</p>"
129 ).format(filename, str(err)) 129 ).format(filename, str(err))
130 ) 130 )
131 return False 131 return False
132 132
133 viewer = e5App().getObject("TaskViewer") 133 viewer = ericApp().getObject("TaskViewer")
134 if tasksDict["ProjectScanFilter"]: 134 if tasksDict["ProjectScanFilter"]:
135 viewer.setTasksScanFilter(tasksDict["ProjectScanFilter"]) 135 viewer.setTasksScanFilter(tasksDict["ProjectScanFilter"])
136 136
137 addedTasks = [] 137 addedTasks = []
138 for task in tasksDict["Tasks"]: 138 for task in tasksDict["Tasks"]:

eric ide

mercurial