[Top][All Lists]
[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;
- [Traverso-commit] traverso resources/themes/default/traversotheme...,
Nicola Doebelin <=