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 (3)
......@@ -18,147 +18,101 @@
#include "mlrecentsvideomodel.hpp"
namespace {
enum Role {
VIDEO_ID = Qt::UserRole + 1,
VIDEO_IS_NEW,
VIDEO_TITLE,
VIDEO_THUMBNAIL,
VIDEO_DURATION,
VIDEO_PROGRESS,
VIDEO_PLAYCOUNT,
VIDEO_RESOLUTION,
VIDEO_CHANNEL,
VIDEO_MRL,
VIDEO_VIDEO_TRACK,
VIDEO_AUDIO_TRACK,
};
// Ctor / dtor
}
MLRecentsVideoModel::MLRecentsVideoModel(QObject * parent) : MLVideoModel(parent) {}
// Protected MLBaseModel implementation
MLRecentsVideoModel::MLRecentsVideoModel( QObject* parent )
: MLBaseModel( parent )
ListCacheLoader<std::unique_ptr<MLItem>> * MLRecentsVideoModel::createLoader() const
/* override */
{
return new Loader(*this, m_numberOfItemsToShow);
}
QVariant MLRecentsVideoModel::itemRoleData(MLItem *item , const int role) const
{
const auto video = static_cast<MLVideo *>( item );
if ( video == nullptr )
return {};
// Private functions
switch ( role )
{
case VIDEO_ID:
return QVariant::fromValue( video->getId() );
case VIDEO_IS_NEW:
return QVariant::fromValue( video->isNew() );
case VIDEO_TITLE:
return QVariant::fromValue( video->getTitle() );
case VIDEO_THUMBNAIL:
return QVariant::fromValue( video->getThumbnail() );
case VIDEO_DURATION:
return QVariant::fromValue( video->getDuration() );
case VIDEO_PROGRESS:
return QVariant::fromValue( video->getProgress() );
case VIDEO_PLAYCOUNT:
return QVariant::fromValue( video->getPlayCount() );
case VIDEO_RESOLUTION:
return QVariant::fromValue( video->getResolutionName() );
case VIDEO_CHANNEL:
return QVariant::fromValue( video->getChannel() );
case VIDEO_MRL:
return QVariant::fromValue( video->getMRL() );
case VIDEO_VIDEO_TRACK:
return QVariant::fromValue( video->getVideoDesc() );
case VIDEO_AUDIO_TRACK:
return QVariant::fromValue( video->getAudioDesc() );
default:
return {};
}
int MLRecentsVideoModel::getNumberOfItemsToShow()
{
return m_numberOfItemsToShow;
}
QHash<int, QByteArray> MLRecentsVideoModel::roleNames() const
void MLRecentsVideoModel::setNumberOfItemsToShow(int number)
{
return {
{ VIDEO_ID, "id" },
{ VIDEO_IS_NEW, "isNew" },
{ VIDEO_TITLE, "title" },
{ VIDEO_THUMBNAIL, "thumbnail" },
{ VIDEO_DURATION, "duration" },
{ VIDEO_PROGRESS, "progress" },
{ VIDEO_PLAYCOUNT, "playcount" },
{ VIDEO_RESOLUTION, "resolution_name" },
{ VIDEO_CHANNEL, "channel" },
{ VIDEO_MRL, "mrl" },
{ VIDEO_AUDIO_TRACK, "audioDesc" },
{ VIDEO_VIDEO_TRACK, "videoDesc" },
};
m_numberOfItemsToShow = number;
invalidateCache();
}
void MLRecentsVideoModel::onVlcMlEvent( const MLEvent &event )
// Private MLVideoModel reimplementation
void MLRecentsVideoModel::onVlcMlEvent(const MLEvent & event) /* override */
{
switch ( event.i_type )
switch (event.i_type)
{
case VLC_ML_EVENT_HISTORY_CHANGED:
emit resetRequested();
break;
case VLC_ML_EVENT_MEDIA_ADDED:
case VLC_ML_EVENT_MEDIA_UPDATED:
case VLC_ML_EVENT_MEDIA_DELETED:
m_need_reset = true;
break;
default:
break;
}
MLBaseModel::onVlcMlEvent( event );
}
void MLRecentsVideoModel::setNumberOfItemsToShow( int n ){
numberOfItemsToShow = n;
invalidateCache();
}
int MLRecentsVideoModel::getNumberOfItemsToShow(){
return numberOfItemsToShow;
}
ListCacheLoader<std::unique_ptr<MLItem>> *
MLRecentsVideoModel::createLoader() const
{
return new Loader(*this, numberOfItemsToShow);
MLVideoModel::onVlcMlEvent(event);
}
size_t MLRecentsVideoModel::Loader::count() const
// Loader
MLRecentsVideoModel::Loader::Loader(const MLRecentsVideoModel & model, int numberOfItemsToShow)
: MLBaseModel::BaseLoader(model)
, m_numberOfItemsToShow(numberOfItemsToShow) {}
size_t MLRecentsVideoModel::Loader::count() const /* override */
{
MLQueryParams params = getParams();
auto queryParams = params.toCQueryParams();
size_t realCount = vlc_ml_count_history_by_type( m_ml, &queryParams, VLC_ML_MEDIA_TYPE_VIDEO );
size_t realCount = vlc_ml_count_history_by_type(m_ml, &queryParams, VLC_ML_MEDIA_TYPE_VIDEO);
if (m_numberOfItemsToShow >= 0)
return std::min( realCount, static_cast<size_t>(m_numberOfItemsToShow) );
{
return std::min(realCount, static_cast<size_t> (m_numberOfItemsToShow));
}
return realCount;
}
std::vector<std::unique_ptr<MLItem>>
MLRecentsVideoModel::Loader::load(size_t index, size_t count) const
MLRecentsVideoModel::Loader::load(size_t index, size_t count) const /* override */
{
MLQueryParams params = getParams(index, count);
auto queryParams = params.toCQueryParams();
std::vector<std::unique_ptr<MLItem>> res;
if (m_numberOfItemsToShow >= 0)
{
if (queryParams.i_offset <= static_cast<uint32_t>(m_numberOfItemsToShow))
queryParams.i_nbResults = static_cast<uint32_t>(m_numberOfItemsToShow) - queryParams.i_offset;
else
uint32_t count = static_cast<uint32_t> (m_numberOfItemsToShow);
if (queryParams.i_offset > count)
return res;
queryParams.i_nbResults = count - queryParams.i_offset;
}
ml_unique_ptr<vlc_ml_media_list_t> media_list{ vlc_ml_list_history_by_type(
m_ml, &queryParams, VLC_ML_MEDIA_TYPE_VIDEO ) };
if ( media_list == nullptr )
ml_unique_ptr<vlc_ml_media_list_t> media_list
{
vlc_ml_list_history_by_type(m_ml, &queryParams, VLC_ML_MEDIA_TYPE_VIDEO)
};
if (media_list == nullptr)
return {};
for( vlc_ml_media_t &media: ml_range_iterate<vlc_ml_media_t>( media_list ) )
res.emplace_back( std::make_unique<MLVideo>( m_ml, &media ) );
for (const vlc_ml_media_t & media : ml_range_iterate<vlc_ml_media_t>(media_list))
{
res.emplace_back( std::make_unique<MLVideo>(m_ml, &media));
}
return res;
}
......@@ -23,51 +23,40 @@
#include "config.h"
#endif
#include <vlc_common.h>
#include <vlc_media_library.h>
#include "mlvideomodel.hpp"
#include "mlbasemodel.hpp"
#include "mlvideo.hpp"
#include <QObject>
class MLRecentsVideoModel : public MLBaseModel
class MLRecentsVideoModel : public MLVideoModel
{
Q_OBJECT
Q_PROPERTY(int numberOfItemsToShow READ getNumberOfItemsToShow WRITE setNumberOfItemsToShow FINAL)
Q_PROPERTY(int numberOfItemsToShow READ getNumberOfItemsToShow
WRITE setNumberOfItemsToShow FINAL)
public:
explicit MLRecentsVideoModel( QObject* parent = nullptr );
explicit MLRecentsVideoModel(QObject * parent = nullptr);
virtual ~MLRecentsVideoModel() = default;
QHash<int, QByteArray> roleNames() const override;
int numberOfItemsToShow = 10;
protected: // MLBaseModel implementation
ListCacheLoader<std::unique_ptr<MLItem>> * createLoader() const override;
protected:
QVariant itemRoleData( MLItem *item, int role ) const override;
private: // Functions
int getNumberOfItemsToShow();
void setNumberOfItemsToShow(int number);
ListCacheLoader<std::unique_ptr<MLItem>> *createLoader() const override;
protected: // MLVideoModel reimplementation
void onVlcMlEvent(const MLEvent & event) override;
private:
vlc_ml_sorting_criteria_t roleToCriteria( int /* role */ ) const override{
return VLC_ML_SORTING_DEFAULT;
}
vlc_ml_sorting_criteria_t nameToCriteria( QByteArray /* name */ ) const override{
return VLC_ML_SORTING_DEFAULT;
}
virtual void onVlcMlEvent( const MLEvent &event ) override;
void setNumberOfItemsToShow(int);
int getNumberOfItemsToShow();
private: // Variables
int m_numberOfItemsToShow = 10;
private:
struct Loader : public BaseLoader
{
Loader(const MLRecentsVideoModel &model, int numberOfItemsToShow)
: BaseLoader(model)
, m_numberOfItemsToShow(numberOfItemsToShow)
{
}
Loader(const MLRecentsVideoModel & model, int numberOfItemsToShow);
size_t count() const override;
std::vector<std::unique_ptr<MLItem>> load(size_t index, size_t count) const override;
private:
......
......@@ -133,6 +133,19 @@ QByteArray MLVideoModel::criteriaToName(vlc_ml_sorting_criteria_t criteria) cons
return M_names_to_criteria.key(criteria, "");
}
void MLVideoModel::thumbnailUpdated(int idx)
{
emit dataChanged(index(idx), index(idx), {VIDEO_THUMBNAIL});
}
ListCacheLoader<std::unique_ptr<MLItem>> *
MLVideoModel::createLoader() const
{
return new Loader(*this);
}
// Protected MLBaseModel reimplementation
void MLVideoModel::onVlcMlEvent(const MLEvent &event)
{
switch (event.i_type)
......@@ -148,17 +161,6 @@ void MLVideoModel::onVlcMlEvent(const MLEvent &event)
MLBaseModel::onVlcMlEvent( event );
}
void MLVideoModel::thumbnailUpdated(int idx)
{
emit dataChanged(index(idx), index(idx), {VIDEO_THUMBNAIL});
}
ListCacheLoader<std::unique_ptr<MLItem>> *
MLVideoModel::createLoader() const
{
return new Loader(*this);
}
size_t MLVideoModel::Loader::count() const /* override */
{
vlc_ml_query_params_t params = getParams().toCQueryParams();
......
......@@ -67,10 +67,12 @@ protected:
ListCacheLoader<std::unique_ptr<MLItem>> *createLoader() const override;
protected: // MLBaseModel reimplementation
virtual void onVlcMlEvent( const MLEvent &event ) override;
private:
vlc_ml_sorting_criteria_t roleToCriteria(int role) const override;
vlc_ml_sorting_criteria_t nameToCriteria(QByteArray name) const override;
virtual void onVlcMlEvent( const MLEvent &event ) override;
virtual void thumbnailUpdated( int ) override;
static QHash<QByteArray, vlc_ml_sorting_criteria_t> M_names_to_criteria;
......
......@@ -32,11 +32,11 @@ FocusScope {
// Properties
property Item focusItem: recentVideosListView
property Item focusItem: listView
property int currentIndex: -1
property var model: undefined;
property var model: undefined
// Properties
......@@ -60,7 +60,7 @@ FocusScope {
// Functions
function setCurrentItemFocus(reason) {
recentVideosListView.setCurrentItemFocus(reason);
listView.setCurrentItemFocus(reason);
}
function _actionAtIndex(index, model, selectionModel) {
......@@ -75,6 +75,12 @@ FocusScope {
model: root.model
}
VideoContextMenu {
id: contextMenu
model: root.model
}
Column {
id: recentVideosColumn
......@@ -95,7 +101,7 @@ FocusScope {
}
Widgets.KeyNavigableListView {
id: recentVideosListView
id: listView
width: parent.width
......@@ -125,10 +131,11 @@ FocusScope {
}
delegate: VideoGridItem {
id: recentVideoGridItem
id: gridItem
x: selectedBorderWidth
y: selectedBorderWidth
pictureWidth: VLCStyle.gridCover_video_width
pictureHeight: VLCStyle.gridCover_video_height
......@@ -137,12 +144,19 @@ FocusScope {
unselectedUnderlay: shadows.unselected
selectedUnderlay: shadows.selected
onItemDoubleClicked: recentVideoGridItem.play()
onItemDoubleClicked: gridItem.play()
onItemClicked: {
recentVideoSelection.updateSelection( modifier , root.model.currentIndex, index )
recentVideosListView.currentIndex = index
recentVideosListView.forceActiveFocus()
listView.currentIndex = index
listView.forceActiveFocus()
}
// NOTE: contextMenu.popup wants a list of indexes.
onContextMenuButtonClicked: {
contextMenu.popup([root.model.index(index, 0)],
globalMousePos,
{ "player-options": [":restore-playback-pos=2"] })
}
Connections {
......
......@@ -450,8 +450,8 @@ void VideoContextMenu::popup(const QModelIndexList& selected, QPoint pos, QVaria
action = m_menu->addAction( qtr("Add and play") );
connect(action, &QAction::triggered, [ml, itemIdList]( ) {
ml->addAndPlay(itemIdList);
connect(action, &QAction::triggered, [ml, itemIdList, options]( ) {
ml->addAndPlay(itemIdList, options["player-options"].toStringList());
});
action = m_menu->addAction( qtr("Enqueue") );
......@@ -465,8 +465,10 @@ void VideoContextMenu::popup(const QModelIndexList& selected, QPoint pos, QVaria
});
action = m_menu->addAction( qtr("Play as audio") );
connect(action, &QAction::triggered, [ml, itemIdList]( ) {
ml->addAndPlay(itemIdList, {":no-video"});
connect(action, &QAction::triggered, [ml, itemIdList, options]( ) {
QStringList list = options["player-options"].toStringList();
list.prepend(":no-video");
ml->addAndPlay(itemIdList, list);
});
if (options.contains("information") && options["information"].type() == QVariant::Int) {
......