@@ -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