Mercurial > hg > svgui
diff layer/ColourMapper.cpp @ 1199:73d43e410a6b levelpanwidget
Add swatches to colour map combo (optionally, as it turns out they are quite visually distracting)
author | Chris Cannam |
---|---|
date | Fri, 16 Dec 2016 15:55:59 +0000 |
parents | 65b183494331 |
children | 6e724c81f18f |
line wrap: on
line diff
--- a/layer/ColourMapper.cpp Fri Dec 16 14:16:05 2016 +0000 +++ b/layer/ColourMapper.cpp Fri Dec 16 15:55:59 2016 +0000 @@ -4,7 +4,7 @@ Sonic Visualiser An audio file viewer and annotation editor. Centre for Digital Music, Queen Mary, University of London. - This file copyright 2006-2007 Chris Cannam and QMUL. + This file copyright 2006-2016 Chris Cannam and QMUL. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -23,6 +23,8 @@ #include <vector> +#include <QPainter> + using namespace std; static vector<QColor> convertStrings(const vector<QString> &strs) @@ -320,4 +322,29 @@ } } +QPixmap +ColourMapper::getExamplePixmap(QSize size) const +{ + QPixmap pmap(size); + pmap.fill(Qt::white); + QPainter paint(&pmap); + int w = size.width(), h = size.height(); + + int margin = 2; + if (w < 4 || h < 4) margin = 0; + else if (w < 8 || h < 8) margin = 1; + + int n = w - margin*2; + + for (int x = 0; x < n; ++x) { + double value = m_min + ((m_max - m_min) * x) / (n-1); + QColor colour(map(value)); + paint.setPen(colour); + paint.drawLine(x + margin, margin, x + margin, h - margin); + } + + return pmap; +} + +