[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [calligra] krita/plugins/extensions/dockers/advancedcolorselector
From: Adam Celarek <identity_kde_org () xibo ! at>
Date: 2011-01-19 20:59:47
Message-ID: 20110119205947.A32AEA60A6 () git ! kde ! org
[Download RAW message or body]
Git commit d14131fb8bf5ff8f9fe7f1cd5ac39fd494da9fb0 by Adam Celarek
Pushed by adamc into branch krita-colorselectorng-adamc
fix issues with image colours
o fix possible crash
o don't take out of canvas colours into account
M +19 -5 krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.cpp \
M +6 -2 krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.h
M +1 -1 krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.cpp \
M +2 -2 krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.h \
http://commits.kde.org/47e7010d/d14131fb8bf5ff8f9fe7f1cd5ac39fd494da9fb0
diff --git a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.cpp \
b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.cpp index \
5c3be32..c2adcb6 100644
--- a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.cpp
+++ b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.cpp
@@ -53,8 +53,13 @@ KisCommonColors::KisCommonColors(QWidget *parent) :
m_recalculationTimer.setInterval(2000);
m_recalculationTimer.setSingleShot(true);
+ m_delayUpdateTimer.setInterval(1);
+ m_delayUpdateTimer.setSingleShot(true);
+
connect(&m_recalculationTimer, SIGNAL(timeout()),
- this, SLOT(recalculate()));
+ this, SLOT(recalculate()));
+ connect(&m_delayUpdateTimer, SIGNAL(timeout()),
+ this, SLOT(updateColors()));
}
void KisCommonColors::setCanvas(KisCanvas2 *canvas)
@@ -72,7 +77,7 @@ KisColorSelectorBase* KisCommonColors::createPopup() const
{
KisCommonColors* ret = new KisCommonColors();
ret->setCanvas(m_canvas);
- ret->setColors(colors());
+ ret->delayedSetColors(colors());
return ret;
}
@@ -100,11 +105,19 @@ void KisCommonColors::updateSettings()
m_reloadButton->setEnabled(true);
}
-void KisCommonColors::setColors(QList<KoColor> colors)
+void KisCommonColors::delayedSetColors(QList<KoColor> colors)
+{
+ QMutexLocker locker(&m_mutex);
+ m_calculatedColors = colors;
+ m_delayUpdateTimer.start();
+ locker.unlock();
+}
+
+void KisCommonColors::updateColors()
{
QMutexLocker locker(&m_mutex);
m_reloadButton->setEnabled(true);
- KisColorPatches::setColors(colors);
+ KisColorPatches::setColors(m_calculatedColors);
locker.unlock();
}
@@ -123,7 +136,8 @@ void KisCommonColors::recalculate()
qApp->processEvents();
KisImageWSP kisImage = m_canvas->image();
- QImage image = kisImage->projection()->createThumbnail(1024, 1024);
+
+ QImage image = kisImage->projection()->createThumbnail(1024, 1024, 0, \
kisImage->bounds());
KisCommonColorsRecalculationRunner* runner = new \
KisCommonColorsRecalculationRunner(image, patchCount(), this); \
QThreadPool::globalInstance()->start(runner);
diff --git a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.h \
b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.h index \
708ca58..6fe3f65 100644
--- a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.h
+++ b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors.h
@@ -31,17 +31,21 @@ public:
explicit KisCommonColors(QWidget *parent = 0);
void setCanvas(KisCanvas2 *canvas);
KisColorSelectorBase* createPopup() const;
- void setColors(QList<KoColor> colors);
public slots:
+ void delayedSetColors(QList<KoColor> colors);
void updateSettings();
void recalculate();
+protected slots:
+ void updateColors();
+
private:
- void updateImageCache();
QMutex m_mutex;
QTimer m_recalculationTimer;
+ QTimer m_delayUpdateTimer;
QPushButton* m_reloadButton;
+ QList<KoColor> m_calculatedColors;
};
#endif
diff --git a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.cpp \
b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.cpp
index 3f704fc..63b5fc5 100644
--- a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.cpp
+++ b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.cpp
@@ -125,7 +125,7 @@ private:
void KisCommonColorsRecalculationRunner::run()
{
- parent->setColors(extractColors());
+ parent->delayedSetColors(extractColors());
}
QList<KoColor> KisCommonColorsRecalculationRunner::extractColors()
diff --git a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.h \
b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.h
index 461d28c..191c8f9 100644
--- a/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.h
+++ b/krita/plugins/extensions/dockers/advancedcolorselector/kis_common_colors_recalculation_runner.h
@@ -12,7 +12,7 @@ class KisCommonColors;
class KisCommonColorsRecalculationRunner : public QRunnable
{
public:
- KisCommonColorsRecalculationRunner(const QImage &data, int numberOfColors, \
KisCommonColors* parentObj) + KisCommonColorsRecalculationRunner(QImage data, int \
numberOfColors, KisCommonColors* parentObj) : imageData(data),
numColors(numberOfColors),
parent(parentObj)
@@ -23,7 +23,7 @@ public:
QList<QRgb> getColors();
private:
- const QImage& imageData;
+ QImage imageData;
int numColors;
KisCommonColors* parent;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic