traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso resources/themes/default/traversotheme...


From: Nicola Doebelin
Subject: [Traverso-commit] traverso resources/themes/default/traversotheme...
Date: Sun, 08 Jul 2007 19:45:07 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Nicola Doebelin <n_doebelin>    07/07/08 19:45:07

Modified files:
        resources/themes/default: traversotheme.xml 
        src/traverso/songcanvas: AudioClipView.cpp AudioClipView.h 

Log message:
        Support for gradients in themes (audio clips)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/themes/default/traversotheme.xml?cvsroot=traverso&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.79&r2=1.80
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.h?cvsroot=traverso&r1=1.28&r2=1.29

Patches:
Index: resources/themes/default/traversotheme.xml
===================================================================
RCS file: 
/sources/traverso/traverso/resources/themes/default/traversotheme.xml,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- resources/themes/default/traversotheme.xml  28 Jun 2007 14:57:21 -0000      
1.40
+++ resources/themes/default/traversotheme.xml  8 Jul 2007 19:45:06 -0000       
1.41
@@ -56,20 +56,32 @@
                <color name="AudioClip:wavemacroview:outline" red="80" 
green="80" blue="120" alpha="255" />
                <color name="AudioClip:wavemacroview:outline:curvemode" 
red="135" green="130" blue="255" alpha="255" />
                <color name="AudioClip:wavemacroview:outline:muted" red="90" 
green="90" blue="90" alpha="255" />
-               <color name="AudioClip:wavemacroview:brush" red="145" 
green="145" blue="195" alpha="255" />
-               <color name="AudioClip:wavemacroview:brush:hover" red="160" 
green="160" blue="215" alpha="255" />
-               <color name="AudioClip:wavemacroview:brush:muted" red="200" 
green="200" blue="200" alpha="255" />
-               <color name="AudioClip:wavemacroview:brush:curvemode" red="232" 
green="230" blue="255" alpha="255" />
-               <color name="AudioClip:wavemacroview:brush:curvemode:hover" 
red="232" green="230" blue="240" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:top" red="145" 
green="145" blue="195" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:bottom" red="145" 
green="145" blue="195" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:hover:top" red="160" 
green="160" blue="215" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:hover:bottom" 
red="160" green="160" blue="215" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:muted:top" red="200" 
green="200" blue="200" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:muted:bottom" 
red="200" green="200" blue="200" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:curvemode:top" 
red="232" green="230" blue="255" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:curvemode:bottom" 
red="232" green="230" blue="255" alpha="255" />
+               <color name="AudioClip:wavemacroview:brush:curvemode:hover:top" 
red="232" green="230" blue="240" alpha="255" />
+               <color 
name="AudioClip:wavemacroview:brush:curvemode:hover:bottom" red="232" 
green="230" blue="240" alpha="255" />
                <color name="AudioClip:wavemicroview"  red="150" green="150" 
blue="205"  alpha="255" />
                <color name="AudioClip:wavemicroview:curvemode"  red="210" 
green="210" blue="255"  alpha="255" />
-               <color name="AudioClip:background:muted"  red="245" green="245" 
blue="245"  alpha="170" />
-               <color name="AudioClip:background:recording"  red="255" 
green="255" blue="255"  alpha="170" />
-               <color name="AudioClip:background:muted:mousehover"  red="255" 
green="255" blue="255"  alpha="170" />
-               <color name="AudioClip:background:selected"  red="101" 
green="111" blue="171"  alpha="170" />
-               <color name="AudioClip:background:selected:mousehover"  
red="111" green="121" blue="182"  alpha="170" />
-               <color name="AudioClip:background"  red="251" green="255" 
blue="251"  alpha="150" />
-               <color name="AudioClip:background:mousehover"  red="255" 
green="253" blue="255"  alpha="200" />
+               <color name="AudioClip:background:muted:top"  red="245" 
green="245" blue="245"  alpha="170" />
+               <color name="AudioClip:background:muted:bottom"  red="245" 
green="245" blue="245"  alpha="170" />
+               <color name="AudioClip:background:recording:top"  red="255" 
green="255" blue="255"  alpha="170" />
+               <color name="AudioClip:background:recording:bottom"  red="255" 
green="255" blue="255"  alpha="170" />
+               <color name="AudioClip:background:muted:mousehover:top"  
red="255" green="255" blue="255"  alpha="170" />
+               <color name="AudioClip:background:muted:mousehover:bottom"  
red="255" green="255" blue="255"  alpha="170" />
+               <color name="AudioClip:background:selected:top"  red="101" 
green="111" blue="171"  alpha="170" />
+               <color name="AudioClip:background:selected:bottom"  red="101" 
green="111" blue="171"  alpha="170" />
+               <color name="AudioClip:background:selected:mousehover:top"  
red="111" green="121" blue="182"  alpha="170" />
+               <color name="AudioClip:background:selected:mousehover:bottom"  
red="111" green="121" blue="182"  alpha="170" />
+               <color name="AudioClip:background:top"  red="251" green="255" 
blue="251"  alpha="150" />
+               <color name="AudioClip:background:bottom"  red="251" 
green="255" blue="251"  alpha="150" />
+               <color name="AudioClip:background:mousehover:top"  red="255" 
green="253" blue="255"  alpha="200" />
+               <color name="AudioClip:background:mousehover:bottom"  red="255" 
green="253" blue="255"  alpha="200" />
                <color name="AudioClip:channelseperator"  red="178" green="191" 
blue="182"  alpha="255" />
                <color name="AudioClip:channelseperator:selected"  red="24" 
green="137" blue="210"  alpha="255" />
                <color name="AudioClip:contour"  red="50" green="50" blue="50"  
alpha="150" />

Index: src/traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -b -r1.79 -r1.80
--- src/traverso/songcanvas/AudioClipView.cpp   7 Jul 2007 07:58:30 -0000       
1.79
+++ src/traverso/songcanvas/AudioClipView.cpp   8 Jul 2007 19:45:06 -0000       
1.80
@@ -63,6 +63,7 @@
 #endif
        
        load_theme_data();
+       create_brushes();
        create_clipinfo_string();
 
        m_waitingForPeaks = false;
@@ -145,40 +146,32 @@
        
        if (m_drawbackground) {
                if (m_clip->recording_state() == AudioClip::RECORDING) {
-                       m_backgroundColor = m_backgroundColorMouseHover = 
themer()->get_color("AudioClip:background:recording");
+                       painter->fillRect(xstart, 0, pixelcount, m_height, 
m_brushBgRecording);
                } else {
                        if (m_clip->is_muted()) {
-                               m_backgroundColor = 
themer()->get_color("AudioClip:background:muted");
-                               m_backgroundColorMouseHover = 
themer()->get_color("AudioClip:background:muted:mousehover");
+                               if (mousehover) painter->fillRect(xstart, 0, 
pixelcount, m_height, m_brushBgMutedHover);
+                               else            painter->fillRect(xstart, 0, 
pixelcount, m_height, m_brushBgMuted);
                        } else if (m_clip->is_selected()) {
-                               m_backgroundColor = 
themer()->get_color("AudioClip:background:selected");
-                               m_backgroundColorMouseHover = 
themer()->get_color("AudioClip:background:selected:mousehover");
+                               if (mousehover) painter->fillRect(xstart, 0, 
pixelcount, m_height, m_brushBgSelectedHover);
+                               else            painter->fillRect(xstart, 0, 
pixelcount, m_height, m_brushBgSelected);
                        } else {
-                               m_backgroundColor = 
themer()->get_color("AudioClip:background");
-                               m_backgroundColorMouseHover = 
themer()->get_color("AudioClip:background:mousehover");
+                               if (mousehover) painter->fillRect(xstart, 0, 
pixelcount, m_height, m_brushBgHover);
+                               else            painter->fillRect(xstart, 0, 
pixelcount, m_height, m_brushBg);
                        }
                }
-
-               if (mousehover) {
-                       painter->fillRect(xstart, 0, pixelcount, m_height, 
m_backgroundColorMouseHover);
-               } else {
-                       painter->fillRect(xstart, 0, pixelcount, m_height, 
m_backgroundColor);
-               }
        }
        
+       if (m_clip->is_muted()) {
+               m_waveBrush = m_brushFgMuted;
+       } else {
        if (m_song->get_mode() == Song::EDIT) {
-               if (mousehover)
-                       m_waveBrush = 
themer()->get_color("AudioClip:wavemacroview:brush:hover");
-               else
-                       m_waveBrush = 
themer()->get_color("AudioClip:wavemacroview:brush");
-                       
+                       if (mousehover) m_waveBrush = m_brushFgHover;
+                       else            m_waveBrush = m_brushFg;
        } else {
-               if (mousehover)
-                       m_waveBrush = 
themer()->get_color("AudioClip:wavemacroview:brush:curvemode:hover");
-               else
-                       m_waveBrush = 
themer()->get_color("AudioClip:wavemacroview:brush:curvemode");
+                       if (mousehover) m_waveBrush = m_brushFgEditHover;
+                       else            m_waveBrush = m_brushFgEdit;
+               }
        }
-       
 
        int channels = m_clip->get_channels();
 
@@ -456,20 +449,16 @@
                
                // Macroview, paint waveform with painterpath
                } else {
-                       
-                       if (m_song->get_mode() == Song::EDIT) {
-                               
p->setPen(themer()->get_color("AudioClip:wavemacroview:outline"));
                                if (m_fillwave) {
                                        p->setBrush(m_waveBrush);
                                }
+
+                       if (m_song->get_mode() == Song::EDIT) {
+                               
p->setPen(themer()->get_color("AudioClip:wavemacroview:outline"));
                        } else  {
                                
p->setPen(themer()->get_color("AudioClip:wavemacroview:outline:curvemode"));
-                               if (m_fillwave) {
-                                       p->setBrush(m_waveBrush);
-                               }
                        }
                        if (m_clip->is_muted()) {
-                               
p->setBrush(themer()->get_color("AudioClip:wavemacroview:brush:muted"));
                                
p->setPen(themer()->get_color("AudioClip:wavemacroview:outline:muted"));
                        }
                                
@@ -541,6 +530,157 @@
        }
 }
 
+void AudioClipView::create_brushes()
+{
+       // make sure the brushes are made from solid colors (not gradients) if 
top and bottom color are equal
+
+       // create brushes for background states
+       QColor bg_colRecTop = 
themer()->get_color("AudioClip:background:recording:top");
+       QColor bg_colRecBottom = 
themer()->get_color("AudioClip:background:recording:Bottom");
+       if (bg_colRecTop == bg_colRecBottom) {
+               m_brushBgRecording = QBrush(bg_colRecTop);
+       } else {
+               QLinearGradient bg_gradientRec(QPoint(0, 0), QPoint(0, 
m_height));
+               bg_gradientRec.setSpread(QGradient::RepeatSpread);
+               bg_gradientRec.setColorAt(0, bg_colRecTop);
+               bg_gradientRec.setColorAt(1, bg_colRecBottom);
+               m_brushBgRecording = QBrush(bg_gradientRec);
+       }
+
+       QColor bg_colMutedTop = 
themer()->get_color("AudioClip:background:muted:top");
+       QColor bg_colMutedBottom = 
themer()->get_color("AudioClip:background:muted:bottom");
+       if (bg_colMutedTop == bg_colMutedBottom) {
+               m_brushBgMuted = QBrush(bg_colMutedTop);
+       } else {
+               QLinearGradient bg_gradientMuted(QPoint(0, 0), QPoint(0, 
m_height));
+               bg_gradientMuted.setSpread(QGradient::RepeatSpread);
+               bg_gradientMuted.setColorAt(0, bg_colMutedTop);
+               bg_gradientMuted.setColorAt(1, bg_colMutedBottom);
+               m_brushBgMuted = QBrush(bg_gradientMuted);
+       }
+
+       QColor bg_colMutedHoverTop = 
themer()->get_color("AudioClip:background:muted:mousehover:top");
+       QColor bg_colMutedHoverBottom = 
themer()->get_color("AudioClip:background:muted:mousehover:bottom");
+       if (bg_colMutedHoverTop == bg_colMutedHoverBottom) {
+               m_brushBgMutedHover = QBrush(bg_colMutedHoverTop);
+       } else {
+               QLinearGradient bg_gradientMutedHover(QPoint(0, 0), QPoint(0, 
m_height));
+               bg_gradientMutedHover.setSpread(QGradient::RepeatSpread);
+               bg_gradientMutedHover.setColorAt(0, bg_colMutedHoverTop);
+               bg_gradientMutedHover.setColorAt(1, bg_colMutedHoverBottom);
+               m_brushBgMutedHover = QBrush(bg_gradientMutedHover);
+       }
+
+       QColor bg_colSelectedTop = 
themer()->get_color("AudioClip:background:selected:top");
+       QColor bg_colSelectedBottom = 
themer()->get_color("AudioClip:background:selected:bottom");
+       if (bg_colSelectedTop == bg_colSelectedBottom) {
+               m_brushBgSelected = QBrush(bg_colSelectedTop);
+       } else {
+               QLinearGradient bg_gradientSelected(QPoint(0, 0), QPoint(0, 
m_height));
+               bg_gradientSelected.setSpread(QGradient::RepeatSpread);
+               bg_gradientSelected.setColorAt(0, bg_colSelectedTop);
+               bg_gradientSelected.setColorAt(1, bg_colSelectedBottom);
+               m_brushBgSelected = QBrush(bg_gradientSelected);
+       }
+
+       QColor bg_colSelectedHoverTop = 
themer()->get_color("AudioClip:background:selected:mousehover:top");
+       QColor bg_colSelectedHoverBottom = 
themer()->get_color("AudioClip:background:selected:mousehover:bottom");
+       if (bg_colSelectedHoverTop == bg_colSelectedHoverBottom) {
+               m_brushBgSelectedHover = QBrush(bg_colSelectedHoverTop);
+       } else {
+               QLinearGradient bg_gradientSelectedHover(QPoint(0, 0), 
QPoint(0, m_height));
+               bg_gradientSelectedHover.setSpread(QGradient::RepeatSpread);
+               bg_gradientSelectedHover.setColorAt(0, bg_colSelectedHoverTop);
+               bg_gradientSelectedHover.setColorAt(1, 
bg_colSelectedHoverBottom);
+               m_brushBgSelectedHover = QBrush(bg_gradientSelectedHover);
+       }
+
+       QColor bg_colTop = themer()->get_color("AudioClip:background:top");
+       QColor bg_colBottom = 
themer()->get_color("AudioClip:background:bottom");
+       if (bg_colTop == bg_colBottom) {
+               m_brushBg = QBrush(bg_colTop);
+       } else {
+               QLinearGradient bg_gradient(QPoint(0, 0), QPoint(0, m_height));
+               bg_gradient.setSpread(QGradient::RepeatSpread);
+               bg_gradient.setColorAt(0, bg_colTop);
+               bg_gradient.setColorAt(1, bg_colBottom);
+               m_brushBg = QBrush(bg_gradient);
+       }
+
+       QColor bg_colHoverTop = 
themer()->get_color("AudioClip:background:mousehover:top");
+       QColor bg_colHoverBottom = 
themer()->get_color("AudioClip:background:mousehover:bottom");
+       if (bg_colHoverTop == bg_colHoverBottom) {
+               m_brushBgHover = QBrush(bg_colHoverTop);
+       } else {
+               QLinearGradient bg_gradientHover(QPoint(0, 0), QPoint(0, 
m_height));
+               bg_gradientHover.setSpread(QGradient::RepeatSpread);
+               bg_gradientHover.setColorAt(0, bg_colHoverTop);
+               bg_gradientHover.setColorAt(1, bg_colHoverBottom);
+               m_brushBgHover = QBrush(bg_gradientHover);
+       }
+
+       // Foreground (Waveforms)
+       QColor fg_colTop = 
themer()->get_color("AudioClip:wavemacroview:brush:top");
+       QColor fg_colBottom = 
themer()->get_color("AudioClip:wavemacroview:brush:bottom");
+       if (fg_colTop == fg_colBottom) {
+               m_brushFg = QBrush(fg_colTop);
+       } else {
+               QLinearGradient fg_gradient(QPoint(0, 0), QPoint(0, m_height));
+               fg_gradient.setSpread(QGradient::RepeatSpread);
+               fg_gradient.setColorAt(0, fg_colTop);
+               fg_gradient.setColorAt(1, fg_colBottom);
+               m_brushFg = QBrush(fg_gradient);
+       }
+
+       QColor fg_colHoverTop = 
themer()->get_color("AudioClip:wavemacroview:brush:hover:top");
+       QColor fg_colHoverBottom = 
themer()->get_color("AudioClip:wavemacroview:brush:hover:bottom");
+       if (fg_colHoverTop == fg_colHoverBottom) {
+               m_brushFgHover = QBrush(fg_colHoverTop);
+       } else {
+               QLinearGradient fg_gradientHover(QPoint(0, 0), QPoint(0, 
m_height));
+               fg_gradientHover.setSpread(QGradient::RepeatSpread);
+               fg_gradientHover.setColorAt(0, fg_colHoverTop);
+               fg_gradientHover.setColorAt(1, fg_colHoverBottom);
+               m_brushFgHover = QBrush(fg_gradientHover);
+       }
+
+       QColor fg_colEditTop = 
themer()->get_color("AudioClip:wavemacroview:brush:curvemode:top");
+       QColor fg_colEditBottom = 
themer()->get_color("AudioClip:wavemacroview:brush:curvemode:bottom");
+       if (fg_colEditTop == fg_colEditBottom) {
+               m_brushFgEdit = QBrush(fg_colEditTop);
+       } else {
+               QLinearGradient fg_gradientEdit(QPoint(0, 0), QPoint(0, 
m_height));
+               fg_gradientEdit.setSpread(QGradient::RepeatSpread);
+               fg_gradientEdit.setColorAt(0, fg_colEditTop);
+               fg_gradientEdit.setColorAt(1, fg_colEditBottom);
+               m_brushFgEdit = QBrush(fg_gradientEdit);
+       }
+
+       QColor fg_colEditHoverTop = 
themer()->get_color("AudioClip:wavemacroview:brush:curvemode:hover:top");
+       QColor fg_colEditHoverBottom = 
themer()->get_color("AudioClip:wavemacroview:brush:curvemode:hover:bottom");
+       if (fg_colEditHoverTop == fg_colEditHoverBottom) {
+               m_brushFgEditHover = QBrush(fg_colEditHoverTop);
+       } else {
+               QLinearGradient fg_gradientEditHover(QPoint(0, 0), QPoint(0, 
m_height));
+               fg_gradientEditHover.setSpread(QGradient::RepeatSpread);
+               fg_gradientEditHover.setColorAt(0, fg_colEditHoverTop);
+               fg_gradientEditHover.setColorAt(1, fg_colEditHoverBottom);
+               m_brushFgEditHover = QBrush(fg_gradientEditHover);
+       }
+
+       QColor fg_colMutedTop = 
themer()->get_color("AudioClip:wavemacroview:brush:muted:top");
+       QColor fg_colMutedBottom = 
themer()->get_color("AudioClip:wavemacroview:brush:muted:bottom");
+       if (fg_colMutedTop == fg_colMutedBottom) {
+               m_brushFgMuted = QBrush(fg_colMutedTop);
+       } else {
+               QLinearGradient fg_gradientMuted(QPoint(0, 0), QPoint(0, 
m_height));
+               fg_gradientMuted.setSpread(QGradient::RepeatSpread);
+               fg_gradientMuted.setColorAt(0, fg_colMutedTop);
+               fg_gradientMuted.setColorAt(1, fg_colMutedBottom);
+               m_brushFgMuted = QBrush(fg_gradientMuted);
+       }
+}
+
 void AudioClipView::create_clipinfo_string()
 {
        PENTER;
@@ -618,6 +758,7 @@
 void AudioClipView::set_height( int height )
 {
        m_height = height;
+       create_brushes();
 }
 
 int AudioClipView::get_childview_y_offset() const

Index: src/traverso/songcanvas/AudioClipView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- src/traverso/songcanvas/AudioClipView.h     3 Jul 2007 14:33:44 -0000       
1.28
+++ src/traverso/songcanvas/AudioClipView.h     8 Jul 2007 19:45:07 -0000       
1.29
@@ -97,9 +97,23 @@
        // theme data
        int m_drawbackground;
        int m_fillwave;
-       QColor m_backgroundColor;
-       QColor m_backgroundColorMouseHover;
+       QColor m_backgroundColorTop;
+       QColor m_backgroundColorBottom;
+       QColor m_backgroundColorMouseHoverTop;
+       QColor m_backgroundColorMouseHoverBottom;
        QBrush m_waveBrush;
+       QBrush m_brushBgRecording;
+       QBrush m_brushBgMuted;
+       QBrush m_brushBgMutedHover;
+       QBrush m_brushBgSelected;
+       QBrush m_brushBgSelectedHover;
+       QBrush m_brushBg;
+       QBrush m_brushBgHover;
+       QBrush m_brushFg;
+       QBrush m_brushFgHover;
+       QBrush m_brushFgMuted;
+       QBrush m_brushFgEdit;
+       QBrush m_brushFgEditHover;
        
        QString m_clipinfoString;
 
@@ -108,6 +122,7 @@
        void draw_clipinfo_area(QPainter* painter, int xstart, int pixelcount);
        void draw_peaks(QPainter* painter, int xstart, int pixelcount);
        void start_peak_data_loading();
+       void create_brushes();
        
        friend class FadeView;
 




reply via email to

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