16#include "config-xmlgui.h"
31#include <QDBusConnection>
33#include <QDomDocument>
42#include <ktoggleaction.h>
45#include <klocalizedstring.h>
46#include <kaboutdata.h>
47#include <ksharedconfig.h>
48#include <kconfiggroup.h>
77 d->showHelpMenu =
true;
78 d->toolBarHandler = 0;
79 d->showStatusBarAction = 0;
89 if (!
d->toolBarHandler) {
93 return d->toolBarHandler->toolBarMenuAction();
99 if (
d->toolBarHandler) {
100 d->toolBarHandler->setupActions();
114 if (ev->type() == QEvent::Polish) {
116 QDBusConnection::ExportScriptableSlots |
117 QDBusConnection::ExportScriptableProperties |
118 QDBusConnection::ExportNonScriptableSlots |
119 QDBusConnection::ExportNonScriptableProperties |
120 QDBusConnection::ExportChildObjects);
129 d->showHelpMenu = showHelpMenu;
135 return d->showHelpMenu;
143 connect(
d->factory, SIGNAL(makingChanges(
bool)),
144 this, SLOT(_k_slotFactoryMakingChanges(
bool)));
152 KConfigGroup cg(KSharedConfig::openConfig(),
"");
154 if (!
d->toolBarEditor) {
156 d->toolBarEditor->setAttribute(Qt::WA_DeleteOnClose);
159 d->toolBarEditor->show();
169 KConfigGroup cg(KSharedConfig::openConfig(),
"");
175 setupGUI(QSize(), options, xmlfile);
181 if (options &
Keys) {
185 if ((options &
StatusBar) && statusBar()) {
195 d->defaultSize = defaultSize;
201 if (
d->defaultSize.isValid()) {
202 resize(
d->defaultSize);
203 }
else if (isHidden()) {
207 if (options &
Save) {
226 QMenuBar *mb = menuBar();
234 if (
d->showHelpMenu) {
237 d->helpMenu =
new KisKHelpMenu(
this, KAboutData::applicationData(),
true);
247 if (helpContentsAction) {
248 actions->
addAction(helpContentsAction->objectName(), helpContentsAction);
250 if (whatsThisAction) {
251 actions->
addAction(whatsThisAction->objectName(), whatsThisAction);
253 if (reportBugAction) {
254 actions->
addAction(reportBugAction->objectName(), reportBugAction);
256 if (switchLanguageAction) {
257 actions->
addAction(switchLanguageAction->objectName(), switchLanguageAction);
259 if (aboutAppAction) {
260 actions->
addAction(aboutAppAction->objectName(), aboutAppAction);
262 if (aboutKdeAction) {
263 actions->
addAction(aboutKdeAction->objectName(), aboutKdeAction);
267 const QString windowXmlFile = xmlfile.isNull() ?
componentName() + QStringLiteral(
"ui.xmlgui") : xmlfile;
271 qWarning() <<
"You called setXMLFile(" <<
xmlFile() <<
") and then createGUI or setupGUI,"
272 <<
"which also calls setXMLFile and will overwrite the file you have previously set.\n"
273 <<
"You should call createGUI(" <<
xmlFile() <<
") or setupGUI(<options>," <<
xmlFile() <<
") instead.";
308 if (
d->toolBarHandler) {
318 if (!
d->toolBarHandler) {
326 delete d->toolBarHandler;
327 d->toolBarHandler = 0;
334 return (
d->toolBarHandler);
340 if (!
d->showStatusBarAction) {
342 QStatusBar *sb = statusBar();
343 connect(
d->showStatusBarAction, SIGNAL(toggled(
bool)), sb, SLOT(setVisible(
bool)));
344 d->showStatusBarAction->setChecked(sb->isHidden());
348 d->showStatusBarAction->setText(tmpStatusBar->text());
349 d->showStatusBarAction->setWhatsThis(tmpStatusBar->whatsThis());
369 QStatusBar *sb = findChild<QStatusBar *>();
370 if (sb &&
d->showStatusBarAction) {
371 d->showStatusBarAction->setChecked(!sb->isHidden());
382#include "moc_kxmlguiwindow.cpp"
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisKXMLGUIFactory * factory
KToggleAction * showStatusBarAction
void _k_slotFactoryMakingChanges(bool b)
QPointer< KisKEditToolBar > toolBarEditor
KDEPrivate::ToolBarHandler * toolBarHandler
KDE top level main window with predefined action layout
void createGUI(const QString &xmlfile=QString())
void finalizeGUI(KisKXMLGUIClient *client) override
QAction * toolBarMenuAction()
void createStandardStatusBarAction()
void setStandardToolBarMenuEnabled(bool enable)
void applyMainWindowSettings(const KConfigGroup &config) override
bool isStandardToolBarMenuEnabled() const
void setupToolbarMenuActions()
virtual void slotStateChanged(const QString &newstate)
virtual void configureToolbars()
void setHelpMenuEnabled(bool showHelpMenu=true)
bool event(QEvent *event) override
~KXmlGuiWindow() override
Destructor.
virtual void saveNewToolbarConfig()
virtual KisKXMLGUIFactory * guiFactory()
bool isHelpMenuEnabled() const
KXmlGuiWindow(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
void setupGUI(StandardWindowOptions options=Default, const QString &xmlfile=QString())
A container for a set of QAction objects.
Q_INVOKABLE QAction * addAction(const QString &name, QAction *action)
D-Bus interface to KisKMainWindow.
KDE top level main window
void setAutoSaveSettings(const QString &groupName=QLatin1String("MainWindow"), bool saveWindowSize=true)
KConfigGroup autoSaveConfigGroup() const
void saveMainWindowSettings(KConfigGroup &config)
virtual void applyMainWindowSettings(const KConfigGroup &config)
bool event(QEvent *event) override
QList< KisToolBar * > toolBars() const
virtual void finalizeGUI(KisKXMLGUIClient *client)
KisKXMLGUIBuilderPrivate *const d
void setXMLGUIBuildDocument(const QDomDocument &doc)
virtual QString xmlFile() const
virtual void stateChanged(const QString &newstate, ReverseStateChange reverse=StateNoReverse)
void loadStandardsXmlFile()
KisKXMLGUIFactory * factory() const
void setXMLFile(const QString &file, bool merge=false, bool setXMLDoc=true)
virtual QString componentName() const
virtual KisKActionCollection * actionCollection() const
void removeClient(KisKXMLGUIClient *client)
void addClient(KisKXMLGUIClient *client)
QAction * keyBindings(const QObject *recvr, const char *slot, QObject *parent)
KToggleAction * showStatusbar(const QObject *recvr, const char *slot, QObject *parent)
QAction * configureToolbars(const QObject *recvr, const char *slot, QObject *parent)