Changeset View
Changeset View
Standalone View
Standalone View
shell/shellcorona.cpp
Show First 20 Lines • Show All 1703 Lines • ▼ Show 20 Line(s) | |||||
1704 | { | 1704 | { | ||
1705 | if (!sycocaChanges.isEmpty() && !sycocaChanges.contains(QStringLiteral("services"))) { | 1705 | if (!sycocaChanges.isEmpty() && !sycocaChanges.contains(QStringLiteral("services"))) { | ||
1706 | return; | 1706 | return; | ||
1707 | } | 1707 | } | ||
1708 | 1708 | | |||
1709 | delete m_addPanelAction; | 1709 | delete m_addPanelAction; | ||
1710 | m_addPanelAction = nullptr; | 1710 | m_addPanelAction = nullptr; | ||
1711 | 1711 | | |||
1712 | delete m_addPanelsMenu; | 1712 | m_addPanelsMenu.reset(nullptr); | ||
1713 | m_addPanelsMenu = nullptr; | | |||
1714 | 1713 | | |||
1715 | KPluginInfo::List panelContainmentPlugins = Plasma::PluginLoader::listContainmentsOfType(QStringLiteral("Panel")); | 1714 | KPluginInfo::List panelContainmentPlugins = Plasma::PluginLoader::listContainmentsOfType(QStringLiteral("Panel")); | ||
1716 | 1715 | | |||
1717 | auto filter = [](const KPluginMetaData &md) -> bool | 1716 | auto filter = [](const KPluginMetaData &md) -> bool | ||
1718 | { | 1717 | { | ||
1719 | return md.value(QStringLiteral("NoDisplay")) != QStringLiteral("true") && KPluginMetaData::readStringList(md.rawData(), QStringLiteral("X-Plasma-ContainmentCategories")).contains(QStringLiteral("panel")); | 1718 | return md.value(QStringLiteral("NoDisplay")) != QStringLiteral("true") && KPluginMetaData::readStringList(md.rawData(), QStringLiteral("X-Plasma-ContainmentCategories")).contains(QStringLiteral("panel")); | ||
1720 | }; | 1719 | }; | ||
1721 | QList<KPluginMetaData> templates = KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/LayoutTemplate"), QString(), filter); | 1720 | QList<KPluginMetaData> templates = KPackage::PackageLoader::self()->findPackages(QStringLiteral("Plasma/LayoutTemplate"), QString(), filter); | ||
1722 | 1721 | | |||
1723 | if (panelContainmentPlugins.count() + templates.count() == 1) { | 1722 | if (panelContainmentPlugins.count() + templates.count() == 1) { | ||
1724 | m_addPanelAction = new QAction(i18n("Add Panel"), this); | 1723 | m_addPanelAction = new QAction(i18n("Add Panel"), this); | ||
1725 | m_addPanelAction->setData(Plasma::Types::AddAction); | 1724 | m_addPanelAction->setData(Plasma::Types::AddAction); | ||
1726 | connect(m_addPanelAction, SIGNAL(triggered(bool)), this, SLOT(addPanel())); | 1725 | connect(m_addPanelAction, SIGNAL(triggered(bool)), this, SLOT(addPanel())); | ||
1727 | } else if (!panelContainmentPlugins.isEmpty()) { | 1726 | } else if (!panelContainmentPlugins.isEmpty()) { | ||
1728 | m_addPanelsMenu = new QMenu; | 1727 | m_addPanelsMenu.reset(new QMenu); | ||
1729 | m_addPanelAction = m_addPanelsMenu->menuAction(); | 1728 | m_addPanelAction = m_addPanelsMenu->menuAction(); | ||
1730 | m_addPanelAction->setText(i18n("Add Panel")); | 1729 | m_addPanelAction->setText(i18n("Add Panel")); | ||
1731 | m_addPanelAction->setData(Plasma::Types::AddAction); | 1730 | m_addPanelAction->setData(Plasma::Types::AddAction); | ||
1732 | connect(m_addPanelsMenu, &QMenu::aboutToShow, this, &ShellCorona::populateAddPanelsMenu); | 1731 | connect(m_addPanelsMenu.data(), &QMenu::aboutToShow, this, &ShellCorona::populateAddPanelsMenu); | ||
1733 | connect(m_addPanelsMenu, SIGNAL(triggered(QAction*)), this, SLOT(addPanel(QAction*))); | 1732 | connect(m_addPanelsMenu.data(), SIGNAL(triggered(QAction*)), this, SLOT(addPanel(QAction*))); | ||
1734 | } | 1733 | } | ||
1735 | 1734 | | |||
1736 | if (m_addPanelAction) { | 1735 | if (m_addPanelAction) { | ||
1737 | m_addPanelAction->setIcon(QIcon::fromTheme(QStringLiteral("list-add"))); | 1736 | m_addPanelAction->setIcon(QIcon::fromTheme(QStringLiteral("list-add"))); | ||
1738 | actions()->addAction(QStringLiteral("add panel"), m_addPanelAction); | 1737 | actions()->addAction(QStringLiteral("add panel"), m_addPanelAction); | ||
1739 | } | 1738 | } | ||
1740 | } | 1739 | } | ||
1741 | 1740 | | |||
▲ Show 20 Lines • Show All 374 Lines • Show Last 20 Lines |