[kde-doc-english] [trojita] src/Gui: GUI: add a "smart" replying mode which will just pick the "default action"

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


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

GUI: add a "smart" replying mode which will just pick the "default action"

It's better to call this a "guess", not a "smart mode", really.

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

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

diff --git a/src/Gui/Window.cpp b/src/Gui/Window.cpp
index 4cd9f8a..d165f45 100644
--- a/src/Gui/Window.cpp
+++ b/src/Gui/Window.cpp
@@ -274,6 +274,10 @@ void MainWindow::createActions()
     m_replyList->setEnabled(false);
     connect(m_replyList, SIGNAL(triggered()), this, SLOT(slotReplyList()));
 
+    m_replyGuess = new QAction(tr("Reply by Guess"), this);
+    m_replyGuess->setEnabled(true);
+    connect(m_replyGuess, SIGNAL(triggered()), this, SLOT(slotReplyGuess()));
+
     actionThreadMsgList = new QAction(tr("Show Messages in Threads"), this);
     actionThreadMsgList->setCheckable(true);
     // This action is enabled/disabled by model's capabilities
@@ -394,6 +398,7 @@ void MainWindow::createMenus()
 {
     QMenu *imapMenu = menuBar()->addMenu(tr("IMAP"));
     imapMenu->addAction(composeMail);
+    imapMenu->addAction(m_replyGuess);
     imapMenu->addAction(m_replyPrivate);
     imapMenu->addAction(m_replyAll);
     imapMenu->addAction(m_replyList);
@@ -1217,6 +1222,7 @@ void MainWindow::updateActionsOnlineOffline(bool online)
     markAsRead->setEnabled(online);
     showImapCapabilities->setEnabled(online);
     if (!online) {
+        m_replyGuess->setEnabled(false);
         m_replyPrivate->setEnabled(false);
         m_replyAll->setEnabled(false);
         m_replyList->setEnabled(false);
@@ -1229,6 +1235,7 @@ void MainWindow::slotUpdateMessageActions()
     m_replyPrivate->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_PRIVATE, msgView->currentMessage(), dummy));
     m_replyAll->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_ALL, msgView->currentMessage(), dummy));
     m_replyList->setEnabled(Composer::Util::replyRecipientList(Composer::REPLY_LIST, msgView->currentMessage(), dummy));
+    m_replyGuess->setEnabled(m_replyPrivate->isEnabled() || m_replyAll->isEnabled() || m_replyList->isEnabled());
     if (m_replyList->isEnabled()) {
         m_replyButton->setDefaultAction(m_replyList);
     } else {
@@ -1256,6 +1263,17 @@ void MainWindow::slotReplyList()
     msgView->reply(this, Composer::REPLY_LIST);
 }
 
+void MainWindow::slotReplyGuess()
+{
+    if (m_replyButton->defaultAction() == m_replyAll) {
+        slotReplyAll();
+    } else if (m_replyButton->defaultAction() == m_replyList) {
+        slotReplyList();
+    } else {
+        slotReplyTo();
+    }
+}
+
 void MainWindow::slotComposeMailUrl(const QUrl &url)
 {
     Q_ASSERT(url.scheme().toLower() == QLatin1String("mailto"));
diff --git a/src/Gui/Window.h b/src/Gui/Window.h
index e153406..670c690 100644
--- a/src/Gui/Window.h
+++ b/src/Gui/Window.h
@@ -114,6 +114,7 @@ private slots:
     void slotReplyTo();
     void slotReplyAll();
     void slotReplyList();
+    void slotReplyGuess();
     void slotUpdateMessageActions();
     void handleMarkAsRead(bool);
     void handleMarkAsDeleted(bool);
@@ -219,6 +220,7 @@ private:
     QAction *m_replyPrivate;
     QAction *m_replyAll;
     QAction *m_replyList;
+    QAction *m_replyGuess;
     QAction *expunge;
     QAction *createChildMailbox;
     QAction *createTopMailbox;



More information about the kde-doc-english mailing list