Krita Source Code Documentation
Loading...
Searching...
No Matches
kxmlguiclient.h
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 SPDX-FileCopyrightText: 2000 Simon Hausmann <hausmann@kde.org>
3 SPDX-FileCopyrightText: 2000 Kurt Granroth <granroth@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-only
6*/
7#ifndef KisKXMLGUICLIENT_H
8#define KisKXMLGUICLIENT_H
9
10#include <kritawidgetutils_export.h>
11
12#include <QMap>
13#include <QStringList>
14
15class QDomDocument;
16class QDomElement;
17class QWidget;
18
19class QAction;
24
25namespace KDEPrivate
26{
27class KisKEditToolBarWidget;
28}
29
36class KRITAWIDGETUTILS_EXPORT KisKXMLGUIClient
37{
38 friend class KDEPrivate::KisKEditToolBarWidget; // for setXMLFile(3 args)
39public:
46
58 explicit KisKXMLGUIClient(KisKXMLGUIClient *parent);
59
69 virtual ~KisKXMLGUIClient();
70
76 QAction *action(const char *name) const;
77
83 virtual QAction *action(const QDomElement &element) const;
84
88 virtual KisKActionCollection *actionCollection() const;
89
93 virtual QString componentName() const;
94
100 virtual QDomDocument domDocument() const;
101
115 virtual QString xmlFile() const;
116
117 virtual QString localXMLFile() const;
118
122 void setXMLGUIBuildDocument(const QDomDocument &doc);
126 QDomDocument xmlguiBuildDocument() const;
127
132 void setFactory(KisKXMLGUIFactory *factory);
138 KisKXMLGUIFactory *factory() const;
139
145 KisKXMLGUIClient *parentClient() const;
146
153 void insertChildClient(KisKXMLGUIClient *child);
154
158 void removeChildClient(KisKXMLGUIClient *child);
159
163 QList<KisKXMLGUIClient *> childClients();
164
173 void setClientBuilder(KisKXMLGUIBuilder *builder);
174
179 KisKXMLGUIBuilder *clientBuilder() const;
180
190 void reloadXML();
191
235 void plugActionList(const QString &name, const QList<QAction *> &actionList);
236
244 void unplugActionList(const QString &name);
245
246 static QString findMostRecentXMLFile(const QStringList &files, QString &doc);
247
248 void addStateActionEnabled(const QString &state, const QString &action);
249
250 void addStateActionDisabled(const QString &state, const QString &action);
251
252 enum ReverseStateChange { StateNoReverse, StateReverse };
257
258 StateChange getActionsToChangeForState(const QString &state);
259
260 void beginXMLPlug(QWidget *);
261 void endXMLPlug();
262 void prepareXMLUnplug(QWidget *);
263
286 void replaceXMLFile(const QString &xmlfile, const QString &localxmlfile, bool merge = false);
287
288protected:
297 virtual void setComponentName(const QString &componentName, const QString &componentDisplayName);
298
329 void setXMLFile(const QString &file, bool merge = false, bool setXMLDoc = true);
330
336 static QString standardsXmlFileLocation();
337
342 void loadStandardsXmlFile();
343
349 void setLocalXMLFile(const QString &file);
350
357 void setXML(const QString &document, bool merge = false);
358
374 void setDOMDocument(const QDomDocument &document, bool merge = false);
375
387 virtual void stateChanged(const QString &newstate, ReverseStateChange reverse = StateNoReverse);
388
389 // KDE5 TODO: virtual void loadActionLists() {}, called when the guiclient is added to the xmlgui factory
390
391protected:
392 virtual void virtual_hook(int id, void *data);
393
394private:
396};
397
398#endif
A widget used to customize or configure toolbars.
A container for a set of QAction objects.
KisKXMLGUIClientPrivate *const d