traverso-commit
[Top][All Lists]
Advanced

[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();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]