[kde-doc-english] [trojita] src/Gui: GUI: add the "Reply to All but Me" action and make it preferred over the "Reply to All" thing

Jan Kundrát jkt at flaska.net
Sun Feb 3 14:27:49 UTC 2013


Git commit bbdaf4ce059bdfa95f644c2fc20235006dd1a5be by Jan Kundrát.
Committed on 03/02/2013 at 15:02.
Pushed by jkt into branch 'master'.

GUI: add the "Reply to All but Me" action and make it preferred over the "Reply to All" thing

M  +24   -6    src/Gui/Window.cpp
M  +2    -0    src/Gui/Window.h

http://commits.kde.org/trojita/bbdaf4ce059bdfa95f644c2fc20235006dd1a5be

diff --git a/src/Gui/Window.cpp b/src/Gui/Window.cpp
index 6c218ce..12e2932 100644
--- a/src/Gui/Window.cpp
+++ b/src/Gui/Window.cpp
@@ -266,9 +266,14 @@ void MainWindow::createActions()
     m_replyPrivate->setShortcut(tr("Ctrl+Shift+A"));
     connect(m_replyPrivate, SIGNAL(triggered()), this, SLOT(slotReplyTo()));
 
+    m_replyAllButMe = new QAction(tr("Reply to All but Me"), this);
+    m_replyAllButMe->setEnabled(false);
+    m_replyAllButMe->setShortcut(tr("Ctrl+Shift+R"));
+    connect(m_replyAllButMe, SIGNAL(triggered()), this, SLOT(slotReplyAllButMe()));
+
     m_replyAll = new QAction(tr("Reply to All"), this);
     m_replyAll->setEnabled(false);
-    m_replyAll->setShortcut(tr("Ctrl+Shift+R"));
+    m_replyAll->setShortcut(tr("Ctrl+Alt+Shift+R"));
     connect(m_replyAll, SIGNAL(triggered()), this, SLOT(slotReplyAll()));
 
     m_replyList = new QAction(tr("Reply to Mailing List"), this);
@@ -373,6 +378,7 @@ void MainWindow::createActions()
     m_replyButton->setPopupMode(QToolButton::MenuButtonPopup);
     m_replyMenu = new QMenu(m_replyButton);
     m_replyMenu->addAction(m_replyPrivate);
+    m_replyMenu->addAction(m_replyAllButMe);
     m_replyMenu->addAction(m_replyAll);
     m_replyMenu->addAction(m_replyList);
     m_replyButton->setMenu(m_replyMenu);
@@ -404,6 +410,7 @@ void MainWindow::createMenus()
     imapMenu->addAction(m_replyGuess);
     imapMenu->addAction(m_replyPrivate);
     imapMenu->addAction(m_replyAll);
+    imapMenu->addAction(m_replyAllButMe);
     imapMenu->addAction(m_replyList);
     imapMenu->addAction(expunge);
     imapMenu->addSeparator()->setText(tr("Network Access"));
@@ -1228,6 +1235,7 @@ void MainWindow::updateActionsOnlineOffline(bool online)
         m_replyGuess->setEnabled(false);
         m_replyPrivate->setEnabled(false);
         m_replyAll->setEnabled(false);
+        m_replyAllButMe->setEnabled(false);
         m_replyList->setEnabled(false);
     }
 }
@@ -1237,19 +1245,22 @@ void MainWindow::slotUpdateMessageActions()
     Composer::RecipientList dummy;
     m_replyPrivate->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_PRIVATE, senderIdentitiesModel(),
                                                                   msgView->currentMessage(), dummy));
+    m_replyAllButMe->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_ALL_BUT_ME, senderIdentitiesModel(),
+                                                                   msgView->currentMessage(), dummy));
+    bool replyAllButMeGoesToMany = dummy.size() > 1;
     m_replyAll->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_ALL, senderIdentitiesModel(),
                                                               msgView->currentMessage(), dummy));
-    bool replyAllGoesToMany = dummy.size() > 1;
     m_replyList->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_LIST, senderIdentitiesModel(),
                                                                msgView->currentMessage(), dummy));
-    m_replyGuess->setEnabled(m_replyPrivate->isEnabled() || m_replyAll->isEnabled() || m_replyList->isEnabled());
+    m_replyGuess->setEnabled(m_replyPrivate->isEnabled() || m_replyAllButMe->isEnabled()
+                             || m_replyAll->isEnabled() || m_replyList->isEnabled());
 
     // Check the default reply mode
     // I suspect this is not going to work for everybody. Suggestions welcome...
     if (m_replyList->isEnabled()) {
         m_replyButton->setDefaultAction(m_replyList);
-    } else if (replyAllGoesToMany && m_replyAll->isEnabled()) {
-        m_replyButton->setDefaultAction(m_replyAll);
+    } else if (replyAllButMeGoesToMany && m_replyAllButMe->isEnabled()) {
+        m_replyButton->setDefaultAction(m_replyAllButMe);
     } else {
         m_replyButton->setDefaultAction(m_replyPrivate);
     }
@@ -1270,6 +1281,11 @@ void MainWindow::slotReplyAll()
     msgView->reply(this, Composer::REPLY_ALL);
 }
 
+void MainWindow::slotReplyAllButMe()
+{
+    msgView->reply(this, Composer::REPLY_ALL_BUT_ME);
+}
+
 void MainWindow::slotReplyList()
 {
     msgView->reply(this, Composer::REPLY_LIST);
@@ -1277,7 +1293,9 @@ void MainWindow::slotReplyList()
 
 void MainWindow::slotReplyGuess()
 {
-    if (m_replyButton->defaultAction() == m_replyAll) {
+    if (m_replyButton->defaultAction() == m_replyAllButMe) {
+        slotReplyAllButMe();
+    } else if (m_replyButton->defaultAction() == m_replyAll) {
         slotReplyAll();
     } else if (m_replyButton->defaultAction() == m_replyList) {
         slotReplyList();
diff --git a/src/Gui/Window.h b/src/Gui/Window.h
index 670c690..ea743f3 100644
--- a/src/Gui/Window.h
+++ b/src/Gui/Window.h
@@ -112,6 +112,7 @@ private slots:
     void slotComposeMail();
     void slotEditDraft();
     void slotReplyTo();
+    void slotReplyAllButMe();
     void slotReplyAll();
     void slotReplyList();
     void slotReplyGuess();
@@ -218,6 +219,7 @@ private:
     QAction *composeMail;
     QAction *m_editDraft;
     QAction *m_replyPrivate;
+    QAction *m_replyAllButMe;
     QAction *m_replyAll;
     QAction *m_replyList;
     QAction *m_replyGuess;


More information about the kde-doc-english mailing list