From a418add1f3055f61a728aa4919ae1e25e9b4f2f3 Mon Sep 17 00:00:00 2001 From: Mat Sutcliffe Date: Tue, 31 Aug 2021 19:03:55 +0100 Subject: [PATCH] Issue #77 Convert CRgbColor to QPixmap directly Converting via CIcon was disabled in order to break cyclic a dependency, but in these cases a direct conversion had always been possible anyway. --- src/blackgui/components/colorselector.cpp | 4 ++-- src/blackgui/models/columnformatters.cpp | 2 +- src/blackmisc/rgbcolor.cpp | 19 +++++++++++-------- src/blackmisc/rgbcolor.h | 4 ++++ 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/blackgui/components/colorselector.cpp b/src/blackgui/components/colorselector.cpp index babafca64..28908fe10 100644 --- a/src/blackgui/components/colorselector.cpp +++ b/src/blackgui/components/colorselector.cpp @@ -72,7 +72,7 @@ namespace BlackGui else { ui->le_Color->setText(color.hex()); - ui->lbl_ColorIcon->setPixmap(CIcon(color.toIcon())); + ui->lbl_ColorIcon->setPixmap(color.toPixmap()); m_lastColor = color; } emit colorChanged(color); @@ -176,7 +176,7 @@ namespace BlackGui mimeData->setColorData(QVariant::fromValue(c.toQColor())); drag->setMimeData(mimeData); - drag->setPixmap(CIcon(c.toIcon())); + drag->setPixmap(c.toPixmap()); Qt::DropAction dropAction = drag->exec(Qt::CopyAction); Q_UNUSED(dropAction); diff --git a/src/blackgui/models/columnformatters.cpp b/src/blackgui/models/columnformatters.cpp index 8a7160517..e48b7d696 100644 --- a/src/blackgui/models/columnformatters.cpp +++ b/src/blackgui/models/columnformatters.cpp @@ -417,7 +417,7 @@ namespace BlackGui { const CRgbColor rgbColor(dataCVariant.to()); if (!rgbColor.isValid()) { return emptyPixmapVariant(); } - return CVariant::fromValue(CIcon(rgbColor.toIcon()).toPixmap()); + return CVariant::fromValue(rgbColor.toPixmap()); } CVariant CColorFormatter::tooltipRole(const CVariant &dataCVariant) const diff --git a/src/blackmisc/rgbcolor.cpp b/src/blackmisc/rgbcolor.cpp index 5c9186c76..b81756500 100644 --- a/src/blackmisc/rgbcolor.cpp +++ b/src/blackmisc/rgbcolor.cpp @@ -37,18 +37,21 @@ namespace BlackMisc this->setQColor(color); } + QPixmap CRgbColor::toPixmap() const + { + QPixmap pixmap(QSize(16, 16)); + QPainter p(&pixmap); + p.setBackground(QBrush(this->toQColor())); + p.setBrush(this->toQColor()); + p.drawRect(0, 0, 16, 16); + return pixmap; + } + CIcons::IconIndex CRgbColor::toIcon() const { //if (this->isValid()) //{ - // QPixmap pixmap(QSize(16, 16)); - // QPainter p(&pixmap); - // QBrush brush(this->toQColor()); - // p.setBackground(brush); - // p.setBrush(this->toQColor()); - // p.drawRect(0, 0, 16, 16); - // CIcon icon(pixmap, hex()); - // return icon; + // return CIcon(toPixmap(), hex()); //} //else { diff --git a/src/blackmisc/rgbcolor.h b/src/blackmisc/rgbcolor.h index 0931e74e1..fa70e2416 100644 --- a/src/blackmisc/rgbcolor.h +++ b/src/blackmisc/rgbcolor.h @@ -17,6 +17,7 @@ #include "blackmisc/valueobject.h" #include +#include #include #include #include @@ -108,6 +109,9 @@ namespace BlackMisc //! Representing icon CIcons::IconIndex toIcon() const; + //! Icon as pixmap + QPixmap toPixmap() const; + //! \copydoc BlackMisc::Mixin::String::toQString QString convertToQString(bool i18n = false) const;