Skip to content

Commit 67c3d7b

Browse files
committed
Add "Mark all messages unread" context menu item
- account context menu how has a "Mark all messages unread" item - folders now have a context menu as well and it has this item too
1 parent ca031dc commit 67c3d7b

File tree

1 file changed

+78
-38
lines changed

1 file changed

+78
-38
lines changed

src/bitmessageqt/__init__.py

Lines changed: 78 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,10 @@ def init_identities_popup_menu(self, connectSignal=True):
260260
_translate(
261261
"MainWindow", "Email gateway"),
262262
self.on_action_EmailGatewayDialog)
263+
self.actionMarkAllRead = self.ui.addressContextMenuToolbarYourIdentities.addAction(
264+
_translate(
265+
"MainWindow", "Mark all messages as read"),
266+
self.on_action_MarkAllRead)
263267

264268
self.ui.treeWidgetYourIdentities.setContextMenuPolicy(
265269
QtCore.Qt.CustomContextMenu)
@@ -2627,7 +2631,40 @@ def on_action_EmailGatewayDialog(self):
26272631
#print "well nothing"
26282632
# shared.writeKeysFile()
26292633
# self.rerenderInboxToLabels()
2630-
2634+
2635+
def on_action_MarkAllRead(self):
2636+
if QtGui.QMessageBox.question(self, "Marking all messages as read?", _translate("MainWindow", "Are you sure you would like to mark all messages read?"), QMessageBox.Yes|QMessageBox.No) != QMessageBox.Yes:
2637+
return
2638+
addressAtCurrentRow = self.getCurrentAccount()
2639+
tableWidget = self.getCurrentMessagelist()
2640+
2641+
if tableWidget.rowCount() == 0:
2642+
return
2643+
2644+
msgids = []
2645+
2646+
font = QFont()
2647+
font.setBold(False)
2648+
2649+
for i in range(0, tableWidget.rowCount()):
2650+
msgids.append(str(tableWidget.item(
2651+
i, 3).data(Qt.UserRole).toPyObject()))
2652+
tableWidget.item(i, 0).setUnread(False)
2653+
tableWidget.item(i, 1).setUnread(False)
2654+
tableWidget.item(i, 2).setUnread(False)
2655+
tableWidget.item(i, 3).setFont(font)
2656+
2657+
markread = 0
2658+
if self.getCurrentFolder() == 'sent':
2659+
markread = sqlExecute(
2660+
"UPDATE sent SET read = 1 WHERE ackdata IN(%s) AND read=0" %(",".join("?"*len(msgids))), *msgids)
2661+
else:
2662+
markread = sqlExecute(
2663+
"UPDATE inbox SET read = 1 WHERE msgid IN(%s) AND read=0" %(",".join("?"*len(msgids))), *msgids)
2664+
2665+
if markread > 0:
2666+
self.propagateUnreadCount(addressAtCurrentRow, self.getCurrentFolder(), None, 0)
2667+
26312668
def click_NewAddressDialog(self):
26322669
addresses = []
26332670
for addressInKeysFile in getSortedAccounts():
@@ -3282,19 +3319,20 @@ def on_action_SubscriptionsDisable(self):
32823319

32833320
def on_context_menuSubscriptions(self, point):
32843321
currentItem = self.getCurrentItem()
3285-
if not isinstance(currentItem, Ui_AddressWidget):
3286-
return
32873322
self.popMenuSubscriptions = QtGui.QMenu(self)
3288-
self.popMenuSubscriptions.addAction(self.actionsubscriptionsNew)
3289-
self.popMenuSubscriptions.addAction(self.actionsubscriptionsDelete)
3290-
self.popMenuSubscriptions.addSeparator()
3291-
if currentItem.isEnabled:
3292-
self.popMenuSubscriptions.addAction(self.actionsubscriptionsDisable)
3293-
else:
3294-
self.popMenuSubscriptions.addAction(self.actionsubscriptionsEnable)
3295-
self.popMenuSubscriptions.addAction(self.actionsubscriptionsSetAvatar)
3296-
self.popMenuSubscriptions.addSeparator()
3297-
self.popMenuSubscriptions.addAction(self.actionsubscriptionsClipboard)
3323+
if isinstance(currentItem, Ui_AddressWidget):
3324+
self.popMenuSubscriptions.addAction(self.actionsubscriptionsNew)
3325+
self.popMenuSubscriptions.addAction(self.actionsubscriptionsDelete)
3326+
self.popMenuSubscriptions.addSeparator()
3327+
if currentItem.isEnabled:
3328+
self.popMenuSubscriptions.addAction(self.actionsubscriptionsDisable)
3329+
else:
3330+
self.popMenuSubscriptions.addAction(self.actionsubscriptionsEnable)
3331+
self.popMenuSubscriptions.addAction(self.actionsubscriptionsSetAvatar)
3332+
self.popMenuSubscriptions.addSeparator()
3333+
self.popMenuSubscriptions.addAction(self.actionsubscriptionsClipboard)
3334+
self.popMenuSubscriptions.addSeparator()
3335+
self.popMenuSubscriptions.addAction(self.actionMarkAllRead)
32983336
self.popMenuSubscriptions.exec_(
32993337
self.ui.treeWidgetSubscriptions.mapToGlobal(point))
33003338

@@ -3629,39 +3667,41 @@ def setAvatar(self, addressAtCurrentRow):
36293667

36303668
def on_context_menuYourIdentities(self, point):
36313669
currentItem = self.getCurrentItem()
3632-
if not isinstance(currentItem, Ui_AddressWidget):
3633-
return
36343670
self.popMenuYourIdentities = QtGui.QMenu(self)
3635-
self.popMenuYourIdentities.addAction(self.actionNewYourIdentities)
3636-
self.popMenuYourIdentities.addSeparator()
3637-
self.popMenuYourIdentities.addAction(self.actionClipboardYourIdentities)
3638-
self.popMenuYourIdentities.addSeparator()
3639-
if currentItem.isEnabled:
3640-
self.popMenuYourIdentities.addAction(self.actionDisableYourIdentities)
3641-
else:
3642-
self.popMenuYourIdentities.addAction(self.actionEnableYourIdentities)
3643-
self.popMenuYourIdentities.addAction(self.actionSetAvatarYourIdentities)
3644-
self.popMenuYourIdentities.addAction(self.actionSpecialAddressBehaviorYourIdentities)
3645-
self.popMenuYourIdentities.addAction(self.actionEmailGateway)
3671+
if isinstance(currentItem, Ui_AddressWidget):
3672+
self.popMenuYourIdentities.addAction(self.actionNewYourIdentities)
3673+
self.popMenuYourIdentities.addSeparator()
3674+
self.popMenuYourIdentities.addAction(self.actionClipboardYourIdentities)
3675+
self.popMenuYourIdentities.addSeparator()
3676+
if currentItem.isEnabled:
3677+
self.popMenuYourIdentities.addAction(self.actionDisableYourIdentities)
3678+
else:
3679+
self.popMenuYourIdentities.addAction(self.actionEnableYourIdentities)
3680+
self.popMenuYourIdentities.addAction(self.actionSetAvatarYourIdentities)
3681+
self.popMenuYourIdentities.addAction(self.actionSpecialAddressBehaviorYourIdentities)
3682+
self.popMenuYourIdentities.addAction(self.actionEmailGateway)
3683+
self.popMenuYourIdentities.addSeparator()
3684+
self.popMenuYourIdentities.addAction(self.actionMarkAllRead)
36463685
self.popMenuYourIdentities.exec_(
36473686
self.ui.treeWidgetYourIdentities.mapToGlobal(point))
36483687

36493688
# TODO make one popMenu
36503689
def on_context_menuChan(self, point):
36513690
currentItem = self.getCurrentItem()
3652-
if not isinstance(currentItem, Ui_AddressWidget):
3653-
return
36543691
self.popMenu = QtGui.QMenu(self)
3655-
self.popMenu.addAction(self.actionNew)
3656-
self.popMenu.addAction(self.actionDelete)
3657-
self.popMenu.addSeparator()
3658-
self.popMenu.addAction(self.actionClipboard)
3659-
self.popMenu.addSeparator()
3660-
if currentItem.isEnabled:
3661-
self.popMenu.addAction(self.actionDisable)
3662-
else:
3663-
self.popMenu.addAction(self.actionEnable)
3664-
self.popMenu.addAction(self.actionSetAvatar)
3692+
if isinstance(currentItem, Ui_AddressWidget):
3693+
self.popMenu.addAction(self.actionNew)
3694+
self.popMenu.addAction(self.actionDelete)
3695+
self.popMenu.addSeparator()
3696+
self.popMenu.addAction(self.actionClipboard)
3697+
self.popMenu.addSeparator()
3698+
if currentItem.isEnabled:
3699+
self.popMenu.addAction(self.actionDisable)
3700+
else:
3701+
self.popMenu.addAction(self.actionEnable)
3702+
self.popMenu.addAction(self.actionSetAvatar)
3703+
self.popMenu.addSeparator()
3704+
self.popMenu.addAction(self.actionMarkAllRead)
36653705
self.popMenu.exec_(
36663706
self.ui.treeWidgetChans.mapToGlobal(point))
36673707

0 commit comments

Comments
 (0)