diff options
Diffstat (limited to 'src/skingui')
-rw-r--r-- | src/skingui/mediabarpanel.cpp | 2 | ||||
-rw-r--r-- | src/skingui/mediapanel.cpp | 4 | ||||
-rw-r--r-- | src/skingui/mediapanel.h | 4 | ||||
-rw-r--r-- | src/skingui/panelseeker.cpp | 16 | ||||
-rw-r--r-- | src/skingui/panelseeker.h | 12 | ||||
-rw-r--r-- | src/skingui/skingui.cpp | 11 |
6 files changed, 44 insertions, 5 deletions
diff --git a/src/skingui/mediabarpanel.cpp b/src/skingui/mediabarpanel.cpp index f7ef46d..fc3bf62 100644 --- a/src/skingui/mediabarpanel.cpp +++ b/src/skingui/mediabarpanel.cpp @@ -101,6 +101,8 @@ void MediaBarPanel::setCore(Core *c) connect(core, SIGNAL(showTime(double)), this, SLOT(gotCurrentTime(double))); connect(core, SIGNAL(mediaInfoChanged()), this, SLOT(updateMediaInfo())); connect(core, SIGNAL(buffering()), this, SLOT(setBuffering())); + connect(mediaPanel, SIGNAL(seekerWheelUp()), core, SLOT(wheelUp())); + connect(mediaPanel, SIGNAL(seekerWheelDown()), core, SLOT(wheelDown())); } void MediaBarPanel::setDuration() diff --git a/src/skingui/mediapanel.cpp b/src/skingui/mediapanel.cpp index acdc2ec..db777f7 100644 --- a/src/skingui/mediapanel.cpp +++ b/src/skingui/mediapanel.cpp @@ -54,7 +54,7 @@ MediaPanel::MediaPanel(QWidget *parent) resolutionLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); repeatButton = new MyButton(this); shuffleButton = new MyButton(this); - seeker = new PanelSeeker; + seeker = new PanelTimeSeeker; seeker->setObjectName("panel-seeker"); seeker->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Ignored); #ifdef SEEKBAR_RESOLUTION @@ -97,6 +97,8 @@ MediaPanel::MediaPanel(QWidget *parent) timer->setInterval(2000); connect(timer, SIGNAL(timeout()), this, SLOT(reverseStatus())); connect(seeker, SIGNAL(valueChanged(int)), this, SIGNAL(seekerChanged(int))); + connect(seeker, SIGNAL(wheelUp()), this, SIGNAL(seekerWheelUp())); + connect(seeker, SIGNAL(wheelDown()), this, SIGNAL(seekerWheelDown())); } MediaPanel::~MediaPanel() { diff --git a/src/skingui/mediapanel.h b/src/skingui/mediapanel.h index 639f8ec..d043955 100644 --- a/src/skingui/mediapanel.h +++ b/src/skingui/mediapanel.h @@ -103,7 +103,7 @@ private: QPixmap rightBackground; ScrollingLabel* mediaLabel; QLabel *resolutionLabel; - PanelSeeker* seeker; + PanelTimeSeeker* seeker; MyButton* repeatButton; MyButton* shuffleButton; QLabel* elapsedLabel; @@ -123,6 +123,8 @@ protected: signals: void seekerChanged(int); + void seekerWheelUp(); + void seekerWheelDown(); public: friend class IconSetter; diff --git a/src/skingui/panelseeker.cpp b/src/skingui/panelseeker.cpp index 465c215..b876eb2 100644 --- a/src/skingui/panelseeker.cpp +++ b/src/skingui/panelseeker.cpp @@ -304,6 +304,8 @@ void PanelSeeker::changeEvent(QEvent *e) void PanelSeeker::timerEvent(QTimerEvent *t) { + if (bufferingPix.width() < 1) return; + if(!state.testFlag(Buffering)) { killTimer(t->timerId()); @@ -353,4 +355,18 @@ void PanelSeeker::wheelEvent(QWheelEvent *e) } +void PanelTimeSeeker::wheelEvent(QWheelEvent *e) { + qDebug("PanelTimeSeeker::wheelEvent: delta: %d", e->delta()); + e->accept(); + + if (e->orientation() == Qt::Vertical) { + if (e->delta() >= 0) + emit wheelUp(); + else + emit wheelDown(); + } else { + qDebug("PanelTimeSeeker::wheelEvent: horizontal event received, doing nothing"); + } +} + #include "moc_panelseeker.cpp" diff --git a/src/skingui/panelseeker.h b/src/skingui/panelseeker.h index 3f98835..510bafc 100644 --- a/src/skingui/panelseeker.h +++ b/src/skingui/panelseeker.h @@ -128,4 +128,16 @@ protected: }; Q_DECLARE_OPERATORS_FOR_FLAGS(PanelSeeker::States) + +class PanelTimeSeeker : public PanelSeeker { + Q_OBJECT + +signals: + void wheelUp(); + void wheelDown(); + +protected: + void wheelEvent(QWheelEvent *e); +}; + #endif // PANELSEEKER_H diff --git a/src/skingui/skingui.cpp b/src/skingui/skingui.cpp index 760c9c8..035f5a3 100644 --- a/src/skingui/skingui.cpp +++ b/src/skingui/skingui.cpp @@ -101,12 +101,17 @@ void SkinGui::changeStyleSheet(QString style) { } else { QString qss = Images::styleSheet(); +#ifdef USE_RESOURCES + Images::setTheme(pref->iconset); + QString path = ":/" + pref->iconset; +#else QDir current = QDir::current(); QString td = Images::themesDirectory(); - QString relativePath = current.relativeFilePath(td); + QString path = current.relativeFilePath(td); +#endif qss.replace(QRegExp("url\\s*\\(\\s*([^\\);]+)\\s*\\)", Qt::CaseSensitive, QRegExp::RegExp2), - QString("url(%1\\1)").arg(relativePath + "/")); - //qDebug("qss: %s", qss.toLatin1().constData()); + QString("url(%1\\1)").arg(path + "/")); + //qDebug("SkinGui::changeStyleSheet: qss: %s", qss.toLatin1().constData()); qApp->setStyleSheet(qss); } } |