From e15cfce0e93c4e9aab7dd7a99d02a0b69f7bca6a Mon Sep 17 00:00:00 2001 From: "Tim E. Real" Date: Fri, 12 Nov 2010 01:32:41 +0000 Subject: WIP: Mixer and strips re-designed to be theme/font friendly - no more fixed STRIP_WIDTH. Fixed Slider, Knob, Rack and DoubleEntry classes. --- muse2/ChangeLog | 3 ++ muse2/muse/mixer/amixer.cpp | 19 ++++++----- muse2/muse/mixer/astrip.cpp | 41 +++++++++++----------- muse2/muse/mixer/astrip.h | 2 +- muse2/muse/mixer/mstrip.cpp | 33 +++++++++--------- muse2/muse/mixer/rack.cpp | 9 +++++ muse2/muse/mixer/rack.h | 1 + muse2/muse/mixer/strip.cpp | 13 ++++++- muse2/muse/widgets/doublelabel.cpp | 19 ++++++++--- muse2/muse/widgets/doublelabel.h | 1 + muse2/muse/widgets/knob.cpp | 34 ++++++++++++------ muse2/muse/widgets/knob.h | 9 +++-- muse2/muse/widgets/slider.cpp | 70 ++++++++++++++++++++------------------ muse2/muse/widgets/slider.h | 1 - muse2/muse/widgets/sliderbase.cpp | 1 - muse2/muse/widgets/sliderbase.h | 5 ++- 16 files changed, 155 insertions(+), 106 deletions(-) diff --git a/muse2/ChangeLog b/muse2/ChangeLog index 7e9ab1f4..ce8b11e6 100644 --- a/muse2/ChangeLog +++ b/muse2/ChangeLog @@ -1,3 +1,6 @@ +11.11.2010 + - WIP: Mixer and strips re-designed to be theme/font friendly - no more fixed STRIP_WIDTH. (Tim) + - Fixed Slider, Knob and DoubleEntry classes. Knob anti-aliasing applied (where allowed). 10.11.2010 - Ported transport window to Qt4. The handle color needs a fix (Orcan) 09.11.2010 diff --git a/muse2/muse/mixer/amixer.cpp b/muse2/muse/mixer/amixer.cpp index 2f5363ac..140dca3b 100644 --- a/muse2/muse/mixer/amixer.cpp +++ b/muse2/muse/mixer/amixer.cpp @@ -48,6 +48,7 @@ AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c) cfg = c; oldAuxsSize = 0; routingDialog = 0; + setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding)); // TESTING Tim setWindowTitle(cfg->name); setWindowIcon(*museIcon); @@ -209,10 +210,10 @@ void AudioMixerApp::updateMixer(UpdateAction action) delete *ssi; stripList.erase(ssi); } - setMaximumWidth(STRIP_WIDTH * stripList.size() + __WIDTH_COMPENSATION); + ///setMaximumWidth((STRIP_WIDTH + 10) * stripList.size() + __WIDTH_COMPENSATION); // 10 REMOVE Tim // Added by Tim. p3.3.7 - if (stripList.size() < 8) - view->setMinimumWidth(stripList.size() * STRIP_WIDTH + __WIDTH_COMPENSATION); + ///if (stripList.size() < 8) + /// view->setMinimumWidth(stripList.size() * (STRIP_WIDTH + 10) + __WIDTH_COMPENSATION); // 10 REMOVE Tim return; } @@ -256,9 +257,9 @@ void AudioMixerApp::updateMixer(UpdateAction action) addStrip(*i, idx++); } - setMaximumWidth(STRIP_WIDTH * stripList.size() + __WIDTH_COMPENSATION); - if (stripList.size() < 8) - view->setMinimumWidth(stripList.size() * STRIP_WIDTH + __WIDTH_COMPENSATION); + ///setMaximumWidth((STRIP_WIDTH + 10) * stripList.size() + __WIDTH_COMPENSATION); // 10 REMOVE Tim + ///if (stripList.size() < 8) + /// view->setMinimumWidth(stripList.size() * (STRIP_WIDTH + 10) + __WIDTH_COMPENSATION); // 10 REMOVE Tim return; } @@ -341,9 +342,9 @@ void AudioMixerApp::updateMixer(UpdateAction action) addStrip(*i, idx++); } - setMaximumWidth(STRIP_WIDTH * idx + __WIDTH_COMPENSATION); - if (idx < 8) - view->setMinimumWidth(idx * STRIP_WIDTH + __WIDTH_COMPENSATION); + ///setMaximumWidth((STRIP_WIDTH + 10) * idx + __WIDTH_COMPENSATION); // 10 REMOVE Tim + ///if (idx < 8) + /// view->setMinimumWidth(idx * (STRIP_WIDTH + 10) + __WIDTH_COMPENSATION); // 10 REMOVE Tim } //--------------------------------------------------------- diff --git a/muse2/muse/mixer/astrip.cpp b/muse2/muse/mixer/astrip.cpp index 7ede1a2e..2b1b53cf 100644 --- a/muse2/muse/mixer/astrip.cpp +++ b/muse2/muse/mixer/astrip.cpp @@ -71,7 +71,7 @@ QWidget* MenuTitleItem::createWidget(QWidget *parent) return l; } -//--------------------------------------------------------- +/*//--------------------------------------------------------- // minimumSizeHint //--------------------------------------------------------- @@ -81,6 +81,7 @@ QSize AudioStrip::minimumSizeHint () const //return QWidget::minimumSizeHint(); return QSize(66,QWidget::minimumSizeHint().height()); } +*/ //--------------------------------------------------------- // heartBeat @@ -166,7 +167,7 @@ void AudioStrip::songChanged(int val) if (mute && (val & SC_MUTE)) { // mute && off mute->blockSignals(true); - mute->setOn(src->mute()); + mute->setChecked(src->mute()); mute->blockSignals(false); updateOffState(); } @@ -188,7 +189,7 @@ void AudioStrip::songChanged(int val) } solo->blockSignals(true); - solo->setOn(track->solo()); + solo->setChecked(track->solo()); solo->blockSignals(false); } if (val & SC_RECFLAG) @@ -205,7 +206,7 @@ void AudioStrip::songChanged(int val) if (val & SC_ROUTE) { if (pre) { pre->blockSignals(true); - pre->setOn(src->prefader()); + pre->setChecked(src->prefader()); pre->blockSignals(false); } } @@ -324,7 +325,7 @@ void AudioStrip::updateOffState() oR->setEnabled(val); if (off) { off->blockSignals(true); - off->setOn(track->off()); + off->setChecked(track->off()); off->blockSignals(false); } } @@ -566,7 +567,7 @@ void AudioStrip::updateChannels() } channel = c; stereo->blockSignals(true); - stereo->setOn(channel == 2); + stereo->setChecked(channel == 2); stereo->blockSignals(false); } @@ -591,7 +592,6 @@ Knob* AudioStrip::addKnob(int type, int id, DoubleLabel** dlabel) else knob->setToolTip(tr("aux send level")); - DoubleLabel* pl; if (type == 0) pl = new DoubleLabel(0, -1.0, +1.0, this); @@ -607,11 +607,10 @@ Knob* AudioStrip::addKnob(int type, int id, DoubleLabel** dlabel) if (type == 0) pl->setPrecision(2); else { - pl->setPrecision(0); pl->setPrecision(0); } pl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); - + QString label; if (type == 0) label = tr("Pan"); @@ -623,12 +622,13 @@ Knob* AudioStrip::addKnob(int type, int id, DoubleLabel** dlabel) plb->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); plb->setAlignment(Qt::AlignCenter); - QGridLayout* pangrid = new QGridLayout(); - pangrid->setMargin(0); - pangrid->addWidget(plb, 0, 0); - pangrid->addWidget(pl, 1, 0); - pangrid->addWidget(knob, 0, 1, 2, 1); - grid->addLayout(pangrid, _curGridRow++, 0, 1, 2); + grid->addWidget(plb, _curGridRow, 0); + grid->addWidget(pl, _curGridRow+1, 0); + grid->addWidget(knob, _curGridRow, 1, 2, 1); + //grid->addWidget(plb, _curGridRow, 0, Qt::AlignCenter); + //grid->addWidget(pl, _curGridRow+1, 0, Qt::AlignCenter); + //grid->addWidget(knob, _curGridRow, 1, 2, 1, Qt::AlignCenter); + _curGridRow += 2; connect(knob, SIGNAL(valueChanged(double,int)), pl, SLOT(setValue(double))); //connect(pl, SIGNAL(valueChanged(double, int)), SLOT(panChanged(double))); @@ -677,8 +677,8 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at) AudioTrack* t = (AudioTrack*)track; channel = at->channels(); - setMinimumWidth(STRIP_WIDTH); - + ///setMinimumWidth(STRIP_WIDTH); + int ch = 0; for (; ch < channel; ++ch) meter[ch] = new Meter(this); @@ -721,7 +721,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at) pre->setText(tr("Pre")); pre->setToolTip(tr("pre fader - post fader")); pre->setChecked(t->prefader()); - stereo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); + pre->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); connect(pre, SIGNAL(clicked(bool)), SLOT(preToggled(bool))); grid->addWidget(stereo, _curGridRow, 0); @@ -784,7 +784,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at) sl->setSuffix(tr("dB")); sl->setFrame(true); sl->setPrecision(0); - sl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); + sl->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum)); sl->setValue(fast_log10(t->volume()) * 20.0); connect(sl, SIGNAL(valueChanged(double,int)), SLOT(volLabelChanged(double))); @@ -794,7 +794,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at) connect(slider, SIGNAL(sliderPressed(int)), SLOT(volumePressed())); connect(slider, SIGNAL(sliderReleased(int)), SLOT(volumeReleased())); connect(slider, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(volumeRightClicked(const QPoint &))); - grid->addWidget(sl, _curGridRow++, 0, 1, 2); + grid->addWidget(sl, _curGridRow++, 0, 1, 2, Qt::AlignCenter); //--------------------------------------------------- // pan, balance @@ -916,6 +916,7 @@ AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at) autoType = new ComboBox(this); autoType->setFont(config.fonts[1]); autoType->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); + autoType->setAlignment(Qt::AlignCenter); autoType->insertItem(tr("Off"), AUTO_OFF); autoType->insertItem(tr("Read"), AUTO_READ); diff --git a/muse2/muse/mixer/astrip.h b/muse2/muse/mixer/astrip.h index b5a8612f..a60b4dd8 100644 --- a/muse2/muse/mixer/astrip.h +++ b/muse2/muse/mixer/astrip.h @@ -91,7 +91,7 @@ class AudioStrip : public Strip { public: AudioStrip(QWidget* parent, AudioTrack*); ~AudioStrip(); - virtual QSize minimumSizeHint () const; + ///virtual QSize minimumSizeHint () const; }; #endif diff --git a/muse2/muse/mixer/mstrip.cpp b/muse2/muse/mixer/mstrip.cpp index de3e6d7f..abf37a28 100644 --- a/muse2/muse/mixer/mstrip.cpp +++ b/muse2/muse/mixer/mstrip.cpp @@ -139,13 +139,11 @@ void MidiStrip::addKnob(int idx, const QString& tt, const QString& label, lb->setAlignment(Qt::AlignCenter); lb->setEnabled(enabled); - QGridLayout* gr = new QGridLayout(); - gr->setMargin(0); - gr->addWidget(lb, 0, 0); - gr->addWidget(dl, 1, 0); - gr->addWidget(knob, 0, 1, 2, 1); - grid->addLayout(gr, _curGridRow++, 0, 1, 2); - + grid->addWidget(lb, _curGridRow, 0); + grid->addWidget(dl, _curGridRow+1, 0); + grid->addWidget(knob, _curGridRow, 1, 2, 1); + _curGridRow += 2; + connect(knob, SIGNAL(sliderMoved(double,int)), slot); connect(knob, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(controlRightClicked(const QPoint &, int))); connect(dl, SIGNAL(valueChanged(double, int)), slot); @@ -174,7 +172,7 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t) addKnob(KNOB_VAR_SEND, tr("VariationSend"), tr("Var"), SLOT(setVariSend(double)), false); addKnob(KNOB_REV_SEND, tr("ReverbSend"), tr("Rev"), SLOT(setReverbSend(double)), false); addKnob(KNOB_CHO_SEND, tr("ChorusSend"), tr("Cho"), SLOT(setChorusSend(double)), false); - int auxsSize = song->auxs()->size(); + ///int auxsSize = song->auxs()->size(); ///if (auxsSize) //layout->addSpacing((STRIP_WIDTH/2 + 1) * auxsSize); ///grid->addSpacing((STRIP_WIDTH/2 + 1) * auxsSize); // ?? @@ -216,7 +214,7 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t) sl->setToolTip(tr("double click on/off")); sl->setFrame(true); sl->setPrecision(0); - sl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); + sl->setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Minimum)); // Set the label's slider 'buddy'. sl->setSlider(slider); @@ -260,7 +258,7 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t) connect(sl, SIGNAL(valueChanged(double, int)), SLOT(volLabelChanged(double))); connect(sl, SIGNAL(doubleClicked(int)), SLOT(labelDoubleClicked(int))); - grid->addWidget(sl, _curGridRow++, 0, 1, 2); + grid->addWidget(sl, _curGridRow++, 0, 1, 2, Qt::AlignCenter); //--------------------------------------------------- // pan, balance @@ -408,6 +406,7 @@ MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t) autoType = new ComboBox(this); autoType->setFont(config.fonts[1]); autoType->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum)); + autoType->setAlignment(Qt::AlignCenter); autoType->setEnabled(false); // Removed by T356. @@ -440,7 +439,8 @@ void MidiStrip::updateOffState() bool val = !track->off(); slider->setEnabled(val); sl->setEnabled(val); - //pan->setEnabled(val); + controller[KNOB_PAN].knob->setEnabled(val); + controller[KNOB_PAN].dl->setEnabled(val); label->setEnabled(val); if (record) @@ -453,11 +453,12 @@ void MidiStrip::updateOffState() autoType->setEnabled(val); if (iR) iR->setEnabled(val); - if (oR) - oR->setEnabled(val); + // TODO: Disabled for now. + //if (oR) + // oR->setEnabled(val); if (off) { off->blockSignals(true); - off->setOn(track->off()); + off->setChecked(track->off()); off->blockSignals(false); } } @@ -470,7 +471,7 @@ void MidiStrip::songChanged(int val) { if (mute && (val & SC_MUTE)) { // mute && off mute->blockSignals(true); - mute->setOn(track->isMute()); + mute->setChecked(track->isMute()); updateOffState(); mute->blockSignals(false); } @@ -492,7 +493,7 @@ void MidiStrip::songChanged(int val) useSoloIconSet2 = false; } solo->blockSignals(true); - solo->setOn(track->solo()); + solo->setChecked(track->solo()); solo->blockSignals(false); } diff --git a/muse2/muse/mixer/rack.cpp b/muse2/muse/mixer/rack.cpp index 1fbef665..b59b9439 100644 --- a/muse2/muse/mixer/rack.cpp +++ b/muse2/muse/mixer/rack.cpp @@ -137,6 +137,15 @@ QSize EffectRack::minimumSizeHint() const return QSize(10, 18 * PipelineDepth); } +//--------------------------------------------------------- +// SizeHint +//--------------------------------------------------------- + +QSize EffectRack::sizeHint() const + { + return minimumSizeHint(); + } + //--------------------------------------------------------- // menuRequested //--------------------------------------------------------- diff --git a/muse2/muse/mixer/rack.h b/muse2/muse/mixer/rack.h index edacfa29..438bbdb6 100644 --- a/muse2/muse/mixer/rack.h +++ b/muse2/muse/mixer/rack.h @@ -27,6 +27,7 @@ class EffectRack : public Q3ListBox { Q_OBJECT virtual QSize minimumSizeHint() const; + virtual QSize sizeHint() const; void startDrag(int idx); void initPlugin(Xml xml, int idx); diff --git a/muse2/muse/mixer/strip.cpp b/muse2/muse/mixer/strip.cpp index 394e6b73..cef793d0 100644 --- a/muse2/muse/mixer/strip.cpp +++ b/muse2/muse/mixer/strip.cpp @@ -165,12 +165,23 @@ Strip::Strip(QWidget* parent, Track* t) setBackgroundRole(QPalette::Mid); setFrameStyle(Panel | Raised); setLineWidth(2); + + // NOTE: Workaround for freakin' improper disabled button text colour (at least with Oxygen colours). + // Just set the parent palette. + QPalette pal(palette()); + pal.setColor(QPalette::Disabled, QPalette::ButtonText, + pal.color(QPalette::Disabled, QPalette::WindowText)); + setPalette(pal); + useSoloIconSet2 = false; track = t; meter[0] = 0; meter[1] = 0; - setFixedWidth(STRIP_WIDTH); + //setFixedWidth(STRIP_WIDTH); + //setMinimumWidth(STRIP_WIDTH); // TESTING Tim. + //setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding)); // TESTING Tim. + setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Expanding)); // TESTING Tim. grid = new QGridLayout(); grid->setMargin(0); diff --git a/muse2/muse/widgets/doublelabel.cpp b/muse2/muse/widgets/doublelabel.cpp index c20de1e2..af492738 100644 --- a/muse2/muse/widgets/doublelabel.cpp +++ b/muse2/muse/widgets/doublelabel.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include "utils.h" @@ -170,9 +171,10 @@ QSize DoubleLabel::sizeHint() const { QFontMetrics fm = fontMetrics(); int h = fm.height() + 4; - int n = _precision + 6; -#if 0 - double aval = fabs(val); + int n = _precision; + + ++n; // For some reason I have to add one digit. Shouldn't have to. + double aval = fmax(fabs(max), fabs(min)); if (aval >= 10.0) ++n; if (aval >= 100.0) @@ -183,7 +185,16 @@ QSize DoubleLabel::sizeHint() const ++n; if (aval >= 100000.0) ++n; -#endif + int w = fm.width(QString("-0.")) + fm.width('0') * n + 6; + if(!_suffix.isEmpty()) + { + w += fm.width(QString(" ")) + fm.width(_suffix); + } return QSize(w, h); } + +QSize DoubleLabel::minimumSizeHint() const +{ + return sizeHint(); +} diff --git a/muse2/muse/widgets/doublelabel.h b/muse2/muse/widgets/doublelabel.h index 6698ec57..0887368e 100644 --- a/muse2/muse/widgets/doublelabel.h +++ b/muse2/muse/widgets/doublelabel.h @@ -39,6 +39,7 @@ class DoubleLabel : public Dentry { DoubleLabel(QWidget*, const char* name = 0); DoubleLabel(double val, double min, double max, QWidget*); virtual QSize sizeHint() const; + virtual QSize minimumSizeHint () const; double minValue() const { return min; } double maxValue() const { return max; } double off() const { return _off; } diff --git a/muse2/muse/widgets/knob.cpp b/muse2/muse/widgets/knob.cpp index bfc46e77..9d94e54c 100644 --- a/muse2/muse/widgets/knob.cpp +++ b/muse2/muse/widgets/knob.cpp @@ -23,9 +23,8 @@ #include #include "mmath.h" -#include -#include -//Added by qt3to4: +#include +#include #include #include @@ -57,10 +56,10 @@ Knob::Knob(QWidget* parent, const char* name) d_maxScaleTicks = 11; d_knobWidth = 30; _faceColSel = FALSE; - d_faceColor = backgroundColor(); + d_faceColor = palette().color(QPalette::Window); d_curFaceColor = d_faceColor; d_altFaceColor = d_faceColor; - d_markerColor = foregroundColor(); + d_markerColor = palette().color(QPalette::WindowText); d_dotWidth = 8; setMinimumSize(30,30); @@ -101,7 +100,7 @@ void Knob::drawKnob(QPainter* p, const QRect& r) { QRect aRect; - QColorGroup g = colorGroup(); + const QPalette& pal = palette(); QPen pn; int bw2 = d_borderWidth / 2; @@ -123,18 +122,20 @@ void Knob::drawKnob(QPainter* p, const QRect& r) pn.setWidth(d_borderWidth); - pn.setColor(g.light()); + pn.setColor(pal.light()); p->setPen(pn); p->drawArc(aRect, 45*16,180*16); - pn.setColor(g.dark()); + pn.setColor(pal.dark()); p->setPen(pn); p->drawArc(aRect, 225*16,180*16); // // draw marker // - drawMarker(p, d_angle, d_markerColor); + //drawMarker(p, d_angle, isEnabled() ? d_markerColor : Qt::gray); + drawMarker(p, d_angle, pal.currentColorGroup() == QPalette::Disabled ? + pal.color(QPalette::Disabled, QPalette::WindowText) : d_markerColor); } //------------------------------------------------------------ @@ -299,9 +300,9 @@ void Knob::resizeEvent(QResizeEvent *) // paintEvent //------------------------------------------------------------ -void Knob::paintEvent(QPaintEvent* e) +void Knob::paintEvent(QPaintEvent*) { - QPainter p(this); +/* QPainter p(this); const QRect &r = e->rect(); if ((r == kRect) && d_newVal ) { // event from valueChange() @@ -319,6 +320,17 @@ void Knob::paintEvent(QPaintEvent* e) drawKnob(&p, kRect); } d_newVal = 0; +*/ + + QPainter p(this); + p.setRenderHint(QPainter::Antialiasing, true); + if(hasScale) + d_scale.draw(&p); + drawKnob(&p, kRect); + //drawMarker(&p, d_oldAngle, d_curFaceColor); + //drawMarker(&p, d_angle, d_markerColor); + + d_newVal = 0; } //------------------------------------------------------------ diff --git a/muse2/muse/widgets/knob.h b/muse2/muse/widgets/knob.h index baaf9a50..0e412d1e 100644 --- a/muse2/muse/widgets/knob.h +++ b/muse2/muse/widgets/knob.h @@ -1,10 +1,9 @@ #ifndef QWT_KNOB_H #define QWT_KNOB_H -#include -#include -#include -//Added by qt3to4: +#include "sliderbase.h" +#include "sclif.h" +#include #include #include @@ -50,7 +49,7 @@ class Knob : public SliderBase, public ScaleIf void drawKnob(QPainter *p, const QRect &r); void drawMarker(QPainter *p, double arc, const QColor &c); - void paintEvent(QPaintEvent *e); + void paintEvent(QPaintEvent *); void resizeEvent(QResizeEvent *e); double getValue(const QPoint &p); void getScrollMode( QPoint &p, const Qt::ButtonState &button, int &scrollMode, int &direction ); diff --git a/muse2/muse/widgets/slider.cpp b/muse2/muse/widgets/slider.cpp index 64b57f16..a1a9890a 100644 --- a/muse2/muse/widgets/slider.cpp +++ b/muse2/muse/widgets/slider.cpp @@ -1,9 +1,8 @@ #include #include "mmath.h" #include -#include -#include -//Added by qt3to4: +#include +#include #include #include @@ -186,10 +185,10 @@ void Slider::fontChange(const QFont & /*oldFont*/) void Slider::drawSlider(QPainter *p, const QRect &r) { - QColorGroup g = colorGroup(); - QBrush brBack(g.background()); + const QPalette& pal = palette(); + QBrush brBack(pal.window()); QBrush brMid; - QBrush brDark(g.dark()); + QBrush brDark(pal.dark()); QRect cr; @@ -200,12 +199,12 @@ void Slider::drawSlider(QPainter *p, const QRect &r) if (d_bwTrough > 0) { qDrawShadePanel(p, r.x(), r.y(), r.width(), r.height(), - g, TRUE, d_bwTrough,0); + pal, TRUE, d_bwTrough,0); cr.setRect(r.x() + d_bwTrough, r.y() + d_bwTrough, r.width() - 2*d_bwTrough, r.height() - 2*d_bwTrough); - brMid = QBrush(g.mid()); + brMid = pal.mid(); } else { cr = r; @@ -242,18 +241,18 @@ void Slider::drawSlider(QPainter *p, const QRect &r) // Draw thumb // qDrawShadePanel(p,ipos, cr.y(), d_thumbLength, cr.height(), - colorGroup(), FALSE, d_borderWidth, &brBack); + pal, FALSE, d_borderWidth, &brBack); if (lineDist > 1) qDrawShadeLine(p,markerPos, cr.y() + lineDist , markerPos, cr.y() + cr.height() - lineDist, - colorGroup(), TRUE, 1); + pal, TRUE, 1); else { - p->setPen(g.dark()); + p->setPen(pal.dark()); p->drawLine(markerPos -1 , cr.y() + lineDist, markerPos -1, cr.y() + cr.height() - lineDist - 1); - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(markerPos, cr.y() + lineDist, markerPos, cr.y() + cr.height() - lineDist - 1); } @@ -279,17 +278,17 @@ void Slider::drawSlider(QPainter *p, const QRect &r) } qDrawShadePanel(p,cr.x(),ipos , cr.width(), d_thumbLength, - colorGroup(),FALSE,d_borderWidth, &brBack); + pal,FALSE,d_borderWidth, &brBack); if (lineDist > 1) qDrawShadeLine(p, cr.x() + lineDist , markerPos, cr.x() + cr.width() - lineDist, markerPos, - colorGroup(), TRUE, 1); + pal, TRUE, 1); else { - p->setPen(g.dark()); + p->setPen(pal.dark()); p->drawLine(cr.x() + lineDist, markerPos - 1 , cr.x() + cr.width() - lineDist - 1, markerPos - 1); - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(cr.x() + lineDist, markerPos, cr.x() + cr.width() - lineDist - 1 , markerPos); } @@ -314,7 +313,7 @@ void Slider::drawHsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, int ws, ds, dLeft; int lPos, rPos; QRect rSlot; - const QColorGroup &g = colorGroup(); + const QPalette& pal = palette(); ws = rBound.height(); if ((ws / 2) * 2 != ws) @@ -339,19 +338,19 @@ void Slider::drawHsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, p->fillRect(rBound.x(),rSlot.y(), rPos - rBound.left(),ws,brBack); - p->setPen(g.dark()); + p->setPen(pal.dark()); if (rSlot.x() < rThumb.left()) p->drawLine(rSlot.x(), rSlot.bottom(), rSlot.x(), rSlot.top()); if (rSlot.x() < rThumb.left() - 1) { p->drawLine(rSlot.x(), rSlot.top(), rThumb.left() - 1, rSlot.top()); - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(rSlot.x() + 1, rSlot.bottom(), rThumb.left() - 1, rSlot.bottom()); p->fillRect(rSlot.x() + 1, rSlot.y() + 1, dLeft - ds -1, - rSlot.height() -2, QBrush(Qt::black)); - + rSlot.height() -2, QBrush(pal.currentColorGroup() == QPalette::Disabled ? + pal.color(QPalette::Disabled, QPalette::WindowText) : Qt::black)); } } @@ -366,22 +365,23 @@ void Slider::drawHsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, if (lPos <= rBound.right()) p->fillRect(lPos, rSlot.y() , rBound.right() - lPos + 1, ws ,brBack); - p->setPen(g.dark()); + p->setPen(pal.dark()); if (rSlot.right() > rThumb.right()) { p->drawLine(rThumb.right() + 1, rSlot.top(), rSlot.right(), rSlot.top()); - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(rSlot.right(), rSlot.bottom(), rSlot.right(), rSlot.top() + 1); } if (rSlot.right() > rThumb.right() + 1) { - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(rThumb.right() + 1, rSlot.bottom(), rSlot.right() -1, rSlot.bottom()); p->fillRect(rThumb.right() + 1, rSlot.y() + 1, rSlot.right() - rThumb.right() - 1, - rSlot.height() -2, QBrush(Qt::black)); + rSlot.height() -2, QBrush(pal.currentColorGroup() == QPalette::Disabled ? + pal.color(QPalette::Disabled, QPalette::WindowText) : Qt::black)); } } @@ -409,7 +409,7 @@ void Slider::drawVsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, int ws, ds, dTop; int lPos, hPos; QRect rSlot; - const QColorGroup &g = colorGroup(); + const QPalette& pal = palette(); ws = rBound.width(); if ((ws / 2) * 2 != ws) @@ -434,7 +434,7 @@ void Slider::drawVsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, p->fillRect(rSlot.x(),rBound.y(), ws, hPos - rBound.top(),brBack); - p->setPen(g.dark()); + p->setPen(pal.dark()); if (rSlot.top() < rThumb.top()) p->drawLine(rSlot.left(), rSlot.top(), rSlot.right(), rSlot.top()); @@ -442,12 +442,13 @@ void Slider::drawVsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, if (rSlot.top() < rThumb.top() - 1) { p->drawLine(rSlot.left(), rThumb.top() - 1, rSlot.left(), rSlot.top()); - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(rSlot.right(), rSlot.top() + 1, rSlot.right(), rThumb.top() - 1); p->fillRect(rSlot.x() + 1, rSlot.y() + 1, rSlot.width() - 2, - dTop - ds -1, QBrush(Qt::black)); + dTop - ds -1, QBrush(pal.currentColorGroup() == QPalette::Disabled ? + pal.color(QPalette::Disabled, QPalette::WindowText) : Qt::black)); } } @@ -464,22 +465,23 @@ void Slider::drawVsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, if (lPos <= rBound.bottom()) p->fillRect(rSlot.left(), lPos, ws, rBound.bottom() - lPos + 1, brBack); - p->setPen(g.dark()); + p->setPen(pal.dark()); if (rSlot.bottom() > rThumb.bottom()) { p->drawLine(rSlot.left(), rThumb.bottom() + 1, rSlot.left(), rSlot.bottom()); - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(rSlot.left() * 1, rSlot.bottom(), rSlot.right(), rSlot.bottom()); } if (rSlot.bottom() > rThumb.bottom() + 1) { - p->setPen(g.light()); + p->setPen(pal.light()); p->drawLine(rSlot.right(), rThumb.bottom() + 1, rSlot.right(), rSlot.bottom()); p->fillRect(rSlot.left() + 1, rThumb.bottom() + 1, rSlot.width() - 2, rSlot.bottom() - rThumb.bottom() - 1, - QBrush(Qt::black)); + QBrush(pal.currentColorGroup() == QPalette::Disabled ? + pal.color(QPalette::Disabled, QPalette::WindowText) : Qt::black)); } } @@ -663,7 +665,7 @@ void Slider::paintEvent(QPaintEvent* /*e*/) if (p.begin(this)) { if (d_scalePos != None) { - p.fillRect(this->rect(), this->backgroundColor()); + p.fillRect(rect(), palette().window()); d_scale.draw(&p); } drawSlider(&p, d_sliderRect); diff --git a/muse2/muse/widgets/slider.h b/muse2/muse/widgets/slider.h index 499229e1..79969807 100644 --- a/muse2/muse/widgets/slider.h +++ b/muse2/muse/widgets/slider.h @@ -17,7 +17,6 @@ #include "sclif.h" #include "sliderbase.h" #include "scldraw.h" -//Added by qt3to4: #include #include diff --git a/muse2/muse/widgets/sliderbase.cpp b/muse2/muse/widgets/sliderbase.cpp index 0d814d3c..3ce15c1e 100644 --- a/muse2/muse/widgets/sliderbase.cpp +++ b/muse2/muse/widgets/sliderbase.cpp @@ -14,7 +14,6 @@ #include #include "sliderbase.h" #include "mmath.h" -//Added by qt3to4: #include #include #include diff --git a/muse2/muse/widgets/sliderbase.h b/muse2/muse/widgets/sliderbase.h index 47084246..0dd39659 100644 --- a/muse2/muse/widgets/sliderbase.h +++ b/muse2/muse/widgets/sliderbase.h @@ -16,11 +16,10 @@ #include "drange.h" #include -#include -#include +#include +#include //#include #include -//Added by qt3to4: #include #include #include -- cgit v1.2.3