[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/kmid/src
From: Pedro Lopez-Cabanillas <pedro.lopez.cabanillas () gmail ! com>
Date: 2010-07-20 9:40:35
Message-ID: 20100720094035.B0300AC7AB () svn ! kde ! org
[Download RAW message or body]
SVN commit 1152076 by pedrol:
kmid_part: view buttons play/stop combined, tickless seeker.
M +7 -3 kmid_part.cpp
M +34 -22 kmid_partview.cpp
M +6 -4 kmid_partview.h
--- trunk/extragear/multimedia/kmid/src/kmid_part.cpp #1152075:1152076
@@ -271,6 +271,7 @@
m_pause->setEnabled(true);
m_pause->setChecked(false);
m_stop->setEnabled(true);
+ m_view->setPlayingState(true);
break;
case KMid::PausedState:
//kDebug() << "State: pause";
@@ -283,6 +284,7 @@
m_pause->setEnabled(false);
m_pause->setChecked(false);
m_stop->setEnabled(false);
+ m_view->setPlayingState(false);
break;
default:
//kDebug() << "State: empty";
@@ -291,19 +293,20 @@
m_pause->setEnabled(false);
m_pause->setChecked(false);
m_stop->setEnabled(false);
+ m_view->setPlayingState(false);
break;
}
}
void KMidPart::slotTick(qint64 ticks)
{
- m_view->slotTick(ticks);
+ m_view->setPosition(ticks);
emit tick(ticks);
}
void KMidPart::slotFinished()
{
- m_view->slotTick(0);
+ m_view->setPosition(0);
emit finished();
}
@@ -323,7 +326,7 @@
if (m_midiobj != 0) {
m_midiobj->setCurrentSource(localFile);
m_midiobj->seek(0);
- m_view->resetTimeSlider(m_midiobj->totalTime());
+ m_view->resetTimePosition(m_midiobj->totalTime());
}
return true;
}
@@ -393,6 +396,7 @@
void KMidPart::slotSourceChanged(QString src)
{
// auto-start
+ m_view->setPosition(0);
play();
emit sourceChanged(src);
}
--- trunk/extragear/multimedia/kmid/src/kmid_partview.cpp #1152075:1152076
@@ -29,40 +29,34 @@
KMidPartView::KMidPartView(QWidget *parent) :
KMediaPlayer::View(parent),
- m_seeking(false)
+ m_seeking(false),
+ m_playing(false)
{
QHBoxLayout* layout = new QHBoxLayout(this);
setLayout(layout);
- m_play = new QToolButton(this);
- m_play->setIcon(KIcon("media-playback-start"));
- m_play->setVisible(true);
- layout->addWidget(m_play);
- connect(m_play, SIGNAL(clicked()), SIGNAL(play()));
+ m_playstop = new QToolButton(this);
+ m_playstop->setIcon(KIcon("media-playback-start"));
+ m_playstop->setVisible(true);
+ layout->addWidget(m_playstop);
+ connect(m_playstop, SIGNAL(clicked()), SLOT(slotPlayStop()));
m_pause = new QToolButton(this);
m_pause->setIcon(KIcon("media-playback-pause"));
m_pause->setVisible(false);
+ m_pause->setEnabled(false);
layout->addWidget(m_pause);
connect(m_pause, SIGNAL(clicked()), SIGNAL(pause()));
- m_stop = new QToolButton(this);
- m_stop->setIcon(KIcon("media-playback-stop"));
- m_stop->setVisible(false);
- layout->addWidget(m_stop);
- connect(m_stop, SIGNAL(clicked()), SIGNAL(stop()));
-
m_seeker = new QSlider(this);
m_seeker->setRange(0, 10000);
- m_seeker->setTickInterval(10000 / 8);
m_seeker->setOrientation(Qt::Horizontal);
- m_seeker->setTickPosition(QSlider::TicksBelow);
m_seeker->setWhatsThis(i18nc("@info:whatsthis","Time position control"));
m_seeker->setTracking(false);
layout->addWidget(m_seeker);
connect(m_seeker, SIGNAL(sliderPressed()), SLOT(slotTimeSliderPressed()));
connect(m_seeker, SIGNAL(valueChanged(int)), SLOT(slotTimeSlider(int)));
- setButtons(Play | Seeker);
+ setButtons(Play | Stop | Seeker);
connect(this, SIGNAL(buttonsChanged(int)), SLOT(slotButtonsChanged(int)));
}
@@ -72,23 +66,19 @@
void KMidPartView::slotButtonsChanged(int buttons)
{
- m_play->setVisible((buttons & Play) != 0);
+ m_playstop->setVisible((buttons & (Play | Stop)) != 0 );
m_pause->setVisible((buttons & Pause) != 0);
- m_stop->setVisible((buttons & Stop) != 0);
m_seeker->setVisible((buttons & Seeker) != 0);
}
-void KMidPartView::resetTimeSlider(qint64 totalTime)
+void KMidPartView::resetTimePosition(qint64 totalTime)
{
m_seeker->setRange(0, totalTime);
- m_seeker->setTickInterval(totalTime / 8);
m_seeker->setSliderPosition(0);
m_seeking = false;
- if (button(Seeker))
- m_seeker->update();
}
-void KMidPartView::slotTick(qint64 tick)
+void KMidPartView::setPosition(qint64 tick)
{
if (!m_seeking)
m_seeker->setSliderPosition(tick);
@@ -104,3 +94,25 @@
{
m_seeking = true;
}
+
+void KMidPartView::slotPlayStop()
+{
+ if (m_playing)
+ emit stop();
+ else
+ emit play();
+}
+
+void KMidPartView::setPlayingState(bool isPlaying)
+{
+ if (m_playing != isPlaying) {
+ m_playing = isPlaying;
+ if (isPlaying) {
+ m_playstop->setIcon(KIcon("media-playback-stop"));
+ m_pause->setEnabled(true);
+ } else {
+ m_playstop->setIcon(KIcon("media-playback-start"));
+ m_pause->setEnabled(false);
+ }
+ }
+}
--- trunk/extragear/multimedia/kmid/src/kmid_partview.h #1152075:1152076
@@ -31,13 +31,15 @@
KMidPartView(QWidget *parent);
virtual ~KMidPartView();
- void resetTimeSlider(qint64 totalTime);
- void slotTick(qint64 tick);
+ void resetTimePosition(qint64 totalTime);
+ void setPosition(qint64 tick);
+ void setPlayingState(bool);
private slots:
void slotButtonsChanged(int);
void slotTimeSliderPressed();
void slotTimeSlider(int);
+ void slotPlayStop();
signals:
void play();
@@ -47,9 +49,9 @@
private:
bool m_seeking;
- QToolButton *m_play;
+ bool m_playing;
+ QToolButton *m_playstop;
QToolButton *m_pause;
- QToolButton *m_stop;
QSlider *m_seeker;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic