TimeTracker/TimeTrackerWidget.py

branch
eric7
changeset 111
e0bf42d8474e
parent 109
3d6e8bb07779
child 113
a9002f9b14d5
equal deleted inserted replaced
110:e6a732fe8270 111:e0bf42d8474e
7 Module implementing the time tracker widget. 7 Module implementing the time tracker widget.
8 """ 8 """
9 9
10 import os 10 import os
11 11
12 from PyQt6.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime, QFileInfo 12 from PyQt6.QtCore import QDate, QFileInfo, QPoint, Qt, QTime, pyqtSlot
13 from PyQt6.QtGui import QCursor 13 from PyQt6.QtGui import QCursor
14 from PyQt6.QtWidgets import QWidget, QMenu, QTreeWidgetItem, QDialog 14 from PyQt6.QtWidgets import QDialog, QMenu, QTreeWidgetItem, QWidget
15 15
16 from eric7 import Preferences, Utilities 16 from eric7 import Preferences
17 from eric7.EricWidgets import EricMessageBox, EricFileDialog 17 from eric7.EricWidgets import EricFileDialog, EricMessageBox
18
19 try:
20 from eric7.SystemUtilities.FileSystemUtilities import toNativeSeparators
21 except ImportError:
22 # imports for eric < 23.1
23 from eric7.Utilities import toNativeSeparators
24 try:
25 from eric7.SystemUtilities.OSUtilities import getHomeDir
26 except ImportError:
27 # imports for eric < 23.1
28 from eric7.Utilities import getHomeDir
18 29
19 from .Ui_TimeTrackerWidget import Ui_TimeTrackerWidget 30 from .Ui_TimeTrackerWidget import Ui_TimeTrackerWidget
20 31
21 32
22 class TimeTrackerWidget(QWidget, Ui_TimeTrackerWidget): 33 class TimeTrackerWidget(QWidget, Ui_TimeTrackerWidget):
245 256
246 def __importEntries(self): 257 def __importEntries(self):
247 """ 258 """
248 Private slot to import tracker entries. 259 Private slot to import tracker entries.
249 """ 260 """
250 path = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() 261 path = Preferences.getMultiProject("Workspace") or getHomeDir()
251 fname = EricFileDialog.getOpenFileName( 262 fname = EricFileDialog.getOpenFileName(
252 None, 263 None,
253 self.tr("Import Time Tracker Entries"), 264 self.tr("Import Time Tracker Entries"),
254 path, 265 path,
255 self.tr("Time Tracker Files (*.ttj);;All Files (*)"), 266 self.tr("Time Tracker Files (*.ttj);;All Files (*)"),
256 ) 267 )
257 if fname: 268 if fname:
258 fname = Utilities.toNativeSeparators(fname) 269 fname = toNativeSeparators(fname)
259 if not os.path.exists(fname): 270 if not os.path.exists(fname):
260 EricMessageBox.critical( 271 EricMessageBox.critical(
261 self, 272 self,
262 self.tr("Import Time Tracker Entries"), 273 self.tr("Import Time Tracker Entries"),
263 self.tr("<p>The file <b>{0}</b> does not exist.</p>").format(fname), 274 self.tr("<p>The file <b>{0}</b> does not exist.</p>").format(fname),
271 Private method to export all or selected entries. 282 Private method to export all or selected entries.
272 283
273 @param ids list of IDs to export or all if empty 284 @param ids list of IDs to export or all if empty
274 @type list of int 285 @type list of int
275 """ 286 """
276 path = Preferences.getMultiProject("Workspace") or Utilities.getHomeDir() 287 path = Preferences.getMultiProject("Workspace") or getHomeDir()
277 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter( 288 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
278 self, 289 self,
279 self.tr("Export Time Tracker Entries"), 290 self.tr("Export Time Tracker Entries"),
280 path, 291 path,
281 self.tr("Time Tracker Files (*.ttj);;All Files (*)"), 292 self.tr("Time Tracker Files (*.ttj);;All Files (*)"),
297 ).format(fname), 308 ).format(fname),
298 icon=EricMessageBox.Warning, 309 icon=EricMessageBox.Warning,
299 ) 310 )
300 if not res: 311 if not res:
301 return 312 return
302 fname = Utilities.toNativeSeparators(fname) 313 fname = toNativeSeparators(fname)
303 self.__tracker.saveTrackerEntries(filePath=fname, ids=ids) 314 self.__tracker.saveTrackerEntries(filePath=fname, ids=ids)
304 315
305 def __exportSelectedEntries(self): 316 def __exportSelectedEntries(self):
306 """ 317 """
307 Private slot to export the selected tracker entries. 318 Private slot to export the selected tracker entries.

eric ide

mercurial