[vlc-commits] [Git][videolan/vlc][master] 7 commits: qt: rename `PlayerController::jumpToTime()` to `PlayerController::jumpTime()`
Steve Lhomme (@robUx4)
gitlab at videolan.org
Wed Jun 24 03:00:50 UTC 2026
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
a0aee3d5 by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qt: rename `PlayerController::jumpToTime()` to `PlayerController::jumpTime()`
`::jumpToTime()` can be confused with `::setTime()`.
- - - - -
cae7867f by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qt: relax time comparison when adjusting lyric current index in `PlayerController`
Due to various reasons, such as floating point conversions, we can give some room
to compensate for the error.
- - - - -
3fc7654d by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qt: register `vlcTick`, `vlcTime`, and `vlcDuration` value types in `VLC.Player`
... rather than `VLC.MainInterface`.
- - - - -
d63f5c5d by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qml: introduce signal `playerPositionChangeRequested(vlcTime)` in `LyricsFlickable`
- - - - -
ada03a0d by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qml: add note regarding using `timedText` value type in `LyricsFlickable`
- - - - -
39287aeb by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qml: use tap handler to request player time change in `LyricsFlickable`
- - - - -
5122ba39 by Fatih Uzunoglu at 2026-06-24T02:42:09+00:00
qml: handle `LyricsFlickable::playerPositionChangeRequested()` signal in `Player`
- - - - -
5 changed files:
- modules/gui/qt/maininterface/mainui.cpp
- modules/gui/qt/player/player_controller.cpp
- modules/gui/qt/player/player_controller.hpp
- modules/gui/qt/player/qml/LyricsFlickable.qml
- modules/gui/qt/player/qml/Player.qml
Changes:
=====================================
modules/gui/qt/maininterface/mainui.cpp
=====================================
@@ -230,9 +230,6 @@ void MainUI::registerQMLTypes()
qmlRegisterUncreatableType<QAbstractItemModel>(uri, versionMajor, versionMinor, "QtAbstractItemModel", "");
qmlRegisterUncreatableType<QWindow>(uri, versionMajor, versionMinor, "QtWindow", "");
qmlRegisterUncreatableType<QScreen>(uri, versionMajor, versionMinor, "QtScreen", "");
- qmlRegisterTypesAndRevisions<VLCDuration>(uri, versionMajor);
- qmlRegisterTypesAndRevisions<VLCTime>(uri, versionMajor);
- qmlRegisterUncreatableMetaObject(VLCTickForeign::staticMetaObject, uri, versionMajor, versionMinor, "VLCTick", "Not Instantiable" );
qmlRegisterType<VideoSurface>(uri, versionMajor, versionMinor, "VideoSurface");
qmlRegisterUncreatableType<BaseModel>( uri, versionMajor, versionMinor, "BaseModel", "Base Model is uncreatable." );
qmlRegisterUncreatableType<VLCVarChoiceModel>(uri, versionMajor, versionMinor, "VLCVarChoiceModel", "generic variable with choice model" );
@@ -299,6 +296,9 @@ void MainUI::registerQMLTypes()
qmlRegisterSingletonInstance<PlayerController>(uri, versionMajor, versionMinor, "Player", m_intf->p_mainPlayerController);
qmlRegisterTypesAndRevisions<TimedText>(uri, versionMajor);
qmlRegisterType<PlayerHighResolutionTimeUpdater>(uri, versionMajor, versionMinor, "HighResolutionTimeUpdater");
+ qmlRegisterUncreatableMetaObject(VLCTickForeign::staticMetaObject, uri, versionMajor, versionMinor, "VLCTick", "Not Instantiable" );
+ qmlRegisterTypesAndRevisions<VLCDuration>(uri, versionMajor);
+ qmlRegisterTypesAndRevisions<VLCTime>(uri, versionMajor);
qmlRegisterType<QmlBookmarkMenu>( uri, versionMajor, versionMinor, "QmlBookmarkMenu" );
qmlRegisterType<QmlProgramMenu>( uri, versionMajor, versionMinor, "QmlProgramMenu" );
=====================================
modules/gui/qt/player/player_controller.cpp
=====================================
@@ -1407,10 +1407,10 @@ void PlayerController::jumpBwd()
vlc_player_JumpTime( d->m_player, vlc_tick_from_sec( -i_interval ) );
}
-void PlayerController::jumpToTime(VLCTime i_time)
+void PlayerController::jumpTime(VLCTime i_time)
{
Q_D(PlayerController);
- msg_Dbg( d->p_intf, "jumpToTime");
+ msg_Dbg( d->p_intf, "jumpTime");
vlc_player_locker lock{ d->m_player };
if( !d->isCurrentItemSynced() )
return;
@@ -1874,7 +1874,7 @@ void PlayerController::updateTime(vlc_tick_t system_now, bool forceUpdate)
for (int i = 0; i < lyrics.size(); ++i)
{
- if (lyrics[i].time().toVLCTick() > currentTime)
+ if ((lyrics[i].time().toVLCTick() - 1) > currentTime)
break;
currentIndex = i;
}
=====================================
modules/gui/qt/player/player_controller.hpp
=====================================
@@ -240,7 +240,7 @@ public slots:
void jumpFwd();
void jumpBwd();
- void jumpToTime( VLCTime i_time );
+ void jumpTime( VLCTime i_time );
void jumpToPos( double );
void frameNext();
=====================================
modules/gui/qt/player/qml/LyricsFlickable.qml
=====================================
@@ -45,6 +45,9 @@ Flickable {
boundsBehavior: Flickable.StopAtBounds
clip: !fadingEdge.implicitClipping && (height < implicitHeight)
+ // TODO: `vlcTime` type can not be used due to Qt 6.2:
+ signal playerPositionChangeRequested(var time)
+
function snapToCurrentLyric() {
const idx = Player.currentLyricIndex
if (idx < 0)
@@ -103,6 +106,7 @@ Flickable {
id: lyricDelegate
required property int index
+ // TODO: `timedText` type can not be used due to Qt 6.2:
required property var modelData
readonly property bool isCurrent: index === Player.currentLyricIndex
@@ -140,6 +144,12 @@ Flickable {
enabled: lyricsFlickable.animationsEnabled
OpacityAnimator { duration: VLCStyle.duration_long }
}
+
+ TapHandler {
+ onTapped: {
+ lyricsFlickable.playerPositionChangeRequested(lyricDelegate.modelData.time)
+ }
+ }
}
}
}
=====================================
modules/gui/qt/player/qml/Player.qml
=====================================
@@ -476,7 +476,14 @@ FocusScope {
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
- contentItem: LyricsFlickable { id: lyricsFlickable }
+ contentItem: LyricsFlickable {
+ id: lyricsFlickable
+
+ onPlayerPositionChangeRequested: (time) => {
+ Player.setTime(time)
+ lyricsFlickable.lyricsSyncToPlayback = true
+ }
+ }
}
anchors.left: parent.left
anchors.right: parent.right
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/54017b7563ebc625f390ba7282f846a79680e397...5122ba3940c844efe553bb510169c6d359d82dff
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/54017b7563ebc625f390ba7282f846a79680e397...5122ba3940c844efe553bb510169c6d359d82dff
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
More information about the vlc-commits
mailing list