Allow to restart account

wilder
Laurent Montel 7 years ago
parent df805e322c
commit 84a2ea9f3e
  1. 20
      src/kmmainwidget.cpp
  2. 4
      src/kmmainwidget.h
  3. 3
      src/kmmainwin.rc

@ -3575,6 +3575,10 @@ void KMMainWidget::setupActions()
mAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("configure")), i18n("Account &Settings"), this);
actionCollection()->addAction(QStringLiteral("resource_settings"), mAccountSettings);
connect(mAccountSettings, &QAction::triggered, this, &KMMainWidget::slotAccountSettings);
mRestartAccountSettings = new QAction(QIcon::fromTheme(QStringLiteral("view-refresh")), i18n("Restart Account"), this);
actionCollection()->addAction(QStringLiteral("resource_restart"), mRestartAccountSettings);
connect(mRestartAccountSettings, &QAction::triggered, this, &KMMainWidget::slotRestartAccount);
}
void KMMainWidget::slotAddFavoriteFolder()
@ -4057,8 +4061,10 @@ void KMMainWidget::updateFolderMenu()
}
if (mCurrentCollection.parentCollection() != Akonadi::Collection::root()) {
mGUIClient->unplugActionList(QStringLiteral("resource_settings"));
mGUIClient->unplugActionList(QStringLiteral("resource_restart"));
} else {
mGUIClient->plugActionList(QStringLiteral("resource_settings"), {mAccountSettings});
mGUIClient->plugActionList(QStringLiteral("resource_restart"), {mRestartAccountSettings});
}
mGUIClient->unplugActionList(QStringLiteral("collectionview_actionlist"));
@ -4603,6 +4609,20 @@ void KMMainWidget::slotAccountSettings()
instance.configure(this);
}
void KMMainWidget::slotRestartAccount()
{
if (!mCurrentCollection.isValid() || mCurrentCollection.parentCollection() != Akonadi::Collection::root()) {
return;
}
auto instance = Akonadi::AgentManager::self()->instance(mCurrentCollection.resource());
if (!instance.isValid()) {
return;
}
instance.restart();
}
void KMMainWidget::savePaneSelection()
{
if (mMessagePane) {

@ -506,7 +506,6 @@ private Q_SLOTS:
void slotRedirectCurrentMessage();
void slotEditCurrentVacation();
void slotReplyMessageTo(const KMime::Message::Ptr &message, bool replyToAll);
void slotAccountSettings();
private:
void slotSetFocusToViewer();
void deleteSelectedMessages(bool confirmDelete); // completely delete message
@ -521,6 +520,8 @@ private:
QAction *filterToAction(MailCommon::MailFilter *filter);
Akonadi::Collection::List applyFilterOnCollection(bool recursive);
void setShowStatusBarMessage(const QString &msg);
void slotRestartAccount();
void slotAccountSettings();
// Message actions
QAction *mDeleteAction = nullptr;
@ -536,6 +537,7 @@ private:
QAction *mArchiveAction = nullptr;
QAction *mSelectAllMessages = nullptr;
KActionMenuTransport *mSendActionMenu = nullptr;
QAction *mRestartAccountSettings = nullptr;
// Filter actions
KActionMenu *mFilterMenu = nullptr;
QAction *mExpireConfigAction = nullptr;

@ -2,7 +2,7 @@
the same menu entries at the same place in KMail and Kontact -->
<!DOCTYPE gui>
<gui version="541" name="kmmainwin" translationDomain="kmail">
<gui version="542" name="kmmainwin" translationDomain="kmail">
<MenuBar>
<Menu noMerge="1" name="file" >
<text>&amp;File</text>
@ -287,6 +287,7 @@
<Action name="folder_shortcut_command"/>
<ActionList name="akonadi_collection_collectionproperties_actionlist"/>
<ActionList name="resource_settings" />
<ActionList name="resource_restart" />
<Separator/>
<ActionList name="collectionview_actionlist" />
</Menu>

Loading…
Cancel
Save