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
  • Thrillseekr/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
393 results
Show changes
Commits on Source (12)
Showing
with 185 additions and 179 deletions
......@@ -1067,6 +1067,8 @@ libqt_plugin_la_QML = \
widgets/qml/KeyNavigableListView.qml \
widgets/qml/KeyNavigableTableView.qml \
widgets/qml/TableViewDelegate.qml \
widgets/qml/TableRowDelegate.qml \
widgets/qml/TableHeaderDelegate.qml \
widgets/qml/DefaultShadow.qml \
widgets/qml/ListLabel.qml \
widgets/qml/LocalTabBar.qml \
......
......@@ -261,6 +261,7 @@ void MainUI::registerQMLTypes()
qmlRegisterType<VideoSurface>(uri, versionMajor, versionMinor, "VideoSurface");
qmlRegisterUncreatableType<BaseModel>( uri, versionMajor, versionMinor, "BaseModel", "Base Model is uncreatable." );
qmlRegisterType<NetworkMediaModel>( uri, versionMajor, versionMinor, "NetworkMediaModel");
qmlRegisterType<NetworkDeviceModel>( uri, versionMajor, versionMinor, "NetworkDeviceModel");
qmlRegisterType<NetworkSourcesModel>( uri, versionMajor, versionMinor, "NetworkSourcesModel");
......@@ -343,7 +344,7 @@ void MainUI::registerQMLTypes()
qmlRegisterSingletonType<MediaLib>(uri, versionMajor, versionMinor, "MediaLib", SingletonRegisterHelper<MediaLib>::callback);
qmlRegisterUncreatableType<MLItemId>( uri, versionMajor, versionMinor, "MLItemId", "");
qmlRegisterUncreatableType<MLBaseModel>( uri, versionMajor, versionMinor, "MLModel", "ML Base Model is uncreatable." );
qmlRegisterUncreatableType<MLBaseModel>( uri, versionMajor, versionMinor, "MLBaseModel", "ML Base Model is uncreatable." );
qmlRegisterType<MLAlbumModel>( uri, versionMajor, versionMinor, "MLAlbumModel" );
qmlRegisterType<MLArtistModel>( uri, versionMajor, versionMinor, "MLArtistModel" );
qmlRegisterType<MLAlbumTrackModel>( uri, versionMajor, versionMinor, "MLAlbumTrackModel" );
......
......@@ -281,12 +281,12 @@ Item {
&& (windowVisibility !== Window.FullScreen)
}
source: "qrc:///widgets/CSDMouseStealer.qml"
onLoaded: {
item.target = g_mainInterface
item.anchorInside = Qt.binding(() => !_extendedFrameVisible)
Component.onCompleted: {
setSource(
"qrc:///widgets/CSDMouseStealer.qml", {
target: g_mainInterface,
anchorInside: Qt.binding(() => !_extendedFrameVisible)
})
}
}
}
......
......@@ -40,14 +40,14 @@ Widgets.StackViewExt {
*/
// components to load depending on MainCtx.gridView
/* required */ property Component grid
/* required */ property Component list
required property Component grid
required property Component list
// component to load when provided model is empty
/* required */ property Component emptyLabel
required property Component emptyLabel
// view's model
/* required */ property var model
required property BaseModel model
// behave like a Page
property var pagePrefix: []
......
......@@ -389,17 +389,20 @@ FocusScope {
}
}
property Component titleHeaderDelegate: Row {
Widgets.CaptionLabel {
text: "#"
width: VLCStyle.margin_large
color: theme.fg.secondary
}
property Component titleHeaderDelegate: Widgets.TableHeaderDelegate {
id: headerDelegate
Row {
anchors.fill: parent
Widgets.CaptionLabel {
text: "#"
width: VLCStyle.margin_large
color: headerDelegate.colorContext.fg.secondary
}
Widgets.CaptionLabel {
text: qsTr("Title")
color: theme.fg.secondary
Widgets.CaptionLabel {
text: qsTr("Title")
color: headerDelegate.colorContext.fg.secondary
}
}
}
......
......@@ -37,13 +37,14 @@ T.ItemDelegate {
property ItemView view: ListView.view
/* required */ property MLModel mlModel
required property var model
required property int index
property bool isCurrent: false
property bool selected: false
/* required */ property Item dragTarget
required property Widgets.MLDragItem dragTarget
// Aliases
// Private
......
......@@ -209,8 +209,6 @@ FocusScope {
isCurrent: ListView.isCurrentItem
mlModel: artistModel
dragTarget: musicArtistDragItem
selected: selectionModel.selectedIndexesFlat.includes(index)
......
......@@ -39,12 +39,15 @@ Widgets.KeyNavigableTableView {
readonly property int _nbCols: VLCStyle.gridColumnsForWidth(
listView_id.availableRowWidth)
property Component urlHeaderDelegate: Widgets.IconLabel {
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: VLCStyle.icon_tableHeader
text: VLCIcons.history
color: listView_id.colorContext.fg.secondary
property Component urlHeaderDelegate: Widgets.TableHeaderDelegate {
Widgets.IconLabel {
anchors.fill: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: VLCStyle.icon_tableHeader
text: VLCIcons.history
color: parent.colorContext.fg.secondary
}
}
visible: urlModel.count > 0
......
......@@ -50,10 +50,10 @@ MainInterface.MainViewLoader {
readonly property int currentIndex: currentItem?.currentIndex ?? -1
// 'role' used for tableview's section text
/* required */ property string sectionProperty
required property string sectionProperty
// NOTE: The ContextMenu depends on the model so we have to provide it too.
/* required */ property var contextMenu
required property Util.MLContextMenu contextMenu
// function(model) -> [strings....]
// used to get grid labels per model item
......
......@@ -88,8 +88,8 @@ MainInterface.MainGridView {
// Properties
/* required */ property var model: ({})
/* required */ property int index: -1
required property var model
required property int index
// Settings
......
......@@ -32,7 +32,7 @@ FocusScope {
// Properties
/* required */ property var model
required property BaseModel model
readonly property int rowHeight: _currentView?.rowHeight ?? 0
......@@ -308,16 +308,21 @@ FocusScope {
Component {
id: artworkHeader
Widgets.IconLabel {
text: VLCIcons.album_cover
Widgets.TableHeaderDelegate {
Widgets.IconLabel {
height: VLCStyle.listAlbumCover_height
width: VLCStyle.listAlbumCover_width
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: VLCStyle.icon_tableHeader
height: VLCStyle.listAlbumCover_height
width: VLCStyle.listAlbumCover_width
anchors.centerIn: parent
color: parent.colorContext.fg.secondary
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: VLCStyle.icon_tableHeader
text: VLCIcons.album_cover
color: parent.colorContext.fg.secondary
}
}
}
......@@ -330,43 +335,40 @@ FocusScope {
Component {
id: mrlColumn
Widgets.TextAutoScroller {
Widgets.TableRowDelegate {
id: itemText
property var rowModel: parent.rowModel
property var colModel: parent.colModel
Widgets.TextAutoScroller {
readonly property ColorContext colorContext: parent.colorContext
readonly property bool selected: parent.selected
anchors.fill: parent
width: parent.width
clip: scrolling
clip: scrolling
label: itemLabel
label: itemLabel
forceScroll: itemText.currentlyFocused
forceScroll: parent.currentlyFocused
Widgets.ListLabel {
id: itemLabel
Widgets.ListLabel {
id: itemLabel
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenter: parent.verticalCenter
text: {
if (itemText.rowModel === null)
return ""
text: {
if (itemText.rowModel === null)
return ""
const text = itemText.rowModel[itemText.colModel.criteria]
const text = itemText.rowModel[itemText.colModel.criteria]
if (text.toString() === "vlc://nop")
return ""
else
return text
}
if (text.toString() === "vlc://nop")
return ""
else
return text
color: itemText.selected
? itemText.colorContext.fg.highlight
: itemText.colorContext.fg.primary
}
color: itemText.selected
? itemText.colorContext.fg.highlight
: itemText.colorContext.fg.primary
}
}
}
......
......@@ -120,7 +120,8 @@ Widgets.PageLoader {
BrowseDeviceView {
id: viewDevice
/*required*/ property var sd_source
//@type {NetworkDeviceModel.SDCatType}
required property int sd_source
property var sortModel: [
{ text: qsTr("Alphabetic"), criteria: "name" },
......
......@@ -203,14 +203,19 @@ MainInterface.MainViewLoader {
readonly property int _nbCols: VLCStyle.gridColumnsForWidth(tableView.availableRowWidth)
readonly property int _nameColSpan: Math.max((_nbCols - 1) / 2, 1)
property Component thumbnailHeader: Widgets.IconLabel {
height: VLCStyle.listAlbumCover_height
width: VLCStyle.listAlbumCover_width
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: VLCStyle.icon_tableHeader
text: VLCIcons.album_cover
color: tableView.colorContext.fg.secondary
property Component thumbnailHeader: Widgets.TableHeaderDelegate {
Widgets.IconLabel {
height: VLCStyle.listAlbumCover_height
width: VLCStyle.listAlbumCover_width
anchors.centerIn: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: VLCStyle.icon_tableHeader
text: VLCIcons.album_cover
color: parent.colorContext.fg.secondary
}
}
property Component thumbnailColumn: NetworkThumbnailItem {
......
......@@ -32,7 +32,7 @@ T.Control {
id: root
// Network* model
/* required */ property var providerModel
required property BaseModel providerModel
readonly property ColorContext colorContext: ColorContext {
id: theme
......@@ -73,18 +73,19 @@ T.Control {
Widgets.ButtonExt {
id: medialibraryBtn
readonly property NetworkMediaModel networkModel: providerModel as NetworkMediaModel
focus: true
iconTxt: providerModel.indexed ? VLCIcons.remove : VLCIcons.add
iconTxt: networkModel?.indexed ? VLCIcons.remove : VLCIcons.add
text: providerModel.indexed
text: networkModel?.indexed
? qsTr("Remove from medialibrary")
: qsTr("Add to medialibrary")
visible: !providerModel.is_on_provider_list
&& !!providerModel.canBeIndexed
visible: providerModel?.canBeIndexed ?? false
onClicked: providerModel.indexed = !providerModel.indexed
onClicked: networkModel.indexed = !networkModel.indexed
Layout.preferredWidth: implicitWidth
......
......@@ -26,26 +26,10 @@ import org.videolan.vlc 0.1
import "qrc:///widgets/" as Widgets
import "qrc:///style/"
Row {
Widgets.TableRowDelegate {
id: root
// Properties
readonly property bool containsMouse: parent.containsMouse
readonly property bool currentlyFocused: parent.currentlyFocused
property var rowModel: parent.rowModel
property var model: parent.colModel
readonly property int index: parent.index
readonly property string artworkSource: !!rowModel ? rowModel.artwork : ""
readonly property ColorContext colorContext: parent.colorContext
readonly property bool selected: parent.selected
// Private
readonly property string artworkSource: rowModel?.artwork ?? ""
readonly property bool _showPlayCover: (currentlyFocused || containsMouse)
&& !!rowModel
......@@ -54,14 +38,8 @@ Row {
readonly property bool _showCustomCover: (!artworkSource) || (artwork.status !== Image.Ready)
// Signals
signal playClicked(int index)
// Settings
spacing: VLCStyle.margin_normal
// Functions
function getCriterias(colModel, rowModel) {
......@@ -91,109 +69,112 @@ Row {
return string
}
// Children
Row {
anchors.fill: parent
spacing: VLCStyle.margin_normal
Item {
id: itemCover
Item {
id: itemCover
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenter: parent.verticalCenter
width: artwork.width
height: artwork.height
width: artwork.width
height: artwork.height
Widgets.DefaultShadow {
anchors.centerIn: artwork
Widgets.DefaultShadow {
anchors.centerIn: artwork
// clip shadows to only the painted area of cover
rectWidth: artwork.paintedWidth
rectHeight: artwork.paintedHeight
}
// clip shadows to only the painted area of cover
rectWidth: artwork.paintedWidth
rectHeight: artwork.paintedHeight
}
NetworkCustomCover {
id: artwork
NetworkCustomCover {
id: artwork
width: VLCStyle.listAlbumCover_width
height: VLCStyle.listAlbumCover_height
width: VLCStyle.listAlbumCover_width
height: VLCStyle.listAlbumCover_height
// artworks can have anysize, we try to fit it using PreserveAspectFit
// in the provided size and place it in the center of itemCover
fillMode: Image.PreserveAspectFit
horizontalAlignment: Image.AlignHCenter
verticalAlignment: Image.AlignVCenter
// artworks can have anysize, we try to fit it using PreserveAspectFit
// in the provided size and place it in the center of itemCover
fillMode: Image.PreserveAspectFit
horizontalAlignment: Image.AlignHCenter
verticalAlignment: Image.AlignVCenter
networkModel: rowModel
networkModel: root.rowModel
bgColor: root.colorContext.bg.secondary
color1: root.colorContext.fg.primary
accent: root.colorContext.accent
bgColor: root.colorContext.bg.secondary
color1: root.colorContext.fg.primary
accent: root.colorContext.accent
Widgets.PlayCover {
x: Math.round((artwork.width - width) / 2)
y: Math.round((artwork.height - height) / 2)
Widgets.PlayCover {
x: Math.round((artwork.width - width) / 2)
y: Math.round((artwork.height - height) / 2)
width: VLCStyle.play_cover_small
width: VLCStyle.play_cover_small
visible: root._showPlayCover
visible: root._showPlayCover
onClicked: playClicked(root.index)
onClicked: playClicked(root.index)
}
}
}
}
Column {
anchors.top: parent.top
anchors.bottom: parent.bottom
Column {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.topMargin: VLCStyle.margin_xxsmall
anchors.bottomMargin: VLCStyle.margin_xxsmall
anchors.topMargin: VLCStyle.margin_xxsmall
anchors.bottomMargin: VLCStyle.margin_xxsmall
width: Math.max(0, parent.width - x)
width: Math.max(0, parent.width - x)
Widgets.TextAutoScroller {
id: itemText
Widgets.TextAutoScroller {
id: itemText
anchors.left: parent.left
anchors.right: parent.right
anchors.left: parent.left
anchors.right: parent.right
height: (itemCriterias.visible) ? Math.round(parent.height / 2)
: parent.height
height: (itemCriterias.visible) ? Math.round(parent.height / 2)
: parent.height
visible: (listLabel.text)
visible: (listLabel.text)
clip: scrolling
clip: scrolling
label: listLabel
label: listLabel
forceScroll: root.currentlyFocused
forceScroll: root.currentlyFocused
Widgets.ListLabel {
id: listLabel
Widgets.ListLabel {
id: listLabel
anchors.verticalCenter: parent.verticalCenter
anchors.verticalCenter: parent.verticalCenter
text: (root.rowModel && model.title) ? root.rowModel[model.title] : ""
text: root.rowModel?.[root.colModel.title] ?? ""
color: root.selected
? root.colorContext.fg.highlight
: root.colorContext.fg.primary
color: root.selected
? root.colorContext.fg.highlight
: root.colorContext.fg.primary
}
}
}
Widgets.MenuCaption {
id: itemCriterias
Widgets.MenuCaption {
id: itemCriterias
anchors.left: parent.left
anchors.right: parent.right
anchors.left: parent.left
anchors.right: parent.right
height: itemText.height
height: itemText.height
visible: (text)
visible: (text)
color: root.selected
? root.colorContext.fg.highlight
: root.colorContext.fg.secondary
color: root.selected
? root.colorContext.fg.highlight
: root.colorContext.fg.secondary
text: root.getCriterias(root.model, root.rowModel)
text: root.getCriterias(root.colModel, root.rowModel)
}
}
}
}
......@@ -81,8 +81,9 @@ FocusScope {
property alias alignment: repeater.alignment
//function
/* required */ property var altFocusAction
///@type {function}
required property var altFocusAction
readonly property ColorContext colorContext: ColorContext {
id: theme
......
......@@ -33,7 +33,7 @@ FocusScope{
// Properties
/* required */ property int textWidth
required property int textWidth
property int reservedHeight: 0
......
......@@ -38,7 +38,8 @@ RowLayout {
colorSet: ColorContext.Window // copied from TracksPage, maybe use Pane?
}
/* required */ property var trackMenuController: null
//FIXME make TrackMenuController a proper type (see TrackMenu)
required property QtObject trackMenuController
spacing: 0
......@@ -112,6 +113,9 @@ RowLayout {
id: tracksListContainer
required property var modelData
required property int index
property var tracksModel: modelData.tracksModel
focus: true
......
......@@ -35,7 +35,8 @@ RowLayout {
property int preferredWidth: VLCStyle.dp(512, VLCStyle.scale)
/* required */ property var trackMenuController: null
//FIXME make TrackMenuController a proper type (see TrackMenu)
required property QtObject trackMenuController
// Settings
......
......@@ -19,6 +19,8 @@
import QtQml
import org.videolan.vlc 0.1
import org.videolan.medialib 0.1
import "qrc:///util/Helpers.js" as Helpers
......@@ -28,7 +30,7 @@ NativeMenu {
// Properties
/* required */ property var model: null
required property MLBaseModel model
property string idDataRole: "id"
......