Favorites implementation #27

Merged
dorian merged 5 commits from favorites_implementation into master 2024-10-17 17:52:37 +02:00
12 changed files with 83 additions and 29 deletions
Showing only changes of commit 7729ecd994 - Show all commits

View file

@ -1,5 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<manifest package="com.itsblue.blueROCK" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.02.1" android:versionCode="9" android:installLocation="auto"> <manifest package="com.itsblue.blueROCKtest" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.02.1" android:versionCode="9" android:installLocation="auto">
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="blueROCK" android:icon="@drawable/icon"> <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="blueROCK" android:icon="@drawable/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="blueROCK" android:screenOrientation="unspecified" android:launchMode="singleTop"> <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="blueROCK" android:screenOrientation="unspecified" android:launchMode="singleTop">
<intent-filter> <intent-filter>

View file

@ -61,6 +61,8 @@ DataListView {
} }
} }
compCats.push( {"text": qsTr("Favorites"), "data": {"sort_rank":0, "cat_id":[-1]}} )
compCats.sort(function(a, b) { compCats.sort(function(a, b) {
return a['data']['sort_rank'] - b['data']['sort_rank']; return a['data']['sort_rank'] - b['data']['sort_rank'];
}); });
@ -87,6 +89,7 @@ DataListView {
property int year: new Date().getFullYear() property int year: new Date().getFullYear()
property var displayedCompCats: [] property var displayedCompCats: []
property var compFavorites: []
anchors.fill: parent anchors.fill: parent
@ -101,6 +104,7 @@ DataListView {
Component.onCompleted: { Component.onCompleted: {
initFilters() initFilters()
initFavorites()
if(model){ if(model){
control.status = 200 control.status = 200
@ -304,7 +308,6 @@ DataListView {
} }
function initFilters() { function initFilters() {
if(appSettings.read("displayedCompCats"+params.nation) !== "false"){ if(appSettings.read("displayedCompCats"+params.nation) !== "false"){
//console.log(appSettings.read("displayedCompCats"+params.nation)) //console.log(appSettings.read("displayedCompCats"+params.nation))
control.displayedCompCats = JSON.parse(appSettings.read("displayedCompCats"+params.nation)) control.displayedCompCats = JSON.parse(appSettings.read("displayedCompCats"+params.nation))
@ -326,6 +329,34 @@ DataListView {
//console.log(control.displayedCompCats) //console.log(control.displayedCompCats)
} }
function editFavorites(favorite, compId) {
if(control.compFavorites.indexOf(compId) >= 0 && !favorite) {
control.compFavorites.splice( control.compFavorites.indexOf(compId), 1)
}
else if(!control.compFavorites.indexOf(compId) >= 0 && favorite) {
control.compFavorites.push(compId)
}
appSettings.write("compFavorites", JSON.stringify(control.compFavorites))
// trigger 'changed' signal
control.compFavorites = control.compFavorites
}
function initFavorites() {
if(appSettings.read("compFavorites") !== "false"){
//console.log(appSettings.read("displayedCompCats"+params.nation))
control.compFavorites = JSON.parse(appSettings.read("compFavorites"))
}
else {
control.compFavorites = []
appSettings.write("compFavorites", JSON.stringify(control.compFavorites))
}
// trigger 'changed' signal
control.compFavorites = control.compFavorites
console.log(control.compFavorites)
}
Connections { Connections {
target: parent.selector target: parent.selector
onSelectionFinished: { onSelectionFinished: {
@ -369,10 +400,12 @@ DataListView {
property var cats: thisData["cats"] property var cats: thisData["cats"]
property int catId: thisData["cat_id"] === undefined ? 0:thisData["cat_id"] property int catId: thisData["cat_id"] === undefined ? 0:thisData["cat_id"]
property bool includedByFavorites: control.displayedCompCats.indexOf(-1) >= 0 && control.compFavorites.indexOf(parseInt(thisData['WetId'])) >= 0
property bool includedByFilter: control.displayedCompCats.indexOf(parseInt(thisData['cat_id'])) >= 0 property bool includedByFilter: control.displayedCompCats.indexOf(parseInt(thisData['cat_id'])) >= 0
property bool thisIsVisible: includedByFavorites || includedByFilter
width: parent.width width: parent.width
height: includedByFilter ? compDelCol.height + 10 : 0 height: thisIsVisible ? compDelCol.height + 10 : 0
enabled: (thisData["cats"] !== undefined && thisData["cats"].length > 0) || competitionDel.thisData["homepage"] !== undefined || getCompInfoUrl(index) !== undefined enabled: (thisData["cats"] !== undefined && thisData["cats"].length > 0) || competitionDel.thisData["homepage"] !== undefined || getCompInfoUrl(index) !== undefined
//visible: includedByFilter //visible: includedByFilter
@ -385,16 +418,20 @@ DataListView {
onDisplayedCompCatsChanged: { onDisplayedCompCatsChanged: {
competitionDel.includedByFilter = control.displayedCompCats.indexOf(parseInt(competitionDel.thisData['cat_id'])) >= 0 competitionDel.includedByFilter = control.displayedCompCats.indexOf(parseInt(competitionDel.thisData['cat_id'])) >= 0
} }
onCompFavoritesChanged: {
competitionDel.includedByFavorites = control.displayedCompCats.indexOf(-1) >= 0 && control.compFavorites.indexOf(parseInt(thisData['WetId'])) >= 0
}
} }
onThisDataChanged: { onThisDataChanged: {
if(includedByFilter){ if(thisIsVisible){
fadeInPa.start() fadeInPa.start()
} }
} }
onIncludedByFilterChanged: { onThisIsVisibleChanged: {
if(includedByFilter){ if(thisIsVisible){
fadeInPa.start() fadeInPa.start()
} }
else { else {
@ -443,20 +480,30 @@ DataListView {
spacing: 10 spacing: 10
Label { RowLayout {
id: nameLa
width: parent.width width: parent.width
Label {
id: nameLa
font.bold: true width: parent.width
wrapMode: Text.WordWrap font.bold: true
text: name wrapMode: Text.WordWrap
}
Label { text: name
//text: model.month
Layout.fillWidth: true
}
ToolButton {
icon.name: competitionDel.includedByFavorites ? "bookmarkFilled":"bookmark"
onClicked: {
control.editFavorites(!competitionDel.includedByFavorites, parseInt(thisData['WetId']))
}
Layout.alignment: Layout.Right
}
} }
Label { Label {

View file

@ -61,7 +61,7 @@ Window {
'label' : 'World Cups', 'label' : 'World Cups',
'nation' : 'ICC', 'nation' : 'ICC',
'bgcolor' : '#B8C8FF', 'bgcolor' : '#B8C8FF',
'sort_rank': 0, 'sort_rank': 1,
'cat_id' : [69] 'cat_id' : [69]
}, },
'youth' : { 'youth' : {
@ -71,14 +71,14 @@ Window {
'serie_reg' : '^[0-9]{2,2}_EYC', 'serie_reg' : '^[0-9]{2,2}_EYC',
'rang_title': '', 'rang_title': '',
'bgcolor' : '#D8E8FF', 'bgcolor' : '#D8E8FF',
'sort_rank': 1, 'sort_rank': 2,
'cat_id' : [71,258] 'cat_id' : [71,258]
}, },
'cont': { 'cont': {
'label' : 'Continental Events', 'label' : 'Continental Events',
'nation' : 'ICC', 'nation' : 'ICC',
'bgcolor' : '#B8C8FF', 'bgcolor' : '#B8C8FF',
'sort_rank': 2, 'sort_rank': 3,
'cat_id' : [262] 'cat_id' : [262]
}, },
'masters' : { 'masters' : {
@ -88,7 +88,7 @@ Window {
// 'serie_reg' : '^[0-9]{2,2}_(WC|TR){1,1}.*', // 'serie_reg' : '^[0-9]{2,2}_(WC|TR){1,1}.*',
// 'rang_title': 'CUWR continuously updated WORLDRANKING', // 'rang_title': 'CUWR continuously updated WORLDRANKING',
'bgcolor' : '#F0F0F0', 'bgcolor' : '#F0F0F0',
'sort_rank': 3, 'sort_rank': 4,
'cat_id' : [70] 'cat_id' : [70]
}, },
'para' : { 'para' : {
@ -96,14 +96,14 @@ Window {
'nation' : 'ICC', 'nation' : 'ICC',
'wettk_reg' : '^[0-9]{2,2}_PE.*', 'wettk_reg' : '^[0-9]{2,2}_PE.*',
'bgcolor' : '#F0F0F0', 'bgcolor' : '#F0F0F0',
'sort_rank': 4, 'sort_rank': 5,
'cat_id' : [256,259] 'cat_id' : [256,259]
}, },
'games': { 'games': {
'label': 'Games', 'label': 'Games',
'nation': 'ICC', 'nation': 'ICC',
'bgcolor' : '#B8C8FF', 'bgcolor' : '#B8C8FF',
'sort_rank': 5, 'sort_rank': 6,
'cat_id': [68,86] 'cat_id': [68,86]
}, },
@ -139,7 +139,7 @@ Window {
'label' : 'Deutsche Meisterschaft', 'label' : 'Deutsche Meisterschaft',
'nation' : 'GER', 'nation' : 'GER',
'bgcolor' : '#A8F0A8', 'bgcolor' : '#A8F0A8',
'sort_rank': 0, 'sort_rank': 1,
'cat_id' : [57, 59, 60] 'cat_id' : [57, 59, 60]
}, },
@ -150,7 +150,7 @@ Window {
'serie_reg' : '^[0-9]{2,2}_JC', 'serie_reg' : '^[0-9]{2,2}_JC',
// 'rang_title': 'Deutsche Jugend RANGLISTE', // 'rang_title': 'Deutsche Jugend RANGLISTE',
'bgcolor' : '#D8FFD8', 'bgcolor' : '#D8FFD8',
'sort_rank': 1, 'sort_rank': 2,
'cat_id' : [58] 'cat_id' : [58]
}, },
'ger_state' : { 'ger_state' : {
@ -160,7 +160,7 @@ Window {
'serie_reg' : '^[0-9]{2,2}[_J]{1,1}LM.*', 'serie_reg' : '^[0-9]{2,2}[_J]{1,1}LM.*',
'rang_title': '', 'rang_title': '',
'bgcolor' : '#F0F0F0', 'bgcolor' : '#F0F0F0',
'sort_rank': 2, 'sort_rank': 3,
'cat_id' : [61,56] 'cat_id' : [61,56]
}, },
@ -173,7 +173,7 @@ Window {
'serie_reg' : '.*', 'serie_reg' : '.*',
'rang_title': 'SWISS RANKING', 'rang_title': 'SWISS RANKING',
'bgcolor' : '#A8F0A8', 'bgcolor' : '#A8F0A8',
'sort_rank': 0, 'sort_rank': 1,
'cat_id' : [62,63] 'cat_id' : [62,63]
}, },
'sui_jugend' : { 'sui_jugend' : {
@ -183,7 +183,7 @@ Window {
'serie_reg' : '.*', 'serie_reg' : '.*',
'rang_title': 'SWISS RANKING', 'rang_title': 'SWISS RANKING',
'bgcolor' : '#D8FFD8', 'bgcolor' : '#D8FFD8',
'sort_rank': 1, 'sort_rank': 2,
'cat_id' : [65] 'cat_id' : [65]
}, },
'sui_local' : { 'sui_local' : {
@ -192,7 +192,7 @@ Window {
'wettk_reg' : '^[0-9]{2,2}_RG_.*', 'wettk_reg' : '^[0-9]{2,2}_RG_.*',
'rang_title': '', 'rang_title': '',
'bgcolor' : '#F0F0F0', 'bgcolor' : '#F0F0F0',
'sort_rank': 2, 'sort_rank': 3,
'cat_id' : [64] 'cat_id' : [64]
}, },
'sui_ice' : { 'sui_ice' : {
@ -201,7 +201,7 @@ Window {
'wettk_reg' : '^[0-9]{2,2}_RC_.*', 'wettk_reg' : '^[0-9]{2,2}_RC_.*',
'rang_title': '', 'rang_title': '',
'bgcolor' : '#F0F0F0', 'bgcolor' : '#F0F0F0',
'sort_rank': 3, 'sort_rank': 4,
'cat_id' : [84] 'cat_id' : [84]
} }
} }
@ -566,7 +566,6 @@ Window {
text: "loading..." text: "loading..."
} }
} }
} }
function landscape(){ function landscape(){

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

View file

@ -46,5 +46,13 @@
<file>icons/bluerock/20x20@2/flowchart.png</file> <file>icons/bluerock/20x20@2/flowchart.png</file>
<file>icons/bluerock/20x20@3/flowchart.png</file> <file>icons/bluerock/20x20@3/flowchart.png</file>
<file>icons/bluerock/20x20@4/flowchart.png</file> <file>icons/bluerock/20x20@4/flowchart.png</file>
<file>icons/bluerock/20x20/bookmark.png</file>
<file>icons/bluerock/20x20/bookmarkFilled.png</file>
<file>icons/bluerock/20x20@2/bookmark.png</file>
<file>icons/bluerock/20x20@2/bookmarkFilled.png</file>
<file>icons/bluerock/20x20@3/bookmark.png</file>
<file>icons/bluerock/20x20@3/bookmarkFilled.png</file>
<file>icons/bluerock/20x20@4/bookmark.png</file>
<file>icons/bluerock/20x20@4/bookmarkFilled.png</file>
</qresource> </qresource>
</RCC> </RCC>