TimeTracker/TimeTrackerWidget.py

changeset 87
4ac2329b36da
parent 84
427a7f8d662f
child 89
e38b60832145
equal deleted inserted replaced
86:94ee489db94c 87:4ac2329b36da
4 # 4 #
5 5
6 """ 6 """
7 Module implementing the time tracker widget. 7 Module implementing the time tracker widget.
8 """ 8 """
9
10 from __future__ import unicode_literals
11 9
12 import os 10 import os
13 11
14 from PyQt5.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime, QFileInfo 12 from PyQt5.QtCore import pyqtSlot, QPoint, Qt, QDate, QTime, QFileInfo
15 from PyQt5.QtGui import QCursor 13 from PyQt5.QtGui import QCursor
142 ) 140 )
143 menu.addSeparator() 141 menu.addSeparator()
144 menu.addAction(self.tr("Save"), self.__saveEntries) 142 menu.addAction(self.tr("Save"), self.__saveEntries)
145 menu.addSeparator() 143 menu.addSeparator()
146 menu.addAction(self.tr("Import"), self.__importEntries) 144 menu.addAction(self.tr("Import"), self.__importEntries)
147 menu.addAction(self.tr("Export Selected"), 145 act = menu.addAction(self.tr("Export Selected"),
148 self.__exportSelectedEntries)\ 146 self.__exportSelectedEntries)
149 .setEnabled(len(self.entriesList.selectedItems()) != 0) 147 act.setEnabled(len(self.entriesList.selectedItems()) != 0)
150 menu.addAction(self.tr("Export All"), self.__exportEntries) 148 menu.addAction(self.tr("Export All"), self.__exportEntries)
151 menu.addSeparator() 149 menu.addSeparator()
152 menu.addAction(self.tr("Remove duplicates"), self.__removeDuplicates) 150 menu.addAction(self.tr("Remove duplicates"), self.__removeDuplicates)
153 menu.addAction(self.tr("Merge duplicates"), self.__mergeDuplicates) 151 menu.addAction(self.tr("Merge duplicates"), self.__mergeDuplicates)
154 menu.exec_(QCursor.pos()) 152 menu.exec_(QCursor.pos())
196 entry.setDuration(duration) 194 entry.setDuration(duration)
197 entry.setTask(task) 195 entry.setTask(task)
198 entry.setComment(comment) 196 entry.setComment(comment)
199 self.__tracker.entryChanged() 197 self.__tracker.entryChanged()
200 198
201 date, time, duration, task, comment = \ 199 (date, time, duration, task,
202 entry.getEntryData()[1:-1] 200 comment) = entry.getEntryData()[1:-1]
203 itm.setText(0, self.tr("{0}, {1}", "date, time") 201 itm.setText(0, self.tr("{0}, {1}", "date, time")
204 .format(date, time)) 202 .format(date, time))
205 itm.setText(1, self.tr("{0} min").format(duration)) 203 itm.setText(1, self.tr("{0} min").format(duration))
206 itm.setText(2, task) 204 itm.setText(2, task)
207 itm.setText(3, comment) 205 itm.setText(3, comment)
234 232
235 def __importEntries(self): 233 def __importEntries(self):
236 """ 234 """
237 Private slot to import tracker entries. 235 Private slot to import tracker entries.
238 """ 236 """
239 path = Preferences.getMultiProject("Workspace") or \ 237 path = (
238 Preferences.getMultiProject("Workspace") or
240 Utilities.getHomeDir() 239 Utilities.getHomeDir()
240 )
241 fname = E5FileDialog.getOpenFileName( 241 fname = E5FileDialog.getOpenFileName(
242 None, 242 None,
243 self.tr("Import Tracker Entries"), 243 self.tr("Import Tracker Entries"),
244 path, 244 path,
245 self.tr("Text Files (*.txt);;All Files (*)")) 245 self.tr("Text Files (*.txt);;All Files (*)"))
259 """ 259 """
260 Private method to export all or selected entries. 260 Private method to export all or selected entries.
261 261
262 @keyparam ids list of IDs to export or all if empty (list of integer) 262 @keyparam ids list of IDs to export or all if empty (list of integer)
263 """ 263 """
264 path = Preferences.getMultiProject("Workspace") or \ 264 path = (
265 Preferences.getMultiProject("Workspace") or
265 Utilities.getHomeDir() 266 Utilities.getHomeDir()
267 )
266 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 268 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
267 self, 269 self,
268 self.tr("Export Tracker Entries"), 270 self.tr("Export Tracker Entries"),
269 path, 271 path,
270 self.tr("Text Files (*.txt);;All Files (*)"), 272 self.tr("Text Files (*.txt);;All Files (*)"),

eric ide

mercurial