summaryrefslogtreecommitdiffstats
path: root/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp')
-rw-r--r--kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp b/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp
index b28b264..35efd80 100644
--- a/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp
+++ b/kaffeine/src/player-parts/libmpv-part/libmpv_part.cpp
@@ -392,12 +392,26 @@ bool MpvPart::isStream() {
return false;
}
+bool MpvPart::isSeekable() {
+ if (!m_mpv) return false;
+
+ int result;
+ if (mpv_get_property(m_mpv, "seekable", MPV_FORMAT_FLAG, &result) < 0) {
+ return false;
+ }
+ return (bool)result;
+}
+
void MpvPart::resetTime() {
m_playtime->setText("0:00:00");
m_position->setValue(0);
}
void MpvPart::slotStartSeeking() {
+ if (!isSeekable()) {
+ emit setStatusBarText( i18n("Cannot seek current file!") );
+ return;
+ }
m_seeking = true;
slotPause(true);
}