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 (5)
......@@ -56,8 +56,14 @@ FocusScope {
}
function search() {
if (searchBox.visible)
searchBox.expanded = true
searchBox.reqExpand()
}
Binding {
target: contentModel
property: "searchPattern"
value: searchBox.searchPattern
when: !!contentModel
}
Widgets.AcrylicBackground {
......@@ -65,7 +71,7 @@ FocusScope {
anchors.fill: parent
}
Item {
Item {
id: pLBannerSources
property alias model: globalMenuGroup.model
......@@ -187,7 +193,7 @@ FocusScope {
}
}
FocusScope {
Control {
id: localToolbar
width: parent.width
......@@ -206,216 +212,219 @@ FocusScope {
}
}
Rectangle {
background: Rectangle {
id: localToolbarBg
anchors.fill: parent
color: VLCStyle.colors.lowerBanner
}
Rectangle {
anchors.left : localToolbarBg.left
anchors.right: localToolbarBg.right
anchors.top : localToolbarBg.bottom
Rectangle {
anchors.left : parent.left
anchors.right: parent.right
anchors.top : parent.bottom
height: VLCStyle.border
height: VLCStyle.border
color: VLCStyle.colors.border
color: VLCStyle.colors.border
}
}
Widgets.NavigableRow {
id: localContextGroup
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: VLCStyle.applicationHorizontalMargin + VLCStyle.margin_xsmall
}
enabled: list_grid_btn.visible || sortControl.visible
model: ObjectModel {
id: localContextModel
contentItem: Item {
id: localToolbarContent
property int countExtra: 0
Widgets.NavigableRow {
id: localContextGroup
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: VLCStyle.applicationHorizontalMargin + VLCStyle.margin_xsmall
}
enabled: list_grid_btn.visible || sortControl.visible
Widgets.IconToolButton {
id: list_grid_btn
model: ObjectModel {
id: localContextModel
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
size: VLCStyle.banner_icon_size
iconText: mainInterface.gridView ? VLCIcons.list : VLCIcons.grid
text: i18n.qtr("List/Grid")
onClicked: mainInterface.gridView = !mainInterface.gridView
enabled: true
}
property int countExtra: 0
Widgets.IconToolButton {
id: list_grid_btn
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
size: VLCStyle.banner_icon_size
iconText: mainInterface.gridView ? VLCIcons.list : VLCIcons.grid
text: i18n.qtr("List/Grid")
onClicked: mainInterface.gridView = !mainInterface.gridView
enabled: true
}
Widgets.SortControl {
id: sortControl
Widgets.SortControl {
id: sortControl
textRole: "text"
criteriaRole: "criteria"
textRole: "text"
criteriaRole: "criteria"
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
iconSize: VLCStyle.banner_icon_size
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
iconSize: VLCStyle.banner_icon_size
visible: root.sortModel !== undefined && root.sortModel.length > 1
enabled: visible
visible: root.sortModel !== undefined && root.sortModel.length > 1
enabled: visible
onSortSelected: {
if (contentModel !== undefined) {
contentModel.sortCriteria = type
onSortSelected: {
if (contentModel !== undefined) {
contentModel.sortCriteria = type
}
}
}
onSortOrderSelected: {
if (contentModel !== undefined) {
contentModel.sortOrder = type
onSortOrderSelected: {
if (contentModel !== undefined) {
contentModel.sortOrder = type
}
}
}
sortKey: contentModel ? contentModel.sortCriteria : PlaylistControllerModel.SORT_KEY_NONE
sortOrder: contentModel ? contentModel.sortOrder : undefined
sortKey: contentModel ? contentModel.sortCriteria : PlaylistControllerModel.SORT_KEY_NONE
sortOrder: contentModel ? contentModel.sortOrder : undefined
}
}
}
Connections {
target: root
onExtraLocalActionsChanged : {
for (var i = 0; i < localContextModel.countExtra; i++) {
localContextModel.remove(localContextModel.count - localContextModel.countExtra, localContextModel.countExtra)
}
Connections {
target: root
onExtraLocalActionsChanged : {
for (var i = 0; i < localContextModel.countExtra; i++) {
localContextModel.remove(localContextModel.count - localContextModel.countExtra, localContextModel.countExtra)
}
if (root.extraLocalActions && root.extraLocalActions instanceof ObjectModel) {
for (i = 0; i < root.extraLocalActions.count; i++)
localContextModel.append(root.extraLocalActions.get(i))
localContextModel.countExtra = root.extraLocalActions.count
} else {
localContextModel.countExtra = 0
if (root.extraLocalActions && root.extraLocalActions instanceof ObjectModel) {
for (i = 0; i < root.extraLocalActions.count; i++)
localContextModel.append(root.extraLocalActions.get(i))
localContextModel.countExtra = root.extraLocalActions.count
} else {
localContextModel.countExtra = 0
}
}
}
}
Navigation.parentItem: root
Navigation.rightItem: localMenuGroup.visible ? localMenuGroup : playlistGroup
Navigation.upItem: globalMenuGroup
}
Flickable {
id: localMenuView
readonly property int availableWidth: parent.width
- (localContextGroup.width + playlistGroup.width)
- (VLCStyle.applicationHorizontalMargin * 2)
- (VLCStyle.margin_xsmall * 2)
- (VLCStyle.margin_xxsmall * 2)
readonly property bool _alignHCenter: ((localToolbar.width - contentWidth) / 2) + contentWidth < playlistGroup.x
width: Math.min(contentWidth, availableWidth)
height: VLCStyle.localToolbar_height
clip: true
contentWidth: localMenuGroup.width
contentHeight: VLCStyle.localToolbar_height // don't allow vertical flickering
anchors.rightMargin: VLCStyle.margin_xxsmall // only applied when right aligned
on_AlignHCenterChanged: {
if (_alignHCenter) {
anchors.horizontalCenter = localToolbar.horizontalCenter
anchors.right = undefined
} else {
anchors.horizontalCenter = undefined
anchors.right = playlistGroup.left
}
Navigation.parentItem: root
Navigation.rightItem: localMenuGroup.visible ? localMenuGroup : playlistGroup
Navigation.upItem: globalMenuGroup
}
Loader {
id: localMenuGroup
focus: !!item && item.focus && item.visible
visible: !!item
enabled: status === Loader.Ready
y: status === Loader.Ready ? (VLCStyle.localToolbar_height - item.height) / 2 : 0
width: !!item
? Helpers.clamp(localMenuView.availableWidth,
localMenuGroup.item.minimumWidth || localMenuGroup.item.implicitWidth,
localMenuGroup.item.maximumWidth || localMenuGroup.item.implicitWidth)
: 0
onVisibleChanged: {
//reset the focus on the global group when the local group is hidden,
//this avoids losing the focus if the subview changes
// FIXME: This block needs refactor for keyboard focus.
if (!visible && localMenuGroup.focus) {
localMenuGroup.focus = false
globalMenuGroup.focus = true
Flickable {
id: localMenuView
readonly property int availableWidth: parent.width
- (localContextGroup.width + playlistGroup.width)
- (VLCStyle.applicationHorizontalMargin * 2)
- (VLCStyle.margin_xsmall * 2)
- (VLCStyle.margin_xxsmall * 2)
readonly property bool _alignHCenter: ((localToolbarContent.width - contentWidth) / 2) + contentWidth < playlistGroup.x
width: Math.min(contentWidth, availableWidth)
height: VLCStyle.localToolbar_height
clip: true
contentWidth: localMenuGroup.width
contentHeight: VLCStyle.localToolbar_height // don't allow vertical flickering
anchors.rightMargin: VLCStyle.margin_xxsmall // only applied when right aligned
on_AlignHCenterChanged: {
if (_alignHCenter) {
anchors.horizontalCenter = localToolbarContent.horizontalCenter
anchors.right = undefined
} else {
anchors.horizontalCenter = undefined
anchors.right = playlistGroup.left
}
}
onItemChanged: {
if (!item)
return
item.Navigation.parentItem = root
item.Navigation.leftItem = Qt.binding(function(){ return localContextGroup.enabled ? localContextGroup : null})
item.Navigation.rightItem = Qt.binding(function(){ return playlistGroup.enabled ? playlistGroup : null})
item.Navigation.upItem = globalMenuGroup
Loader {
id: localMenuGroup
focus: !!item && item.focus && item.visible
visible: !!item
enabled: status === Loader.Ready
y: status === Loader.Ready ? (VLCStyle.localToolbar_height - item.height) / 2 : 0
width: !!item
? Helpers.clamp(localMenuView.availableWidth,
localMenuGroup.item.minimumWidth || localMenuGroup.item.implicitWidth,
localMenuGroup.item.maximumWidth || localMenuGroup.item.implicitWidth)
: 0
onVisibleChanged: {
//reset the focus on the global group when the local group is hidden,
//this avoids losing the focus if the subview changes
// FIXME: This block needs refactor for keyboard focus.
if (!visible && localMenuGroup.focus) {
localMenuGroup.focus = false
globalMenuGroup.focus = true
}
}
onItemChanged: {
if (!item)
return
item.Navigation.parentItem = root
item.Navigation.leftItem = Qt.binding(function(){ return localContextGroup.enabled ? localContextGroup : null})
item.Navigation.rightItem = Qt.binding(function(){ return playlistGroup.enabled ? playlistGroup : null})
item.Navigation.upItem = globalMenuGroup
}
}
}
}
Widgets.NavigableRow {
id: playlistGroup
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
rightMargin: VLCStyle.applicationHorizontalMargin + VLCStyle.margin_xsmall
}
spacing: VLCStyle.margin_xxxsmall
Widgets.NavigableRow {
id: playlistGroup
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
rightMargin: VLCStyle.applicationHorizontalMargin + VLCStyle.margin_xsmall
}
spacing: VLCStyle.margin_xxxsmall
model: ObjectModel {
model: ObjectModel {
Widgets.SearchBox {
id: searchBox
contentModel: root.contentModel
visible: root.contentModel !== undefined
enabled: visible
height: VLCStyle.bannerButton_height
buttonWidth: VLCStyle.bannerButton_width
}
Widgets.SearchBox {
id: searchBox
visible: root.contentModel !== undefined
enabled: visible
height: VLCStyle.bannerButton_height
width: searchBox.implicitWith
buttonWidth: VLCStyle.bannerButton_width
}
Widgets.IconToolButton {
id: playlist_btn
Widgets.IconToolButton {
id: playlist_btn
size: VLCStyle.banner_icon_size
iconText: VLCIcons.playlist
text: i18n.qtr("Playlist")
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
highlighted: mainInterface.playlistVisible
size: VLCStyle.banner_icon_size
iconText: VLCIcons.playlist
text: i18n.qtr("Playlist")
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
highlighted: mainInterface.playlistVisible
onClicked: mainInterface.playlistVisible = !mainInterface.playlistVisible
}
onClicked: mainInterface.playlistVisible = !mainInterface.playlistVisible
}
Widgets.IconToolButton {
id: menu_selector
Widgets.IconToolButton {
id: menu_selector
size: VLCStyle.banner_icon_size
iconText: VLCIcons.ellipsis
text: i18n.qtr("Menu")
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
size: VLCStyle.banner_icon_size
iconText: VLCIcons.ellipsis
text: i18n.qtr("Menu")
width: VLCStyle.bannerButton_width
height: VLCStyle.bannerButton_height
onClicked: contextMenu.popup(this.mapToGlobal(0, height))
onClicked: contextMenu.popup(this.mapToGlobal(0, height))
QmlGlobalMenu {
id: contextMenu
ctx: mainctx
QmlGlobalMenu {
id: contextMenu
ctx: mainctx
}
}
}
}
Navigation.parentItem: root
Navigation.leftItem: localMenuGroup.visible ? localMenuGroup : localContextGroup
Navigation.upItem: globalMenuGroup
Navigation.parentItem: root
Navigation.leftItem: localMenuGroup.visible ? localMenuGroup : localContextGroup
Navigation.upItem: globalMenuGroup
}
}
}
}
......
......@@ -27,51 +27,50 @@ import "qrc:///widgets/" as Widgets
FocusScope {
id: root
width: content.width
implicitWidth: content.implicitWidth
property variant contentModel
property alias buttonWidth: icon.width
property alias searchPattern: searchBox.text
property bool expanded: false
property bool _expanded: false
onExpandedChanged: {
if (expanded) {
searchBox.forceActiveFocus()
icon.Navigation.rightItem = searchBox
function reqExpand() {
if (visible)
_expanded = true
}
on_ExpandedChanged: {
if (_expanded) {
searchBox.forceActiveFocus(Qt.ShortcutFocusReason)
animateExpand.start()
}
else {
searchBox.placeholderText = ""
searchBox.text = ""
} else {
searchBox.clear()
icon.focus = true
searchBox.focus = false
icon.Navigation.rightItem = null
animateRetract.start()
}
}
onActiveFocusChanged: {
if (!activeFocus && searchBox.text == "")
expanded = false
if (!activeFocus && searchBox.text == "") {
_expanded = false
}
}
SmoothedAnimation {
id: animateExpand;
target: searchBoxRect;
properties: "width"
duration: VLCStyle.ms125
duration: VLCStyle.duration_faster
to: VLCStyle.widthSearchInput
easing.type: Easing.InSine
onStopped: {
searchBox.placeholderText = i18n.qtr("filter")
}
}
SmoothedAnimation {
id: animateRetract;
target: searchBoxRect;
properties: "width"
duration: VLCStyle.ms125
duration: VLCStyle.duration_faster
to: 0
easing.type: Easing.OutSine
}
......@@ -91,15 +90,12 @@ FocusScope {
focus: true
onClicked: {
if (searchBox.text == "")
expanded = !expanded
else {
searchBox.clear()
expanded = !expanded
}
searchBox.clear()
_expanded = !_expanded
}
Navigation.parentItem: root
Navigation.rightItem: _expanded ? searchBox : nullptr
Keys.priority: Keys.AfterItem
Keys.onPressed: Navigation.defaultKeyAction(event)
}
......@@ -113,19 +109,12 @@ FocusScope {
width: 0
implicitHeight: searchBox.height
border.color: {
if ( searchBox.text.length < 3 && searchBox.text.length !== 0 )
return VLCStyle.colors.alert
else if ( searchBox.activeFocus )
return VLCStyle.colors.accent
else
return VLCStyle.colors.buttonBorder
}
border.color: searchBox.activeFocus ? VLCStyle.colors.accent : VLCStyle.colors.buttonBorder
TextField {
id: searchBox
enabled: root.expanded
enabled: root._expanded
anchors.fill: searchBoxRect
anchors.rightMargin: clearButton.visible ? (VLCStyle.margin_xxsmall + clearButton.width) : 0
......@@ -138,39 +127,27 @@ FocusScope {
selectByMouse: true
background: Rectangle { color: "transparent" }
placeholderText: i18n.qtr("filter")
onTextChanged: {
if (contentModel !== undefined)
contentModel.searchPattern = text;
}
background: Rectangle { color: "transparent" }
Navigation.parentItem: root
Navigation.leftItem: icon
Navigation.rightItem: clearButton.visible ? clearButton : null
Navigation.cancelAction: function() { _expanded = false }
Keys.priority: Keys.AfterItem
Keys.onPressed: {
//don't use KeyHelper.matchCancel here as we don't want to match Backspace
if (event.key === Qt.Key_Back
|| event.key === Qt.Key_Cancel
|| event.matches(StandardKey.Back)
|| event.matches(StandardKey.Cancel))
{
event.accepted = true
//we don't want Navigation.cancelAction to match Backspace
if (event.matches(StandardKey.Backspace)) {
return
}
Navigation.defaultKeyAction(event)
}
Keys.onReleased: {
//don't use KeyHelper.matchCancel here as we don't want to match Backspace
if (event.key === Qt.Key_Back
|| event.key === Qt.Key_Cancel
|| event.matches(StandardKey.Back)
|| event.matches(StandardKey.Cancel))
{
text = ""
expanded = false
event.accepted = true
//we don't want Navigation.cancelAction to match Backspace
if (event.matches(StandardKey.Backspace)) {
return
}
Navigation.defaultKeyReleaseAction(event)
}
......@@ -186,7 +163,7 @@ FocusScope {
size: VLCStyle.icon_small
iconText: VLCIcons.close
visible: ( expanded && searchBox.text.length > 0 )
visible: ( _expanded && searchBox.text.length > 0 )
enabled: visible
onClicked: {
......