diff --git a/containmentactions/contextmenu/menu.cpp b/containmentactions/contextmenu/menu.cpp index 66c838f88..7caebcd88 100644 --- a/containmentactions/contextmenu/menu.cpp +++ b/containmentactions/contextmenu/menu.cpp @@ -71,7 +71,6 @@ Menu::~Menu() m_actions.clear(); //! actions - m_removeAction->deleteLater(); m_quitApplication->deleteLater(); } @@ -184,16 +183,16 @@ void Menu::makeActions() this->containment()->actions()->addAction(Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION, m_actions[Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION]); //! Remove Action - m_removeAction = new QAction(QIcon::fromTheme("delete"), "Remove Dock", this); - m_removeAction->setVisible(containment()->isUserConfiguring()); - connect(m_removeAction, &QAction::triggered, [=](){ + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION] = new QAction(QIcon::fromTheme("delete"), "Remove Dock", this); + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]->setVisible(containment()->isUserConfiguring()); + connect(m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION], &QAction::triggered, [=](){ QDBusInterface iface("org.kde.lattedock", "/Latte", "", QDBusConnection::sessionBus()); if (iface.isValid()) { iface.call("removeView", containment()->id()); } }); - this->containment()->actions()->addAction(Latte::Data::ContextMenu::REMOVEVIEWACTION, m_removeAction); + this->containment()->actions()->addAction(Latte::Data::ContextMenu::REMOVEVIEWACTION, m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]); //! Signals connect(this->containment(), &Plasma::Containment::userConfiguringChanged, this, &Menu::onUserConfiguringChanged); @@ -229,7 +228,7 @@ QList Menu::contextualActions() actions << m_moveAction; actions << m_actions[Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION]; actions << m_actions[Latte::Data::ContextMenu::EDITVIEWACTION]; - actions << m_removeAction; + actions << m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]; m_data.clear(); m_viewTemplates.clear(); @@ -266,7 +265,7 @@ QList Menu::contextualActions() } const QString removeActionText = (viewType == DockView) ? i18n("&Remove Dock") : i18n("&Remove Panel"); - m_removeAction->setText(removeActionText); + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]->setText(removeActionText); return actions; } @@ -281,8 +280,6 @@ QAction *Menu::action(const QString &name) return m_moveAction; } else if (name == Latte::Data::ContextMenu::QUITLATTEACTION) { return m_quitApplication; - } else if (name == Latte::Data::ContextMenu::REMOVEVIEWACTION) { - return m_removeAction; } if (m_actions.contains(name)) { @@ -294,27 +291,29 @@ QAction *Menu::action(const QString &name) void Menu::onUserConfiguringChanged(const bool &configuring) { - if (!m_actions[Latte::Data::ContextMenu::EDITVIEWACTION] || !m_removeAction) { + if (!m_actions.contains(Latte::Data::ContextMenu::EDITVIEWACTION) + || !m_actions.contains(Latte::Data::ContextMenu::REMOVEVIEWACTION)) { return; } m_actions[Latte::Data::ContextMenu::EDITVIEWACTION]->setVisible(!configuring); m_actions[Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION]->setVisible(configuring); m_moveAction->setVisible(configuring); - m_removeAction->setVisible(configuring); + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]->setVisible(configuring); // because sometimes they are disabled unexpectedly, we should reenable them m_actions[Latte::Data::ContextMenu::EDITVIEWACTION]->setEnabled(true); m_actions[Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION]->setEnabled(true); m_moveAction->setEnabled(true); - m_removeAction->setEnabled(true); + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]->setEnabled(true); } void Menu::updateVisibleActions() { bool configuring = containment()->isUserConfiguring(); - if (!m_actions[Latte::Data::ContextMenu::EDITVIEWACTION] || !m_removeAction) { + if (!m_actions.contains(Latte::Data::ContextMenu::EDITVIEWACTION) + || !m_actions.contains(Latte::Data::ContextMenu::REMOVEVIEWACTION)) { return; } @@ -325,13 +324,13 @@ void Menu::updateVisibleActions() m_actions[Latte::Data::ContextMenu::EDITVIEWACTION]->setVisible(!configuring); m_actions[Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION]->setVisible(configuring); m_moveAction->setVisible(configuring); - m_removeAction->setVisible(configuring); + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]->setVisible(configuring); // because sometimes they are disabled unexpectedly, we should reenable them m_actions[Latte::Data::ContextMenu::EDITVIEWACTION]->setEnabled(true); m_actions[Latte::Data::ContextMenu::EXPORTVIEWTEMPLATEACTION]->setEnabled(true); m_moveAction->setEnabled(true); - m_removeAction->setEnabled(true); + m_actions[Latte::Data::ContextMenu::REMOVEVIEWACTION]->setEnabled(true); } diff --git a/containmentactions/contextmenu/menu.h b/containmentactions/contextmenu/menu.h index f66a53381..b1e6c0a4d 100644 --- a/containmentactions/contextmenu/menu.h +++ b/containmentactions/contextmenu/menu.h @@ -55,7 +55,6 @@ private: QHash m_actions; - QAction *m_removeAction{nullptr}; QAction *m_quitApplication{nullptr}; QAction *m_addViewAction{nullptr};