Git commit 680b496f201f87b7fd93b3ed617a24337ccb7d63 by Jan Kundr?t. Committed on 25/05/2013 at 14:31. Pushed by jkt into branch 'addressbook'.
GUI: integrate the addressbook with Trojita M +14 -3 src/Gui/Window.cpp M +7 -0 src/Gui/Window.h http://commits.kde.org/trojita/680b496f201f87b7fd93b3ed617a24337ccb7d63 diff --git a/src/Gui/Window.cpp b/src/Gui/Window.cpp index 6ff1b54..293d984 100644 --- a/src/Gui/Window.cpp +++ b/src/Gui/Window.cpp @@ -148,6 +148,7 @@ void MainWindow::defineActions() shortcutHandler->defineAction(QLatin1String("action_reply_all"), QLatin1String("mail-reply-all"), tr("Reply to &All"), tr("Ctrl+Alt+Shift+R")); shortcutHandler->defineAction(QLatin1String("action_reply_list"), QLatin1String("mail-reply-list"), tr("Reply to &Mailing List"), tr("Ctrl+L")); shortcutHandler->defineAction(QLatin1String("action_reply_guess"), QString(), tr("Reply by &Guess"), tr("Ctrl+R")); + shortcutHandler->defineAction(QLatin1String("action_contact_editor"), QLatin1String("contact-unknown"), tr("Address Book...")); } void MainWindow::createActions() @@ -424,6 +425,7 @@ void MainWindow::createMenus() { QMenu *imapMenu = menuBar()->addMenu(tr("&IMAP")); imapMenu->addMenu(m_composeMenu); + imapMenu->addAction(ShortcutHandler::instance()->createAction(QLatin1String("action_contact_editor"), this, SLOT(invokeContactEditor()), this)); imapMenu->addAction(m_replyGuess); imapMenu->addAction(m_replyPrivate); imapMenu->addAction(m_replyAll); @@ -1461,9 +1463,18 @@ void MainWindow::slotManageContact(const QUrl &url) if (!Imap::Message::MailAddress::fromUrl(addr, url, QLatin1String("x-trojita-manage-contact"))) return; - BE::Contacts *contacts = new BE::Contacts(dynamic_cast<AbookAddressbook*>(m_addressBook)); - contacts->show(); - contacts->manageContact(addr.mailbox + QLatin1Char('@') + addr.host, addr.name); + invokeContactEditor(); + m_contactsWidget->manageContact(addr.mailbox + QLatin1Char('@') + addr.host, addr.name); +} + +void MainWindow::invokeContactEditor() +{ + if (m_contactsWidget) + return; + + m_contactsWidget = new BE::Contacts(dynamic_cast<AbookAddressbook*>(m_addressBook)); + m_contactsWidget->setAttribute(Qt::WA_DeleteOnClose, true); + m_contactsWidget->show(); } ComposeWidget *MainWindow::invokeComposeDialog(const QString &subject, const QString &body, diff --git a/src/Gui/Window.h b/src/Gui/Window.h index 64a9f32..9ab7af2 100644 --- a/src/Gui/Window.h +++ b/src/Gui/Window.h @@ -25,6 +25,7 @@ #include <QMainWindow> #include <QModelIndex> +#include <QPointer> #include <QSystemTrayIcon> #include "Composer/Recipients.h" @@ -42,6 +43,10 @@ class QSslError; class QToolButton; class QTreeView; +namespace BE { +class Contacts; +} + namespace Composer { class SenderIdentitiesModel; @@ -168,6 +173,7 @@ private slots: void slotIconActivated(const QSystemTrayIcon::ActivationReason reason); void slotToggleSysTray(); + void invokeContactEditor(); private: void defineActions(); void createMenus(); @@ -282,6 +288,7 @@ private: bool m_ignoreStoredPassword; AbstractAddressbook *m_addressBook; + QPointer<BE::Contacts> m_contactsWidget; MainWindow(const MainWindow &); // don't implement MainWindow &operator=(const MainWindow &); // don't implement
