/* This file is part of the KDE project Copyright (C) 2003 Sven L�ppken This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "summaryview_plugin.h" #include "summaryview_part.h" #include "kmail-version.h" #include "kmailinterface.h" #include #include #include #include #include #include #include EXPORT_KONTACT_PLUGIN(SummaryView, summary) SummaryView::SummaryView(KontactInterface::Core *core, const QVariantList &) : KontactInterface::Plugin(core, core, nullptr), mPart(nullptr) { mSyncAction = new KSelectAction(QIcon::fromTheme(QStringLiteral("view-refresh")), i18n("Sync All"), this); actionCollection()->addAction(QStringLiteral("kontact_summary_sync"), mSyncAction); connect(mSyncAction, static_cast(&KSelectAction::triggered), this, &SummaryView::syncAccount); connect(mSyncAction->menu(), &QMenu::aboutToShow, this, &SummaryView::fillSyncActionSubEntries); insertSyncAction(mSyncAction); fillSyncActionSubEntries(); } void SummaryView::fillSyncActionSubEntries() { QStringList menuItems; menuItems.append(i18nc("@action:inmenu sync everything", "All")); org::kde::kmail::kmail kmail(QStringLiteral("org.kde.kmail"), QStringLiteral("/KMail"), QDBusConnection::sessionBus()); const QDBusReply reply = kmail.accounts(); if (reply.isValid()) { menuItems << reply.value(); } mSyncAction->clear(); mSyncAction->setItems(menuItems); } void SummaryView::syncAccount(const QString &account) { if (account == i18nc("sync everything", "All")) { doSync(); } else { org::kde::kmail::kmail kmail(QStringLiteral("org.kde.kmail"), QStringLiteral("/KMail"), QDBusConnection::sessionBus()); kmail.checkAccount(account); } fillSyncActionSubEntries(); } SummaryView::~SummaryView() { } void SummaryView::doSync() { if (mPart) { mPart->updateSummaries(); } const QList pluginList = core()->pluginList(); for (const KontactInterface::Plugin *i : pluginList) { // execute all sync actions but our own const QList actList = i->syncActions(); for (QAction *j : actList ) { if (j != mSyncAction) { j->trigger(); } } } fillSyncActionSubEntries(); } KParts::ReadOnlyPart *SummaryView::createPart() { mPart = new SummaryViewPart(core(), aboutData(), this); mPart->setObjectName(QStringLiteral("summaryPart")); return mPart; } const KAboutData SummaryView::aboutData() { KAboutData aboutData = KAboutData( QStringLiteral("kontactsummary"), i18n("Kontact Summary"), QStringLiteral(KDEPIM_VERSION), i18n("Kontact Summary View"), KAboutLicense::LGPL, i18n("(c) 2003-2017 The Kontact developers")); aboutData.addAuthor(i18n("Sven Lueppken"), QString(), QStringLiteral("sven@kde.org")); aboutData.addAuthor(i18n("Cornelius Schumacher"), QString(), QStringLiteral("schumacher@kde.org")); aboutData.addAuthor(i18n("Tobias Koenig"), QString(), QStringLiteral("tokoe@kde.org")); aboutData.setProductName(QByteArrayLiteral("kontact/summary")); return aboutData; } #include "summaryview_plugin.moc"