Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
  • b.sullender/vlc
  • hulxv/vlc
  • zyad-ayad/vlc
  • shocknovaa/vlc
  • gremlinflat/vlc
  • Pratham24D/vlc
  • hmaarrfk/vlc
412 results
Show changes
Commits on Source (6)
......@@ -286,6 +286,7 @@ libqt_plugin_la_SOURCES = \
util/workerthreadset.hpp util/workerthreadset.cpp \
util/base_model.hpp util/base_model_p.hpp util/base_model.cpp \
util/color_scheme_model.cpp util/color_scheme_model.hpp \
util/ui_notifier.cpp util/ui_notifier.hpp \
util/color_svg_image_provider.cpp util/color_svg_image_provider.hpp \
util/vlcaccess_image_provider.cpp util/vlcaccess_image_provider.hpp \
util/covergenerator.cpp \
......@@ -469,6 +470,7 @@ nodist_libqt_plugin_la_SOURCES = \
util/workerthreadset.moc.cpp \
util/base_model.moc.cpp \
util/color_scheme_model.moc.cpp \
util/ui_notifier.moc.cpp \
util/color_svg_image_provider.moc.cpp \
util/vlcaccess_image_provider.moc.cpp \
util/imageluminanceextractor.moc.cpp \
......@@ -1222,6 +1224,7 @@ libqml_module_widgets_a_QML = \
widgets/qml/CheckedDelegate.qml \
widgets/qml/ComboBoxExt.qml \
widgets/qml/AcrylicBackground.qml \
widgets/qml/FloatingNotification.qml \
widgets/qml/AnimatedBackground.qml \
widgets/qml/CSDThemeButton.qml \
widgets/qml/CSDThemeButtonSet.qml \
......
......@@ -46,6 +46,7 @@
#include "util/csdbuttonmodel.hpp"
#include "util/vlctick.hpp"
#include "util/list_selection_model.hpp"
#include "util/ui_notifier.hpp"
#include "dialogs/help/aboutmodel.hpp"
#include "dialogs/dialogs_provider.hpp"
......@@ -171,6 +172,8 @@ void MainUI::registerQMLTypes()
qmlRegisterSingletonInstance<MainCtx>(uri, versionMajor, versionMinor, "MainCtx", m_mainCtx);
qmlRegisterUncreatableType<SearchCtx>(uri, versionMajor, versionMinor, "SearchCtx", "");
qmlRegisterUncreatableType<SortCtx>(uri, versionMajor, versionMinor, "SortCtx", "");
qmlRegisterUncreatableType<UINotifier>(uri, versionMajor, versionMinor, "UINotifier", "");
qmlRegisterSingletonInstance<UINotifier>(uri, versionMajor, versionMinor, "UINotifier", new UINotifier(m_mainCtx, m_mainCtx));
qmlRegisterSingletonInstance<NavigationHistory>(uri, versionMajor, versionMinor, "History", new NavigationHistory(this));
qmlRegisterUncreatableType<QAbstractItemModel>(uri, versionMajor, versionMinor, "QtAbstractItemModel", "");
qmlRegisterUncreatableType<QWindow>(uri, versionMajor, versionMinor, "QtWindow", "");
......
......@@ -530,6 +530,17 @@ FocusScope {
}
}
Widgets.FloatingNotification {
id: notif
anchors {
bottom: miniPlayer.top
left: parent.left
right: parent.right
margins: VLCStyle.margin_large
}
}
MiniPlayer {
id: miniPlayer
......
......@@ -124,6 +124,7 @@ moc_headers = files(
'util/workerthreadset.hpp',
'util/base_model.hpp',
'util/color_scheme_model.hpp',
'util/ui_notifier.hpp',
'util/color_svg_image_provider.hpp',
'util/vlcaccess_image_provider.hpp',
'util/csdbuttonmodel.hpp',
......@@ -419,6 +420,8 @@ qt_plugin_sources = files(
'util/base_model_p.hpp',
'util/color_scheme_model.cpp',
'util/color_scheme_model.hpp',
'util/ui_notifier.cpp',
'util/ui_notifier.hpp',
'util/color_svg_image_provider.cpp',
'util/color_svg_image_provider.hpp',
'util/vlcaccess_image_provider.cpp',
......@@ -825,6 +828,7 @@ qml_modules += {
'widgets/qml/CheckedDelegate.qml',
'widgets/qml/ComboBoxExt.qml',
'widgets/qml/AcrylicBackground.qml',
'widgets/qml/FloatingNotification.qml',
'widgets/qml/AnimatedBackground.qml',
'widgets/qml/CSDThemeButton.qml',
'widgets/qml/CSDThemeButtonSet.qml',
......
......@@ -156,6 +156,15 @@ FocusScope {
}
}
Widgets.FloatingNotification {
anchors {
bottom: parent.bottom
left: parent.left
right: parent.right
margins: VLCStyle.margin_large
}
}
Keys.onPressed: (event) => {
if (event.accepted)
return
......
......@@ -821,6 +821,17 @@ FocusScope {
}
}
Widgets.FloatingNotification {
id: notif
anchors {
bottom: controlBar.top
left: parent.left
right: parent.right
margins: VLCStyle.margin_large
}
}
ControlBar {
id: controlBar
......
/*****************************************************************************
* Copyright (C) 2025 the VideoLAN team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include "ui_notifier.hpp"
#include "maininterface/mainctx.hpp"
UINotifier::UINotifier(MainCtx *ctx, QObject *parent)
: QObject {parent}
, m_ctx {ctx}
{
setupNotifications();
}
void UINotifier::setupNotifications()
{
connect(m_ctx, &MainCtx::intfScaleFactorChanged, this, [this]()
{
const QString scale = QString::number(m_ctx->getIntfScaleFactor() * 100);
emit showNotification(Scale
, qtr("Scale: %1%").arg(scale));
});
connect(m_ctx, &MainCtx::minimalViewChanged, this, [this]()
{
if (m_ctx->isMinimalView())
emit showNotification(MinimalView
, qtr("Minimal View"));
});
}
/*****************************************************************************
* Copyright (C) 2025 the VideoLAN team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#ifndef UI_NOTIFIER_HPP
#define UI_NOTIFIER_HPP
#include <QObject>
class MainCtx;
class UINotifier : public QObject
{
Q_OBJECT
public:
UINotifier(MainCtx *ctx, QObject *parent = nullptr);
enum ID
{
Scale,
MinimalView
};
Q_ENUM(ID)
signals:
void showNotification(ID id, const QString &text);
private:
void setupNotifications();
MainCtx *m_ctx;
};
#endif // UI_NOTIFIER_HPP
/*****************************************************************************
* Copyright (C) 2025 VLC authors and VideoLAN
*
* Authors: Prince Gupta <guptaprince8832@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* ( at your option ) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
import QtQuick
import VLC.MainInterface
import VLC.Style
Column {
id: root
signal removeNotification(int index)
onRemoveNotification: function (index) {
model.remove(index, 1)
}
spacing: VLCStyle.margin_normal
Behavior on y {
NumberAnimation {
duration: VLCStyle.duration_short
easing.type: Easing.InOutQuad
}
}
Repeater {
id: repeater
model: ListModel {
id: model
}
delegate: Rectangle {
id: delegate
required property int index
required property string text
readonly property ColorContext colorContext: ColorContext {
id: theme
colorSet: ColorContext.Window
}
function resetLifetime() {
lifetime.restart()
state = "VISIBLE"
}
anchors.horizontalCenter: parent.horizontalCenter
color: theme.bg.primary
focus: false
width: notifText.implicitWidth
height: notifText.implicitHeight
radius: VLCStyle.dp(3, VLCStyle.scale)
scale: 0
state: "HIDDEN"
Component.onCompleted: state = "VISIBLE"
states: [
State {
name: "VISIBLE"
PropertyChanges {
target: delegate
visible: true
scale: 1
}
},
State {
name: "HIDDEN"
PropertyChanges {
target: delegate
visible: false
scale: 0
}
}
]
transitions: [
Transition {
from: "VISIBLE"
to: "HIDDEN"
SequentialAnimation {
NumberAnimation {
target: delegate
property: "scale"
duration: VLCStyle.duration_short
easing.type: Easing.InOutQuad
}
PropertyAction {
target: delegate
property: "visible"
}
ScriptAction {
script: if (!lifetime.running) root.removeNotification(delegate.index)
}
}
},
Transition {
from: "HIDDEN"
to: "VISIBLE"
SequentialAnimation {
PropertyAction {
target: delegate
property: "visible"
}
NumberAnimation {
target: delegate
property: "scale"
duration: VLCStyle.duration_short
easing.type: Easing.InOutQuad
}
}
}
]
Timer {
id: lifetime
interval: VLCStyle.duration_humanMoment
running: true
onTriggered: delegate.state = "HIDDEN"
}
DefaultShadow {
anchors.centerIn: parent
sourceItem: parent
}
SubtitleLabel {
id: notifText
padding: VLCStyle.margin_small
color: theme.fg.primary
text: delegate.text
}
}
}
Connections {
target: UINotifier
function onShowNotification(id, text) {
let found = false
for (let i = 0; i < model.count; ++i) {
if (model.get(i).id === id) {
found = true
const del = repeater.itemAt(i)
if (del.text !== text) {
del.text = text
del.resetLifetime()
}
break
}
}
if (!found) {
model.append({"id": id, "text": text})
}
}
}
}
......@@ -889,6 +889,7 @@ modules/gui/qt/util/qt_dirs.hpp
modules/gui/qt/util/registry.cpp
modules/gui/qt/util/registry.hpp
modules/gui/qt/util/singleton.hpp
modules/gui/qt/util/ui_notifier.cpp
modules/gui/qt/util/validators.cpp
modules/gui/qt/util/validators.hpp
modules/gui/qt/util/vlctick.cpp
......