[graphics/krita/krita/4.3] libs/ui/widgets: Save edited gradients
Boudewijn Rempt
null at kde.org
Tue Dec 1 09:38:23 GMT 2020
Git commit 08f5246359c2a26677fea24fdaf97adf961317cb by Boudewijn Rempt.
Committed on 01/12/2020 at 09:38.
Pushed by rempt into branch 'krita/4.3'.
Save edited gradients
This isn't ideal, since it will save a local copy and next restart
there will be two gradients with the same name, but that can't be
helped with the way 4.3 works.
The dialog also should have a cancel button.
CCMAIL:kimageshop at kde.org
M +11 -3 libs/ui/widgets/kis_gradient_chooser.cc
M +1 -1 libs/ui/widgets/kis_gradient_chooser.h
https://invent.kde.org/graphics/krita/commit/08f5246359c2a26677fea24fdaf97adf961317cb
diff --git a/libs/ui/widgets/kis_gradient_chooser.cc b/libs/ui/widgets/kis_gradient_chooser.cc
index edc0228e51..31bab8ed0e 100644
--- a/libs/ui/widgets/kis_gradient_chooser.cc
+++ b/libs/ui/widgets/kis_gradient_chooser.cc
@@ -195,12 +195,13 @@ void KisGradientChooser::addSegmentedGradient()
void KisGradientChooser::addGradient(KoAbstractGradient* gradient)
{
+ if (!gradient) return;
+
KoResourceServer<KoAbstractGradient> * rserver = KoResourceServerProvider::instance()->gradientServer();
QString saveLocation = rserver->saveLocation();
KisCustomGradientDialog dialog(gradient, this, "KisCustomGradientDialog", m_foregroundColor, m_backgroundColor);
dialog.exec();
-
gradient->setFilename(saveLocation + gradient->name() + gradient->defaultFileExtension());
gradient->setValid(true);
rserver->addResource(gradient);
@@ -209,10 +210,17 @@ void KisGradientChooser::addGradient(KoAbstractGradient* gradient)
void KisGradientChooser::editGradient()
{
- KisCustomGradientDialog dialog(static_cast<KoAbstractGradient*>(currentResource()), this, "KisCustomGradientDialog", m_foregroundColor, m_backgroundColor);
- dialog.exec();
+ KoAbstractGradient *gradient = dynamic_cast<KoAbstractGradient*>(currentResource());
+ if (!gradient) return;
+ KisCustomGradientDialog dialog(gradient, this, "KisCustomGradientDialog", m_foregroundColor, m_backgroundColor);
+ dialog.exec();
+ KoResourceServer<KoAbstractGradient> * rserver = KoResourceServerProvider::instance()->gradientServer();
+ QString saveLocation = rserver->saveLocation();
+ rserver->updateResource(gradient);
+ gradient->setFilename(saveLocation + gradient->name() + gradient->defaultFileExtension());
+ gradient->save();
}
diff --git a/libs/ui/widgets/kis_gradient_chooser.h b/libs/ui/widgets/kis_gradient_chooser.h
index 92ccc19af3..9e5258f176 100644
--- a/libs/ui/widgets/kis_gradient_chooser.h
+++ b/libs/ui/widgets/kis_gradient_chooser.h
@@ -45,7 +45,7 @@ public:
private:
- QWidget * m_page;
+ QWidget *m_page {0};
};
More information about the kimageshop
mailing list