[UI] Add cache indicator to progressBar.
This commit is contained in:
parent
13f5fda250
commit
52ed2b6033
|
@ -151,6 +151,7 @@ MpvObject::MpvObject(QQuickItem * parent)
|
||||||
mpv_observe_property(mpv, 0, "media-title", MPV_FORMAT_STRING);
|
mpv_observe_property(mpv, 0, "media-title", MPV_FORMAT_STRING);
|
||||||
mpv_observe_property(mpv, 0, "sub-text", MPV_FORMAT_STRING);
|
mpv_observe_property(mpv, 0, "sub-text", MPV_FORMAT_STRING);
|
||||||
mpv_observe_property(mpv, 0, "time-pos", MPV_FORMAT_DOUBLE);
|
mpv_observe_property(mpv, 0, "time-pos", MPV_FORMAT_DOUBLE);
|
||||||
|
mpv_observe_property(mpv, 0, "demuxer-cache-duration", MPV_FORMAT_DOUBLE);
|
||||||
|
|
||||||
mpv_set_wakeup_callback(mpv, wakeup, this);
|
mpv_set_wakeup_callback(mpv, wakeup, this);
|
||||||
|
|
||||||
|
@ -244,6 +245,11 @@ void MpvObject::handle_mpv_event(mpv_event *event)
|
||||||
}
|
}
|
||||||
} else if (strcmp(prop->name, "sub-text") == 0) {
|
} else if (strcmp(prop->name, "sub-text") == 0) {
|
||||||
QMetaObject::invokeMethod(this,"setSubtitles");
|
QMetaObject::invokeMethod(this,"setSubtitles");
|
||||||
|
} else if (strcmp(prop->name, "demuxer-cache-duration") == 0) {
|
||||||
|
if (prop->format == MPV_FORMAT_DOUBLE) {
|
||||||
|
double duration = *(double *)prop->data;
|
||||||
|
QMetaObject::invokeMethod(this,"setCachedDuration",Q_ARG(QVariant,duration));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
960
src/qml/codes.js
960
src/qml/codes.js
File diff suppressed because one or more lines are too long
|
@ -199,6 +199,11 @@ ApplicationWindow {
|
||||||
progressBar.value = val
|
progressBar.value = val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setCachedDuration(val) {
|
||||||
|
cachedLength.width = progressBar.width / progressBar.to
|
||||||
|
* (val - progressBar.value) - (progressBar.handle.width / 2)
|
||||||
|
}
|
||||||
|
|
||||||
function skipToNinth(val) {
|
function skipToNinth(val) {
|
||||||
console.log(val)
|
console.log(val)
|
||||||
var skipto = 0
|
var skipto = 0
|
||||||
|
@ -278,7 +283,7 @@ ApplicationWindow {
|
||||||
x: 0
|
x: 0
|
||||||
y: parent.height
|
y: parent.height
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: controlsBar.height + progressBar.height
|
height: (controlsBar.height * 2) + progressBar.height
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: 0
|
anchors.bottomMargin: 0
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
@ -291,7 +296,7 @@ ApplicationWindow {
|
||||||
id: mouseAreaPlayer
|
id: mouseAreaPlayer
|
||||||
width: parent.width
|
width: parent.width
|
||||||
anchors.bottom: mouseAreaBar.top
|
anchors.bottom: mouseAreaBar.top
|
||||||
anchors.bottomMargin: controlsBar.height / 22
|
anchors.bottomMargin: 10
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: 0
|
anchors.rightMargin: 0
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
@ -879,8 +884,20 @@ ApplicationWindow {
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: cachedLength
|
||||||
|
z: 1
|
||||||
|
//anchors.left: progressBar.handle.right
|
||||||
|
anchors.left: progressBar.handle.horizontalCenter
|
||||||
|
anchors.bottom: progressBar.background.bottom
|
||||||
|
anchors.top: progressBar.background.top
|
||||||
|
height: progressBar.background.height
|
||||||
|
color: "white"
|
||||||
|
opacity: 0.8
|
||||||
|
}
|
||||||
|
|
||||||
handle: Rectangle {
|
handle: Rectangle {
|
||||||
|
z: 2
|
||||||
id: handleRect
|
id: handleRect
|
||||||
x: progressBar.leftPadding + progressBar.visualPosition
|
x: progressBar.leftPadding + progressBar.visualPosition
|
||||||
* (progressBar.availableWidth - width)
|
* (progressBar.availableWidth - width)
|
||||||
|
|
Loading…
Reference in a new issue