[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso resources/themes/gradients/traversothe...
From: |
Nicola Doebelin |
Subject: |
[Traverso-commit] traverso resources/themes/gradients/traversothe... |
Date: |
Tue, 21 Apr 2009 19:57:54 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Nicola Doebelin <n_doebelin> 09/04/21 19:57:54
Modified files:
resources/themes/gradients: traversotheme.xml
src/traverso/widgets: SpectralMeterWidget.cpp
SpectralMeterWidget.h
Log message:
* FFT spectrum analyzer updates theme instantly
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/themes/gradients/traversotheme.xml?cvsroot=traverso&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/SpectralMeterWidget.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/SpectralMeterWidget.h?cvsroot=traverso&r1=1.2&r2=1.3
Patches:
Index: resources/themes/gradients/traversotheme.xml
===================================================================
RCS file:
/sources/traverso/traverso/resources/themes/gradients/traversotheme.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- resources/themes/gradients/traversotheme.xml 16 Apr 2009 18:05:33
-0000 1.3
+++ resources/themes/gradients/traversotheme.xml 21 Apr 2009 19:57:54
-0000 1.4
@@ -82,11 +82,7 @@
<color name="CorrelationMeter:centerline" red="82" green="80"
blue="123" alpha="255"/>
<color name="CorrelationMeter:text" red="0" green="0" blue="0"
alpha="255" />
- <color name="FFTMeter:margin" red="246" green="246" blue="255"
alpha="255" />
- <color name="FFTMeter:background" red="241" green="250"
blue="255" alpha="255" />
<color name="FFTMeter:grid" red="205" green="223" blue="255"
alpha="255" />
- <color name="FFTMeter:foreground" red="82" green="80"
blue="123" alpha="255"/>
- <color name="FFTMeter:foreground:light" red="241" green="250"
blue="255" alpha="255"/>
<color name="FFTMeter:curve:average" red="255" green="0"
blue="0" alpha="255" />
<color name="FFTMeter:tickmarks:main" red="0" green="0"
blue="0" alpha="255" />
<color name="FFTMeter:tickmarks:sub" red="100" green="100"
blue="100" alpha="255" />
@@ -202,7 +198,6 @@
<stop value="0.0" red="248" green="248" blue="248"
alpha="255" />
<stop value="1.0" red="150" green="150" blue="150"
alpha="255" />
</gradient>
-
<gradient name="VUMeter:background:bar">
<stop value="0.0" red="0" green="0" blue="0"
alpha="255" />
<stop value="1.0" red="50" green="50" blue="50"
alpha="255" />
@@ -212,5 +207,17 @@
<stop value="0.5" red="82" green="80" blue="123"
alpha="255"/>
<stop value="1.0" red="241" green="250" blue="255"
alpha="255"/>
</gradient>
+ <gradient name="FFTMeter:margin">
+ <stop value="0.0" red="246" green="246" blue="255"
alpha="255"/>
+ <stop value="1.0" red="200" green="200" blue="200"
alpha="255"/>
+ </gradient>
+ <gradient name="FFTMeter:background">
+ <stop value="0.0" red="241" green="250" blue="255"
alpha="255" />
+ <stop value="1.0" red="150" green="150" blue="150"
alpha="255"/>
+ </gradient>
+ <gradient name="FFTMeter:foreground">
+ <stop value="0.0" red="82" green="80" blue="123"
alpha="255"/>
+ <stop value="1.0" red="160" green="150" blue="255"
alpha="255"/>
+ </gradient>
</gradients>
</Themer>
Index: src/traverso/widgets/SpectralMeterWidget.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/widgets/SpectralMeterWidget.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- src/traverso/widgets/SpectralMeterWidget.cpp 18 Feb 2008 18:58:43
-0000 1.6
+++ src/traverso/widgets/SpectralMeterWidget.cpp 21 Apr 2009 19:57:54
-0000 1.7
@@ -89,6 +89,9 @@
m_freq_labels.push_back(80.0f * pow(10.0,i));
m_freq_labels.push_back(90.0f * pow(10.0,i));
}
+
+ load_theme_data();
+ connect(themer(), SIGNAL(themeLoaded()), this, SLOT(load_theme_data()),
Qt::QueuedConnection);
}
void SpectralMeterView::paint(QPainter *painter, const
QStyleOptionGraphicsItem *option, QWidget *widget)
@@ -101,9 +104,8 @@
// draw the bars
if (m_spectrum.size()) {
QRect rect;
- QBrush brush(themer()->get_color("FFTMeter:foreground"),
Qt::SolidPattern);
painter->setClipRegion(m_rect);
- painter->setBrush(brush);
+ painter->setBrush(m_brushFg);
painter->setPen(Qt::NoPen);
int spc = 0;
@@ -122,7 +124,7 @@
// draw the average line if requested
if (show_average) {
-
painter->setPen(themer()->get_color("FFTMeter:curve:average"));
+ painter->setPen(m_penAvgCurve);
QPoint pt;
QPoint po((int)m_map_idx2xpos.at(0),
(int)db2ypos(m_avg_db.at(0)));
for (uint i = 0; i < (uint)m_avg_db.size(); ++i) {
@@ -162,18 +164,18 @@
// update the vectors mapping indices and frequencies to widget
coordinates
update_freq_map();
- // re-draw the background pixmap
- update_background();
+ // reload theme data to fit gradients to the new widget size
+ load_theme_data();
}
void SpectralMeterView::update_background()
{
// draw the background image
bgPixmap = QPixmap((int)m_boundingRect.width(),
(int)m_boundingRect.height());
- bgPixmap.fill(themer()->get_color("FFTMeter:margin"));
QPainter painter(&bgPixmap);
- painter.fillRect(m_rect, themer()->get_color("FFTMeter:background"));
+ painter.fillRect(m_boundingRect, m_brushMargin);
+ painter.fillRect(m_rect, m_brushBg);
painter.setFont(themer()->get_font("FFTMeter:fontscale:label"));
QFontMetrics fm(themer()->get_font("FFTMeter:fontscale:label"));
@@ -183,10 +185,10 @@
for (float i = upper_db; i >= lower_db; i -= 10.0f) {
float f = db2ypos(i);
- painter.setPen(themer()->get_color("FFTMeter:grid"));
+ painter.setPen(m_penGrid);
painter.drawLine(QPointF(m_rect.x(), f),
QPointF(m_rect.right(), f));
- painter.setPen(themer()->get_color("FFTMeter:text"));
+ painter.setPen(m_penFont);
spm.sprintf("%2.0f", i);
painter.drawText(m_rect.right() + 1, (int)f + fm.ascent()/2,
spm);
}
@@ -213,18 +215,33 @@
// draw text only if there is enough space for it
if (((f - s) > last_pos) && ((f + s) <
float(m_boundingRect.width()-1))) {
- painter.setPen(themer()->get_color("FFTMeter:text"));
+ painter.setPen(m_penFont);
painter.drawText(QPointF(f - s, m_boundingRect.height()
- fm.descent() - 3), spm);
last_pos = f + s + 1.0;
-
painter.setPen(themer()->get_color("FFTMeter:tickmarks:main"));
+ painter.setPen(m_penTickMain);
} else {
-
painter.setPen(themer()->get_color("FFTMeter:tickmarks:sub"));
+ painter.setPen(m_penTickSub);
}
painter.drawLine(QPointF(f, m_rect.bottom()), QPointF(f,
m_rect.bottom() + 3));
}
}
+void SpectralMeterView::load_theme_data()
+{
+ m_brushFg = themer()->get_brush("FFTMeter:foreground", QPoint(0, 0),
QPoint(0, m_boundingRect.height()));
+ m_brushBg = themer()->get_brush("FFTMeter:background", QPoint(0, 0),
QPoint(0, m_boundingRect.height()));
+ m_brushMargin = themer()->get_brush("FFTMeter:margin", QPoint(0, 0),
QPoint(0, m_rect.height()));
+ m_penAvgCurve.setColor(themer()->get_color("FFTMeter:curve:average"));
+ m_penTickMain.setColor(themer()->get_color("FFTMeter:tickmarks:main"));
+ m_penTickSub.setColor(themer()->get_color("FFTMeter:tickmarks:sub"));
+ m_penFont.setColor(themer()->get_color("FFTMeter:text"));
+ m_penGrid.setColor(themer()->get_color("FFTMeter:grid"));
+
+ // re-draw the background pixmap
+ update_background();
+}
+
void SpectralMeterView::update_data()
{
if (!m_meter) {
Index: src/traverso/widgets/SpectralMeterWidget.h
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/widgets/SpectralMeterWidget.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- src/traverso/widgets/SpectralMeterWidget.h 15 Feb 2008 20:38:02 -0000
1.2
+++ src/traverso/widgets/SpectralMeterWidget.h 21 Apr 2009 19:57:54 -0000
1.3
@@ -127,9 +127,18 @@
void update_background();
float freq2db(float, float);
QString get_xmgr_string();
+ QBrush m_brushBg;
+ QBrush m_brushFg;
+ QBrush m_brushMargin;
+ QPen m_penAvgCurve;
+ QPen m_penTickMain;
+ QPen m_penTickSub;
+ QPen m_penFont;
+ QPen m_penGrid;
private slots:
void update_data();
+ void load_theme_data();
public slots:
void load_configuration();