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
403 results
Show changes
Commits on Source (7)
Showing
with 79 additions and 4 deletions
......@@ -673,6 +673,50 @@ void MainCtx::setVideoSurfaceProvider(VideoSurfaceProvider* videoSurfaceProvider
emit hasEmbededVideoChanged(m_videoSurfaceProvider && m_videoSurfaceProvider->hasVideoEmbed());
}
QJSValue MainCtx::urlListToMimeData(const QJSValue &array) {
// NOTE: Due to a Qt regression since 17318c4
// (Nov 11, 2022), it is not possible to
// use RFC-2483 compliant string here.
// This regression was later corrected by
// c25f53b (Jul 31, 2024).
// NOTE: Qt starts supporting string list since
// 17318c4, so starting from 6.5.0 a string
// list can be used which is not affected
// by the said issue. For Qt versions below
// 6.5.0, use byte array which is used as is
// by Qt.
assert(array.property("length").toInt() > 0);
QJSEngine* const engine = qjsEngine(this);
assert(engine);
QJSValue data;
#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
QString string;
for (int i = 0; i < array.property(QStringLiteral("length")).toInt(); ++i)
{
QString decodedUrl;
const QJSValue element = array.property(i);
if (element.isUrl())
// QJSValue does not have `toUrl()`
decodedUrl = QJSManagedValue(element, engine).toUrl().toString(QUrl::FullyEncoded);
else if (element.isString())
// If the element is string, we assume it is already encoded
decodedUrl = element.toString();
else
Q_UNREACHABLE(); // Assertion failure in debug builds
string += decodedUrl + QStringLiteral("\r\n");
}
string.chop(2);
data = engine->toScriptValue(string);
#else
data = array;
#endif
QJSValue ret = engine->newObject();
ret.setProperty(QStringLiteral("text/uri-list"), data);
return ret;
}
VideoSurfaceProvider* MainCtx::getVideoSurfaceProvider() const
{
return m_videoSurfaceProvider;
......
......@@ -267,6 +267,8 @@ public:
(QT_VERSION >= QT_VERSION_CHECK(6, 4, 0));
}
Q_INVOKABLE QJSValue urlListToMimeData(const QJSValue& array);
/**
* @brief ask for the application to terminate
* @return true if the application can be close right away, false if it will be delayed
......
......@@ -60,6 +60,8 @@ QVariant MLAlbumTrackModel::itemRoleData(MLItem *item, const int role) const
return QVariant::fromValue( getFirstSymbol( ml_track->getAlbumTitle() ) );
case TRACK_ARTIST_FIRST_SYMBOL:
return QVariant::fromValue( getFirstSymbol( ml_track->getArtist() ) );
case TRACK_URL:
return QUrl(ml_track->getMRL());
default :
return QVariant();
}
......@@ -80,6 +82,7 @@ QHash<int, QByteArray> MLAlbumTrackModel::roleNames() const
{ TRACK_TITLE_FIRST_SYMBOL, "title_first_symbol"},
{ TRACK_ALBUM_FIRST_SYMBOL, "album_title_first_symbol"},
{ TRACK_ARTIST_FIRST_SYMBOL, "main_artist_first_symbol"},
{ TRACK_URL, "url" }
};
}
......
......@@ -41,6 +41,7 @@ public:
TRACK_DURATION,
TRACK_ALBUM,
TRACK_ARTIST,
TRACK_URL,
TRACK_TITLE_FIRST_SYMBOL,
TRACK_ALBUM_FIRST_SYMBOL,
......
......@@ -94,6 +94,7 @@ QHash<int, QByteArray> MLFoldersBaseModel::roleNames() const
return {
{DisplayUrl, "display_url"},
{Banned, "banned"},
{MRL, "url"}
};
}
......
......@@ -557,6 +557,8 @@ QVariant NetworkMediaModel::data( const QModelIndex& index, int role ) const
return {};
}
case URL:
return item->uri;
default:
return basedata(*item, role);
}
......@@ -574,6 +576,7 @@ QHash<int, QByteArray> NetworkMediaModel::roleNames() const
roles[NETWORK_MEDIA] = "media";
roles[NETWORK_MEDIA_PROGRESS] = "progress";
roles[NETWORK_MEDIA_DURATION] = "duration";
roles[URL] = "url";
return roles;
}
......
......@@ -115,6 +115,7 @@ public:
NETWORK_MEDIA,
NETWORK_MEDIA_PROGRESS,
NETWORK_MEDIA_DURATION,
URL
};
Q_PROPERTY(MainCtx* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged)
......
......@@ -291,6 +291,7 @@ static void on_player_current_media_changed(vlc_player_t *, input_item_t *new_m
that->UpdateName( newMediaPtr.get() );
that->UpdateArt( newMediaPtr.get() );
that->UpdateMeta( newMediaPtr.get() );
that->m_url = vlc::wrap_cptr( input_item_GetURI( newMediaPtr.get() ) ).get();
{
vlc_player_locker lock{ that->m_player };
......@@ -2121,6 +2122,7 @@ PRIMITIVETYPE_GETTER(QString, getTitle, m_title)
PRIMITIVETYPE_GETTER(QString, getArtist, m_artist)
PRIMITIVETYPE_GETTER(QString, getAlbum, m_album)
PRIMITIVETYPE_GETTER(QUrl, getArtwork, m_artwork)
PRIMITIVETYPE_GETTER(QUrl, getUrl, m_url)
// High resolution time fed by SMPTE timer
PRIMITIVETYPE_GETTER(QString, highResolutionTime, m_highResolutionTime)
......
......@@ -110,6 +110,7 @@ public:
Q_PROPERTY(QString name READ getName NOTIFY nameChanged FINAL)
Q_PROPERTY(float buffering READ getBuffering NOTIFY bufferingChanged FINAL)
Q_PROPERTY(float rate READ getRate WRITE setRate NOTIFY rateChanged FINAL)
Q_PROPERTY(QUrl url READ getUrl NOTIFY inputChanged FINAL)
Q_PROPERTY(VLCTick time READ getTime WRITE setTime NOTIFY timeChanged FINAL)
Q_PROPERTY(VLCTick remainingTime READ getRemainingTime NOTIFY remainingTimeChanged FINAL)
......@@ -297,6 +298,7 @@ public slots:
void restorePlaybackPos();
void openVLsub();
void acknowledgeRestoreCallback();
QUrl getUrl() const;
//tracks
TrackListModel* getVideoTracks();
......
......@@ -175,6 +175,7 @@ public:
QString m_artist;
QString m_album;
QUrl m_artwork;
QUrl m_url;
};
#endif /* QVLC_INPUT_MANAGER_P_H_ */
......@@ -105,7 +105,8 @@ AbstractButton {
resolve([{
"title": Player.title,
"cover": (!!Player.artwork && Player.artwork.toString() !== "") ? Player.artwork
: VLCStyle.noArtAlbumCover
: VLCStyle.noArtAlbumCover,
"url": Player.url
}])
}
......
......@@ -490,6 +490,8 @@ PlaylistListModel::data(const QModelIndex &index, int role) const
return d->m_items[row].getAlbum();
case ArtworkRole:
return d->m_items[row].getArtwork();
case UrlRole:
return d->m_items[row].getUrl();
default:
return {};
}
......
......@@ -49,7 +49,8 @@ public:
IsCurrentRole,
ArtistRole,
AlbumRole,
ArtworkRole
ArtworkRole,
UrlRole
};
PlaylistListModel(QObject *parent = nullptr);
......
......@@ -78,7 +78,8 @@ T.Pane {
const item = root.model.itemAt(index)
return {
"title": item.title,
"cover": (!!item.artwork && item.artwork.toString() !== "") ? item.artwork : VLCStyle.noArtAlbumCover
"cover": (!!item.artwork && item.artwork.toString() !== "") ? item.artwork : VLCStyle.noArtAlbumCover,
"url": item.url
}
}))
}
......
......@@ -137,16 +137,22 @@ Item {
_data = data
const covers = []
let mimeData = []
for (let i in indexes) {
if (covers.length === _maxCovers)
break
const cover = _getCover(indexes[i], data[i])
const element = data[i]
const cover = _getCover(indexes[i], element)
if (!cover)
continue
covers.push(cover)
const url = element.url ?? element.mrl
if (url)
mimeData.push(url)
}
if (covers.length === 0)
......@@ -156,6 +162,10 @@ Item {
})
_covers = covers
if (mimeData.length > 0) {
Drag.mimeData = MainCtx.urlListToMimeData(mimeData)
}
}
function _setInputItems(inputItems) {
......