22
22
#include <kactioncollection.h>
23
23
#include <kcomponentdata.h>
24
24
#include <kfiledialog.h>
25
#include <kgenericfactory.h>
25
#include <kpluginfactory.h>
26
26
#include <klocale.h>
27
27
#include <kstandarddirs.h>
35
35
#include <recorder/kis_play_info.h>
36
36
#include <recorder/kis_recorded_action.h>
37
37
#include <recorder/kis_recorded_action_factory_registry.h>
38
#include <recorder/kis_recorded_action_load_context.h>
39
#include <recorder/kis_recorded_action_save_context.h>
38
40
#include <kis_types.h>
39
41
#include <kis_view2.h>
41
43
#include "actionseditor/kis_actions_editor.h"
42
44
#include "actionseditor/kis_actions_editor_dialog.h"
44
typedef KGenericFactory<BigBrotherPlugin> BigBrotherPluginFactory;
45
K_EXPORT_COMPONENT_FACTORY(kritabigbrother, BigBrotherPluginFactory("krita"))
48
BigBrotherPlugin::BigBrotherPlugin(QObject *parent, const QStringList &)
45
#include <kis_resource_server_provider.h>
46
#include <KoResourceServerProvider.h>
48
K_PLUGIN_FACTORY(BigBrotherPluginFactory, registerPlugin<BigBrotherPlugin>();)
49
K_EXPORT_PLUGIN(BigBrotherPluginFactory("krita"))
51
class RecordedActionSaveContext : public KisRecordedActionSaveContext {
53
virtual void saveGradient(const KoAbstractGradient* ) {}
54
virtual void savePattern(const KisPattern* ) {}
57
class RecordedActionLoadContext : public KisRecordedActionLoadContext {
59
virtual KoAbstractGradient* gradient(const QString& name) const
61
return KoResourceServerProvider::instance()->gradientServer()->getResourceByName(name);
63
virtual KisPattern* pattern(const QString& name) const
65
return KisResourceServerProvider::instance()->patternServer()->getResourceByName(name);
69
BigBrotherPlugin::BigBrotherPlugin(QObject *parent, const QVariantList &)
49
70
: KParts::Plugin(parent), m_recorder(0)
51
72
if (parent->inherits("KisView2")) {
129
150
// Create recorder
130
151
m_recorder = new KisMacro();
131
connect(m_view->image()->actionRecorder(), SIGNAL(addedAction(const KisRecordedAction&)), m_recorder, SLOT(addAction(const KisRecordedAction&)));
152
connect(m_view->image()->actionRecorder(), SIGNAL(addedAction(const KisRecordedAction&)),
153
m_recorder, SLOT(addAction(const KisRecordedAction&)));
134
156
void BigBrotherPlugin::slotStopRecordingMacro()
148
170
KisMacro* BigBrotherPlugin::openMacro(KUrl* url)
150
175
QString filename = KFileDialog::getOpenFileName(KUrl(), "*.krarec|Recorded actions (*.krarec)", m_view);
176
RecordedActionLoadContext loadContext;
151
177
if (!filename.isNull()) {
152
178
QDomDocument doc;
153
179
QFile f(filename);
166
192
if (!docElem.isNull() && docElem.tagName() == "RecordedActions") {
167
193
dbgPlugins << "Load the macro";
168
194
KisMacro* m = new KisMacro();
195
m->fromXML(docElem, &loadContext);
172
198
// TODO error message
184
210
if (!filename.isNull()) {
185
211
QDomDocument doc;
186
212
QDomElement e = doc.createElement("RecordedActions");
188
macro->toXML(doc, e);
213
RecordedActionSaveContext context;
214
macro->toXML(doc, e, &context);
190
216
doc.appendChild(e);
191
217
QFile f(filename);