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 (10)
......@@ -52,7 +52,7 @@ QVariant NetworkDeviceModel::data( const QModelIndex& index, int role ) const
case NETWORK_TREE:
return QVariant::fromValue( NetworkTreeItem(MediaTreePtr{ item.mediaSource->tree }, item.inputItem.get()) );
case NETWORK_ARTWORK:
return item.artworkUrl;
return item.artwork;
default:
return {};
}
......@@ -458,14 +458,14 @@ void NetworkDeviceModel::addItems(const std::vector<InputItemPtr> & inputList,
item.inputItem = InputItemPtr(inputItem);
char * artwork = input_item_GetArtworkURL(inputItem.get());
if (artwork)
{
item.artworkUrl = QUrl::fromEncoded(artwork);
item.artwork = QString::fromUtf8(artwork);
free(artwork);
}
insertItem(it, std::move(item));
}
......
......@@ -180,7 +180,7 @@ struct NetworkDeviceItem
NetworkDeviceModel::ItemType type;
NetworkDeviceModel::MediaSourcePtr mediaSource;
NetworkDeviceModel::InputItemPtr inputItem;
QUrl artworkUrl;
QString artwork;
};
#endif // MLNETWORKDEVICEMODEL_HPP
......@@ -70,7 +70,7 @@ QVariant NetworkMediaModel::data( const QModelIndex& index, int role ) const
case NETWORK_TREE:
return QVariant::fromValue( item.tree );
case NETWORK_ARTWORK:
return item.artworkUrl;
return item.artwork;
case NETWORK_FILE_SIZE:
return item.fileSize;
case NETWORK_FILE_MODIFIED:
......@@ -579,7 +579,7 @@ void NetworkMediaModel::refreshMediaList( MediaTreePtr tree,
if (str)
{
item.artworkUrl = QUrl::fromEncoded(str);
item.artwork = QString::fromUtf8(str);
free(str);
}
......
......@@ -211,7 +211,7 @@ private:
ItemType type;
bool canBeIndexed;
NetworkTreeItem tree;
QUrl artworkUrl;
QString artwork;
qint64 fileSize;
QDateTime fileModified;
};
......
......@@ -111,7 +111,10 @@ MainInterface.MainViewLoader {
defaultText: I18n.qtr("Unknown Share")
coverProvider: function(index, data) {
return {artwork: data.artwork, cover: custom_cover, type: data.type}
// this is used to provide context to NetworkCustomCover
// indexData is networkModel (model data) for this index
// cover is our custom cover that will be loaded insted of default DragItem cover
return {"indexData": data, "cover": custom_cover}
}
onRequestData: {
......@@ -129,9 +132,18 @@ MainInterface.MainViewLoader {
id: custom_cover
NetworkCustomCover {
networkModel: model
width: networkDragItem.coverSize / 2
height: networkDragItem.coverSize / 2
networkModel: model.indexData
width: networkDragItem.coverSize
height: networkDragItem.coverSize
// we can not change the size of cover and shodows from here,
// so for best visual use scale image to fit
fillMode: Image.PreserveAspectCrop
bgColor: networkDragItem.colorContext.bg.secondary
color1: networkDragItem.colorContext.fg.primary
accent: networkDragItem.colorContext.accent
}
}
}
......
......@@ -24,31 +24,26 @@ import org.videolan.vlc 0.1
import "qrc:///widgets/" as Widgets
import "qrc:///style/"
Widgets.ScaledImage {
id: custom_cover
Item {
id: root
property var networkModel
property color bgColor
property color color1
property color accent
sourceSize: Qt.size(width, height)
source: {
if (networkModel === null)
return ""
if (!!networkModel.artwork && networkModel.artwork.length > 0)
return networkModel.artwork
// Image properties
property int fillMode: Image.Stretch
property int horizontalAlignment: Image.AlignHCenter
property int verticalAlignment: Image.AlignVCenter
var img = SVGColorImage.colorize(_baseUri(networkModel.type))
.color1(custom_cover.color1)
.accent(custom_cover.accent)
readonly property var paintedWidth: _image.paintedWidth
readonly property var paintedHeight: _image.paintedHeight
if (bgColor !== undefined)
img.background(custom_cover.bgColor)
// currently shown image
property var _image: typeImage.visible ? typeImage : artwork
return img.uri()
}
function _baseUri(type) {
switch (type) {
......@@ -66,4 +61,56 @@ Widgets.ScaledImage {
return "qrc:///sd/directory.svg"
}
}
Widgets.ScaledImage {
// failsafe cover, we show this while loading artwork or if loading fails
id: typeImage
anchors.fill: parent
visible: !artwork.visible
sourceSize: Qt.size(width, height)
fillMode: root.fillMode
horizontalAlignment: root.horizontalAlignment
verticalAlignment: root.verticalAlignment
source: {
if (!networkModel || !visible)
return ""
var img = SVGColorImage.colorize(_baseUri(networkModel.type))
.color1(root.color1)
.accent(root.accent)
if (bgColor !== undefined)
img.background(root.bgColor)
return img.uri()
}
}
Widgets.ScaledImage {
id: artwork
anchors.fill: parent
visible: status === Image.Ready
sourceSize: Qt.size(width, height)
fillMode: root.fillMode
horizontalAlignment: root.horizontalAlignment
verticalAlignment: root.verticalAlignment
source: {
if (!!networkModel && !!networkModel.artwork && networkModel.artwork.length > 0)
return networkModel.artwork
return ""
}
}
}
......@@ -46,28 +46,33 @@ Widgets.GridItem {
image: {
if (model.artwork && model.artwork.toString() !== "") {
return model.artwork
} else {
var f = function(type) {
switch (type) {
case NetworkMediaModel.TYPE_DISC:
return "qrc://sd/disc.svg"
case NetworkMediaModel.TYPE_CARD:
return "qrc://sd/capture-card.svg"
case NetworkMediaModel.TYPE_STREAM:
return "qrc://sd/stream.svg"
case NetworkMediaModel.TYPE_PLAYLIST:
return "qrc://sd/playlist.svg"
case NetworkMediaModel.TYPE_FILE:
return "qrc://sd/file.svg"
default:
return "qrc://sd/directory.svg"
}
}
return ""
}
fallbackImage: {
var f = function(type) {
switch (type) {
case NetworkMediaModel.TYPE_DISC:
return "qrc://sd/disc.svg"
case NetworkMediaModel.TYPE_CARD:
return "qrc://sd/capture-card.svg"
case NetworkMediaModel.TYPE_STREAM:
return "qrc://sd/stream.svg"
case NetworkMediaModel.TYPE_PLAYLIST:
return "qrc://sd/playlist.svg"
case NetworkMediaModel.TYPE_FILE:
return "qrc://sd/file.svg"
default:
return "qrc://sd/directory.svg"
}
return SVGColorImage.colorize(f(model.type))
.color1(root.colorContext.fg.primary)
.accent(root.colorContext.accent)
.uri()
}
return SVGColorImage.colorize(f(model.type))
.color1(root.colorContext.fg.primary)
.accent(root.colorContext.accent)
.uri()
}
title: model.name || I18n.qtr("Unknown share")
......
......@@ -101,7 +101,14 @@ Row {
width: artwork.width
height: artwork.height
Widgets.ListCoverShadow { anchors.fill: parent }
Widgets.ListCoverShadow {
// clip shadows to only the painted area of cover
x: (artwork.x + artwork.width - artwork.paintedWidth) / 2
y: (artwork.y + artwork.height - artwork.paintedHeight) / 2
width: artwork.paintedWidth
height: artwork.paintedHeight
}
NetworkCustomCover {
id: artwork
......@@ -109,7 +116,11 @@ Row {
width: VLCStyle.listAlbumCover_width
height: VLCStyle.listAlbumCover_height
//radius: VLCStyle.listAlbumCover_radius
// 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
......
......@@ -190,6 +190,13 @@ Item {
on_ActiveChanged: {
if (_active) {
// reset any data from previous drags before requesting new data,
// so that we don't show invalid data while data is being requested
_title = ""
_covers = []
_data = []
dragItem._currentRequest += 1
dragItem.requestData(dragItem._currentRequest)
......@@ -344,18 +351,18 @@ Item {
ScrollingText {
label: titleLabel
forceScroll: true
height: titleLabel.height
height: VLCStyle.fontHeight_large
width: parent.width
clip: scrolling
forceScroll: dragItem.visible
hoverScroll: false
T.Label {
id: titleLabel
text: dragItem._title
visible: text && text !== ""
width: parent.width
elide: Text.ElideNone
font.pixelSize: VLCStyle.fontSize_large
color: theme.fg.primary
}
......
......@@ -52,6 +52,8 @@ T.ItemDelegate {
property alias image: picture.source
property alias isImageReady: picture.isImageReady
property alias fallbackImage: picture.fallbackImageSource
property alias title: titleLabel.text
property alias subtitle: subtitleTxt.text
property alias playCoverBorderWidth: picture.playCoverBorderWidth
......
......@@ -44,6 +44,8 @@ Rectangle {
property alias source: image.source
property bool isImageReady: image.status == RoundImage.Ready
property alias fallbackImageSource: fallbackImage.source
property alias imageOverlay: overlay.sourceComponent
property alias playCoverVisible: playCoverLoader.visible
......@@ -71,6 +73,16 @@ Rectangle {
radius: root.radius
}
RoundImage {
id: fallbackImage
anchors.fill: parent
radius: root.radius
visible: !root.isImageReady
}
Loader {
id: overlay
......