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 (2)
......@@ -18,6 +18,7 @@
#include "mlalbumtrackmodel.hpp"
#include "util/vlctick.hpp"
#include "mlhelper.hpp"
QHash<QByteArray, vlc_ml_sorting_criteria_t> MLAlbumTrackModel::M_names_to_criteria = {
{"id", VLC_ML_SORTING_DEFAULT},
......@@ -44,14 +45,19 @@ QVariant MLAlbumTrackModel::itemRoleData(MLItem *item, const int role) const
// Tracks
case TRACK_ID:
return QVariant::fromValue( ml_track->getId() );
case TRACK_TITLE :
case TRACK_TITLE:
return QVariant::fromValue( ml_track->getTitle() );
case TRACK_COVER :
case TRACK_COVER:
return QVariant::fromValue( ml_track->getCover() );
case TRACK_NUMBER :
case TRACK_NUMBER:
return QVariant::fromValue( ml_track->getTrackNumber() );
case TRACK_DISC_NUMBER:
return QVariant::fromValue( ml_track->getDiscNumber() );
case TRACK_IS_LOCAL:
{
QUrl trackUrl(ml_track->getMRL());
return QVariant::fromValue( trackUrl.isLocalFile() );
}
case TRACK_DURATION :
return QVariant::fromValue( ml_track->getDuration() );
case TRACK_ALBUM:
......@@ -77,6 +83,7 @@ QHash<int, QByteArray> MLAlbumTrackModel::roleNames() const
{ TRACK_COVER, "cover" },
{ TRACK_NUMBER, "track_number" },
{ TRACK_DISC_NUMBER, "disc_number" },
{ TRACK_IS_LOCAL, "isLocal" },
{ TRACK_DURATION, "duration" },
{ TRACK_ALBUM, "album_title"},
{ TRACK_ARTIST, "main_artist"},
......@@ -196,3 +203,8 @@ MLAlbumTrackModel::Loader::loadItemById(vlc_medialibrary_t* ml, MLItemId itemId)
return std::make_unique<MLAlbumTrack>(ml, media.get());
}
/* Q_INVOKABLE */ QUrl MLAlbumTrackModel::getParentURL(const QModelIndex &index)
{
MLAlbumTrack *ml_track = static_cast<MLAlbumTrack *>(item(index.row()));
return getParentURLFromMLItem(ml_track);
}
......@@ -37,6 +37,7 @@ public:
TRACK_COVER,
TRACK_NUMBER,
TRACK_DISC_NUMBER,
TRACK_IS_LOCAL,
TRACK_DURATION,
TRACK_ALBUM,
TRACK_ARTIST,
......@@ -53,6 +54,8 @@ public:
QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE QUrl getParentURL(const QModelIndex &index);
protected:
QVariant itemRoleData(MLItem *item, int role) const override;
......
......@@ -27,9 +27,11 @@
#include <vlc_media_library.h>
#include <QString>
#include <QUrl>
// Forward declarations
class MLBaseModel;
class MLItem;
class MLItemId;
class CoverGenerator;
class QUrl;
......@@ -101,4 +103,17 @@ void thumbnailCopy(const MLListRange<T> &list, O dst, const int max)
QString urlToDisplayString(const QUrl &url);
template<typename T>
QUrl getParentURLFromMLItem(T *mlItem)
{
if (mlItem == nullptr)
return QUrl();
QString mrl = mlItem->getMRL();
QUrl fileUrl(mrl);
QUrl parentDirUrl = fileUrl.adjusted(QUrl::RemoveFilename);
return parentDirUrl;
}
#endif // MLHELPER_HPP
......@@ -120,6 +120,11 @@ QVariant MLVideoModel::itemRoleData(MLItem *item, int role) const
}
return QVariant::fromValue( thumbnail );
}
case VIDEO_IS_LOCAL:
{
QUrl videoUrl(video->getMRL());
return QVariant::fromValue( videoUrl.isLocalFile() );
}
case VIDEO_DURATION:
return QVariant::fromValue( video->getDuration() );
case VIDEO_PROGRESS:
......@@ -155,6 +160,7 @@ QHash<int, QByteArray> MLVideoModel::roleNames() const
{ VIDEO_FILENAME, "fileName" },
{ VIDEO_TITLE, "title" },
{ VIDEO_THUMBNAIL, "thumbnail" },
{ VIDEO_IS_LOCAL, "isLocal"},
{ VIDEO_DURATION, "duration" },
{ VIDEO_PROGRESS, "progress" },
{ VIDEO_PLAYCOUNT, "playcount" },
......@@ -302,3 +308,8 @@ MLVideoModel::Loader::loadItemById(vlc_medialibrary_t* ml, MLItemId itemId) cons
return std::make_unique<MLVideo>(media.get());
}
/* Q_INVOKABLE */ QUrl MLVideoModel::getParentURL(const QModelIndex &index)
{
MLVideo *video = static_cast<MLVideo *>(item(index.row()));
return getParentURLFromMLItem(video);
}
......@@ -43,6 +43,7 @@ public:
VIDEO_FILENAME,
VIDEO_TITLE,
VIDEO_THUMBNAIL,
VIDEO_IS_LOCAL,
VIDEO_DURATION,
VIDEO_PROGRESS,
VIDEO_PLAYCOUNT,
......@@ -59,10 +60,13 @@ public:
public:
explicit MLVideoModel(QObject* parent = nullptr);
virtual ~MLVideoModel() = default;
QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE QUrl getParentURL(const QModelIndex & index);
public: // Interface
// NOTE: These functions are useful when we want to apply a change before the database event.
......@@ -99,3 +103,4 @@ private:
};
#endif // MCVIDEOMODEL_H
......@@ -69,6 +69,10 @@ NativeMenu {
"text": I18n.qtr("Mark as unseen"),
"action": markUnseen,
"visible": _showUnseen
}, {
"text": I18n.qtr("Open Containing Folder"),
"action": openContainingFolder,
"visible": _openContainingFolder
}, {
"text": I18n.qtr("Information"),
"action": _signalShowInformation,
......@@ -126,6 +130,13 @@ NativeMenu {
model.setItemPlayed(indexes[0], false)
}
function openContainingFolder(dataList, options, indexes) {
const parentDir = model.getParentURL(indexes[0]);
Qt.openUrlExternally(parentDir)
}
function showInformationAvailable(options, indexes) {
return indexes.length === 1
&& Helpers.isInteger(Helpers.get(options, "information", null))
......@@ -173,6 +184,16 @@ NativeMenu {
return (isNew === false)
}
function _openContainingFolder(options, indexes) {
if (indexes.length !== 1)
return false
const isLocal = model.getDataAt(indexes[0]).isLocal
// NOTE: Strictly comparing 'isLocal' given it might be undefined.
return (isLocal === true)
}
function _signalShowInformation(dataList, options) {
const index = Helpers.get(options, "information", null)
console.assert(Helpers.isInteger(index))
......