8#include "config-xmlgui.h"
14#include <kactionmenu.h>
15#include <klocalizedstring.h>
23#if defined(KCONFIG_BEFORE_5_24)
24# define authorizeAction authorizeKAction
29const char actionListName[] =
"show_menu_and_toolbar_actionlist";
31const char guiDescription[] =
""
32 "<!DOCTYPE kpartgui><kpartgui name=\"StandardToolBarMenuHandler\">"
34 " <Menu name=\"settings\">"
35 " <ActionList name=\"%1\" />"
44 QLinkedList<KisToolBar *> &oldToolBarList)
45 : m_actionCollection(actionCollection), m_mainWindow(mainWindow), m_needsRebuild(false)
54 if (!oldToolBarList.contains(toolBar)) {
55 m_needsRebuild =
true;
58 m_toolBars.append(toolBar);
61 if (!m_needsRebuild) {
62 m_needsRebuild = (oldToolBarList.count() != m_toolBars.count());
66 bool needsRebuild()
const
68 return m_needsRebuild;
75 if (!m_needsRebuild) {
83 if (m_toolBarActions.count() == 0) {
87 if (m_toolBarActions.count() == 1) {
89 action->setText(KStandardShortcut::label(KStandardShortcut::ShowToolbar));
90 return m_toolBarActions;
93 KActionMenu *menuAction =
new KActionMenu(i18n(
"Toolbars Shown"), m_actionCollection);
94 m_actionCollection->addAction(QStringLiteral(
"toolbars_submenu_action"), menuAction);
96 Q_FOREACH (QAction *action, m_toolBarActions) {
97 menuAction->menu()->addAction(action);
100 actions.append(menuAction);
105 const QLinkedList<KisToolBar *> &toolBars()
const
115 toolBar->windowTitle(),
117 m_actionCollection->addAction(toolBar->objectName(), action);
120 m_toolBarActions.append(action);
126 QLinkedList<KisToolBar *> m_toolBars;
129 bool m_needsRebuild : 1;
169 QString completeDescription = QString::fromLatin1(guiDescription)
170 .arg(QLatin1String(actionListName));
178 Q_FOREACH (QAction *
action, actions) {
179 connectToActionContainer(
action);
185 uint containerCount =
action->associatedWidgets().count();
187 for (
uint i = 0; i < containerCount; ++i) {
188 connectToActionContainer(
action->associatedWidgets().value(i));
194 QMenu *popupMenu = qobject_cast<QMenu *>(container);
199 connect(popupMenu, SIGNAL(aboutToShow()),
239 if (!builder.needsRebuild()) {
260#include "moc_ktoolbarhandler_p.cpp"
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KDE top level main window with predefined action layout
A container for a set of QAction objects.
virtual QDomDocument domDocument() const
QAction * action(const char *name) const
void unplugActionList(const QString &name)
KisKXMLGUIFactory * factory() const
void setXML(const QString &document, bool merge=false)
void plugActionList(const QString &name, const QList< QAction * > &actionList)
virtual KisKActionCollection * actionCollection() const
QPainterPath create(const char32_t codepoint, double height)
Creates a tofu missing glyph indicator representing the provided Unicode codepoint.