123 menu.addSeparator() |
123 menu.addSeparator() |
124 menu.addAction(self.tr("Import"), self.__importEntries) |
124 menu.addAction(self.tr("Import"), self.__importEntries) |
125 menu.addAction(self.tr("Export Selected"), self.__exportSelectedEntries)\ |
125 menu.addAction(self.tr("Export Selected"), self.__exportSelectedEntries)\ |
126 .setEnabled(len(self.entriesList.selectedItems()) != 0) |
126 .setEnabled(len(self.entriesList.selectedItems()) != 0) |
127 menu.addAction(self.tr("Export All"), self.__exportEntries) |
127 menu.addAction(self.tr("Export All"), self.__exportEntries) |
|
128 menu.addSeparator() |
|
129 menu.addAction(self.tr("Remove duplicates"), self.__removeDuplicates) |
|
130 menu.addAction(self.tr("Merge duplicates"), self.__mergeDuplicates) |
128 menu.exec_(QCursor.pos()) |
131 menu.exec_(QCursor.pos()) |
129 |
132 |
130 def __editEntry(self): |
133 def __editEntry(self): |
131 """ |
134 """ |
132 Private slot to edit the selected tracker entry. |
135 Private slot to edit the selected tracker entry. |
220 ids.append(eid) |
223 ids.append(eid) |
221 |
224 |
222 if ids: |
225 if ids: |
223 self.__exportEntries(ids=ids) |
226 self.__exportEntries(ids=ids) |
224 |
227 |
|
228 def __removeDuplicates(self): |
|
229 """ |
|
230 Private slot to remove duplicate entries. |
|
231 """ |
|
232 res = E5MessageBox.yesNo(self, |
|
233 self.trUtf8("Remove Duplicate Tracker Entries"), |
|
234 self.trUtf8("""Are you sure you want to remove duplicate tracker entries?""" |
|
235 """ Only the one with the longest duration will be kept.""")) |
|
236 if res: |
|
237 self.__tracker.removeDuplicateTrackerEntries() |
|
238 |
|
239 def __mergeDuplicates(self): |
|
240 """ |
|
241 Private slot to merge duplicate entries. |
|
242 """ |
|
243 res = E5MessageBox.yesNo(self, |
|
244 self.trUtf8("Merge Duplicate Tracker Entries"), |
|
245 self.trUtf8("""Are you sure you want to merge duplicate tracker entries?""" |
|
246 """ The durations of duplicate ones will be added.""")) |
|
247 if res: |
|
248 self.__tracker.mergeDuplicateTrackerEntries() |
|
249 |
225 def __insertEntry(self, entry, index=-1): |
250 def __insertEntry(self, entry, index=-1): |
226 """ |
251 """ |
227 Private method to insert a tracker entry into the list. |
252 Private method to insert a tracker entry into the list. |
228 |
253 |
229 @param entry reference to the tracker entry (TimeTrackEntry) |
254 @param entry reference to the tracker entry (TimeTrackEntry) |