File indexing completed on 2024-05-19 04:26:57

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #include "Preset.h"
0007 #include <QDomDocument>
0008 
0009 struct Preset::Private {
0010     KisPaintOpPresetSP preset {0};
0011 };
0012 
0013 Preset::Preset(Resource *resource): d(new Private()) {
0014     d->preset = resource->resource().dynamicCast<KisPaintOpPreset>();
0015 }
0016 
0017 Preset::~Preset()
0018 {
0019     delete d;
0020 }
0021 
0022 
0023 QString Preset::toXML() const
0024 {
0025     QDomDocument xmlDoc;
0026     QDomElement root = xmlDoc.createElement("Preset");
0027 
0028     d->preset->toXML(xmlDoc,root);
0029 
0030     xmlDoc.appendChild(root);
0031 
0032     return xmlDoc.toString();
0033 }
0034 
0035 void Preset::fromXML(const QString &xml)
0036 {
0037     QDomDocument xmlDoc;
0038 
0039     if (!xmlDoc.setContent(xml)) {
0040         qWarning() << "XML string format is invalid!";
0041         return;
0042     }
0043 
0044     d->preset->fromXML(xmlDoc.documentElement(),d->preset->resourcesInterface());
0045     d->preset->setDirty(true);
0046 }