diff options
author | Tim E. Real <termtech@rogers.com> | 2011-04-15 02:45:33 +0000 |
---|---|---|
committer | Tim E. Real <termtech@rogers.com> | 2011-04-15 02:45:33 +0000 |
commit | 7303c41c6de1c6823de4cfb2d314e42a2ad9ff5f (patch) | |
tree | b40224140a1a58817aaef3633863d4075c3c0a34 /muse2/muse | |
parent | 8acbc05a692368347cffa794d047dc4839ad6b78 (diff) |
Improved dark part colour gradients. Added gGradientFromQColor() in widgets/utils.cpp
called from PartCanvas draw.
Diffstat (limited to 'muse2/muse')
-rw-r--r-- | muse2/muse/arranger/pcanvas.cpp | 27 | ||||
-rw-r--r-- | muse2/muse/widgets/utils.cpp | 20 | ||||
-rw-r--r-- | muse2/muse/widgets/utils.h | 5 |
3 files changed, 43 insertions, 9 deletions
diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index 4fc0c3dd..ca2a16b0 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -20,7 +20,7 @@ #include <QPainter> #include <QUrl> #include <QPoint> -#include <QLinearGradient> +//#include <QLinearGradient> #include "fastlog.h" #include "widgets/tools.h" @@ -40,6 +40,7 @@ #include "mpevent.h" #include "midievent.h" #include "midi.h" +#include "utils.h" // Moved into global config by Tim. /* @@ -1552,10 +1553,18 @@ void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect) // Hm, put some kind of lower limit? If so do that globally to the adjustment. QColor c(Qt::black); c.setAlpha(config.globalAlphaBlend); + QLinearGradient gradient(r.topLeft(), r.bottomLeft()); - gradient.setColorAt(0, c); - gradient.setColorAt(1, c.darker()); + //gradient.setColorAt(0, c); + //gradient.setColorAt(1, c.darker()); + // Use a colour only about 20% lighter than black, rather than the 50% we use in gGradientFromQColor + // and is used in darker()/lighter(), so that it is distinguished a bit better from grey non-part tracks. + //c.setRgba(64, 64, 64, c.alpha()); + gradient.setColorAt(0, QColor(51, 51, 51, config.globalAlphaBlend)); + gradient.setColorAt(1, c); QBrush cc(gradient); + //QBrush cc(gGradientFromQColor(c, r.topLeft(), r.bottomLeft())); + p.setBrush(cc); p.drawRect(r); } @@ -1570,10 +1579,11 @@ void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect) p.setPen(pen); QColor c(config.partColors[i]); c.setAlpha(config.globalAlphaBlend); - QLinearGradient gradient(r.topLeft(), r.bottomLeft()); - gradient.setColorAt(0, c); - gradient.setColorAt(1, c.darker()); - QBrush cc(gradient); + //QLinearGradient gradient(r.topLeft(), r.bottomLeft()); + //gradient.setColorAt(0, c); + //gradient.setColorAt(1, c.darker()); + //QBrush cc(gradient); + QBrush cc(gGradientFromQColor(c, r.topLeft(), r.bottomLeft())); p.setBrush(cc); p.drawRect(r); @@ -1616,8 +1626,7 @@ void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect) p.setPen(Qt::black); else p.setPen(Qt::white); - p.drawText(rr, Qt::AlignTop|Qt::AlignLeft, part->name()); - rr.translate(1,1); + p.drawText(rr.translated(1, 1), Qt::AlignTop|Qt::AlignLeft, part->name()); if (rev) p.setPen(Qt::white); else diff --git a/muse2/muse/widgets/utils.cpp b/muse2/muse/widgets/utils.cpp index 1bf4ca64..693f3c36 100644 --- a/muse2/muse/widgets/utils.cpp +++ b/muse2/muse/widgets/utils.cpp @@ -11,6 +11,10 @@ #include <sys/time.h> #include <QFrame> +#include <QColor> +#include <QGradient> +#include <QLinearGradient> +#include <QPointF> #include "utils.h" @@ -354,3 +358,19 @@ bool autoAdjustFontSize(QFrame* w, const QString& s, bool ignoreWidth, bool igno return true; } + +QGradient gGradientFromQColor(const QColor& c, const QPointF& start, const QPointF& finalStop) +{ + int h = c.hsvHue(), s = c.hsvSaturation(), a = c.alpha(); + int cv = c.value(); + int v0 = cv + (255 - cv)/2; + int v1 = cv - cv/2; + QColor c0 = QColor::fromHsv(h, s, v0, a); + QColor c1 = QColor::fromHsv(h, s, v1, a); + + QLinearGradient gradient(start, finalStop); + gradient.setColorAt(0, c0); + gradient.setColorAt(1, c1); + + return gradient; +}
\ No newline at end of file diff --git a/muse2/muse/widgets/utils.h b/muse2/muse/widgets/utils.h index 654a7834..b6997023 100644 --- a/muse2/muse/widgets/utils.h +++ b/muse2/muse/widgets/utils.h @@ -11,6 +11,10 @@ class QFrame; class QString; class QWidget; +class QGradient; +class QCanvas; +class QPointF; +class QColor; extern QString bitmap2String(int bm); @@ -18,6 +22,7 @@ extern int string2bitmap(const QString& str); extern QString u32bitmap2String(unsigned int bm); extern unsigned int string2u32bitmap(const QString& str); extern bool autoAdjustFontSize(QFrame* w, const QString& s, bool ignoreWidth = false, bool ignoreHeight = false, int max = 10, int min = 4); +extern QGradient gGradientFromQColor(const QColor& c, const QPointF& start, const QPointF& finalStop); extern int num2cols(int min, int max); extern QFrame* hLine(QWidget* parent); |