136 """ |
136 """ |
137 Private slot to read the time tracker entries from a file. |
137 Private slot to read the time tracker entries from a file. |
138 """ |
138 """ |
139 if os.path.exists(self.__trackerFilePath): |
139 if os.path.exists(self.__trackerFilePath): |
140 try: |
140 try: |
141 f = open(self.__trackerFilePath, "r", encoding="utf-8") |
141 with open(self.__trackerFilePath, "r", encoding="utf-8") as f: |
142 data = f.read() |
142 data = f.read() |
143 f.close() |
|
144 except (IOError, OSError) as err: |
143 except (IOError, OSError) as err: |
145 E5MessageBox.critical( |
144 E5MessageBox.critical( |
146 self.__ui, |
145 self.__ui, |
147 self.tr("Read Time Tracker File"), |
146 self.tr("Read Time Tracker File"), |
148 self.tr("""<p>The time tracker file <b>{0}</b> could""" |
147 self.tr("""<p>The time tracker file <b>{0}</b> could""" |
184 entriesList = [self.__entries[eid] for eid in ids |
183 entriesList = [self.__entries[eid] for eid in ids |
185 if eid in self.__entries] |
184 if eid in self.__entries] |
186 else: |
185 else: |
187 entriesList = self.__entries.values() |
186 entriesList = self.__entries.values() |
188 try: |
187 try: |
189 f = open(filePath, "w", encoding="utf-8") |
188 with open(filePath, "w", encoding="utf-8") as f: |
190 for entry in entriesList: |
189 for entry in entriesList: |
191 if entry.isValid(): |
190 if entry.isValid(): |
192 f.write(entry.toString() + "\n") |
191 f.write(entry.toString() + "\n") |
193 f.close() |
|
194 except (IOError, OSError) as err: |
192 except (IOError, OSError) as err: |
195 E5MessageBox.critical( |
193 E5MessageBox.critical( |
196 self.__ui, |
194 self.__ui, |
197 self.tr("Save Time Tracker File"), |
195 self.tr("Save Time Tracker File"), |
198 self.tr("""<p>The time tracker file <b>{0}</b> could""" |
196 self.tr("""<p>The time tracker file <b>{0}</b> could""" |
204 Public slot to import tracker entries from a file. |
202 Public slot to import tracker entries from a file. |
205 |
203 |
206 @param fname name of the file to import (string) |
204 @param fname name of the file to import (string) |
207 """ |
205 """ |
208 try: |
206 try: |
209 f = open(fname, "r", encoding="utf-8") |
207 with open(fname, "r", encoding="utf-8") as f: |
210 data = f.read() |
208 data = f.read() |
211 f.close() |
|
212 except (IOError, OSError) as err: |
209 except (IOError, OSError) as err: |
213 E5MessageBox.critical( |
210 E5MessageBox.critical( |
214 self.__ui, |
211 self.__ui, |
215 self.tr("Import Time Tracker File"), |
212 self.tr("Import Time Tracker File"), |
216 self.tr("""<p>The time tracker file <b>{0}</b> could""" |
213 self.tr("""<p>The time tracker file <b>{0}</b> could""" |