Skip to content
This repository has been archived by the owner on Sep 7, 2024. It is now read-only.

Commit

Permalink
Merge pull request #47 from TigraTT-Driver/v200
Browse files Browse the repository at this point in the history
V200
  • Loading branch information
TigraTT-Driver authored Sep 18, 2022
2 parents 68fec4c + 5ac24fc commit 5283737
Show file tree
Hide file tree
Showing 144 changed files with 2,645 additions and 2,367 deletions.
26 changes: 25 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
# Changelog
## v0.200

**Optical changes**
- Changed favorites badge design based from the gameOS theme (https://github.com/PlayingKarrde/gameOS)
- Changed the currently selected game border to use a color cycle animation to make it more clear. The color of the border can either be consistent across the color theme, or can change based on the particular collection (settings option)
- New option for colorfull manufacturer logos shown on the Collections screen
- New/ Updated background art/logos or color theme choices for the various collections or base themes
- Option to disable background image

**Usability/Performance Adjustments**
- Page up/Page down can be configured via settings to either skip to next/previous collection when in the game grid view (default), or can instead be used to rapidly scroll up/down the games list for quicker navigation of large collections
- The collections carousel now supports press & hold to quickly scroll through the list
- Several updates to improve performance so no stutters or delays when scrolling through collections or games, or loading the theme etc
- Will automatically render the game title, year and detail text as either dark or light color depending on the background color to ensure readability in all configurations
- optimized svg graphics

**New Features**
- Dedicated Last Played + Favorites collections can be enabled or disabled via Settings menu
- Collection Category support (requires custom metadata) - able to group collections into Categories - use the Filters key to toggle each category in the collections view
- Games Sorting - Use the Select/Back button on the controller to toggle sorting game grid by Title/Last Played/Favorite/Genre or Rating.
- Custom Sorting (requires custom metadata) - define a custom sort order for specific collections based on game metadata values
- Completed Game Ribbon (requires custom metadata) - Adds a "Completed" ribbon to games you've marked as complete in your game metadata
- Arcade Port tag (requires custom metadata) - Adds an "Arcade Port" icon to the games detail view if you've marked the game as an arcade port in your game metadata

## v0.138
- Fix: missing last collection when switching between collections from the games screen with 'Äll games' collection on
- Fix: missing last collection when switching between collections from the games screen with 'All games' collection on
- new filtering menu for games screen
- Fix: grid incorrect list focus on return from game
- updated logos
Expand Down
172 changes: 104 additions & 68 deletions Collections/Collections.qml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,11 @@ import "../Global"
FocusScope {
focus: collections.focus

readonly property int baseItemWidth: root.width /8
readonly property var touch_colorBright: dataConsoles[clearShortname(currentCollection.shortName)].color
readonly property var touch_colorDimm: touch_colorBright.replace(/#/g, "#77");
readonly property var touch_color: {
if (accentColor == "bright") {
return touch_colorBright;
} else {
return touch_colorDimm;
}
}
readonly property int baseItemWidth: root.width / 8
property string clearedShortname: clearShortname(currentCollection.shortName)
readonly property string touch_colorBright: (dataConsoles[clearedShortname] !== undefined) ? dataConsoles[clearedShortname].color : dataConsoles["default"].color
readonly property string touch_colorDimm: touch_colorBright.replace(/#/g, "#77");
readonly property string touch_color: (accentColor === "bright") ? touch_colorBright : touch_colorDimm

Behavior on focus {
ParallelAnimation {
Expand All @@ -37,12 +32,12 @@ FocusScope {

Rectangle {
id: skew_color

width: parent.width * 0.28
height: parent.height
antialiasing: true
anchors {
left: parent.left; leftMargin: parent.width * 0.23
left: parent.left
leftMargin: parent.width * 0.23
}
color: touch_color
Behavior on color {
Expand All @@ -60,6 +55,38 @@ FocusScope {
}
}

Text {
id: txt_collectionType
anchors {
top: parent.top
topMargin: vpx(85)
right: parent.right
rightMargin: vpx(25)
}

text: collectionType + " " + dataText[lang].global_collections
font {
family: global.fonts.sans
weight: Font.Black
italic: true
pixelSize: vpx(40)
capitalization: Font.AllUppercase
}
color: "#F0F0F0"

Behavior on text {
PropertyAnimation {
target: txt_collectionType
property: "opacity"
from: 0
to: 1
duration: 600
easing.type: Easing.OutExpo
}
}
visible: collectionTypes.length > 1
}

Item {
width: parent.width
height: parent.height * 0.58
Expand All @@ -71,24 +98,19 @@ FocusScope {
id: pv_collections

readonly property int pathLength: ( pathItemCount + 1 ) * baseItemWidth

anchors.fill: parent

focus: collections.focus

model: allCollections
currentIndex: currentCollectionIndex

delegate: CollectionsItems {}

snapMode: PathView.SnapOneItem
highlightMoveDuration: 100
highlightRangeMode: PathView.ApplyRange

pathItemCount: 10
path: Path {
startX: - baseItemWidth
startY: pv_collections.height /2
startY: pv_collections.height / 2
PathAttribute { name: "currentWidth"; value: baseItemWidth; }
PathAttribute { name: "currentHeight"; value: pv_collections.height; }
PathLine {
Expand All @@ -103,7 +125,7 @@ FocusScope {
y: pv_collections.path.startY
}
PathAttribute { name: "currentWidth"; value: baseItemWidth * 2; }
PathAttribute { name: "currentHeight"; value: pv_collections.height *1.17; }
PathAttribute { name: "currentHeight"; value: pv_collections.height * 1.17; }
PathLine {
x: pv_collections.path.startX + pv_collections.pathLength / 3.2 + baseItemWidth * 1.5
y: pv_collections.path.startY
Expand All @@ -124,59 +146,60 @@ FocusScope {
preferredHighlightEnd: preferredHighlightBegin

Keys.onPressed: {

if (event.isAutoRepeat) {
return
}

if (api.keys.isAccept(event)) {

//Accept game sound
sfxAccept.play();

if (api.keys.isAccept(event) && !event.isAutoRepeat) {
event.accepted = true;
currentMenuIndex = 3
playAcceptSound();
currentMenuIndex = 3;
return;
}

if (api.keys.isCancel(event)) {
if (api.keys.isCancel(event) && !event.isAutoRepeat) {
event.accepted = true;
currentMenuIndex = 1

//PrevPage sound
sfxBack.play();
playBackSound();
currentMenuIndex = 1;
return;
}

if (event.key == Qt.Key_Left) {

//navigation sound
sfxNav.play();

event.accepted = true;
if (currentCollectionIndex <= 0)
if (event.isAutoRepeat)
currentCollectionIndex = 0
else
currentCollectionIndex = allCollections.length - 1
else
playNavSound();
if (currentCollectionIndex <= 0) {
if (event.isAutoRepeat) {
currentCollectionIndex = 0;
} else {
currentCollectionIndex = allCollections.length - 1;
}
} else {
currentCollectionIndex--;
api.memory.set("currentCollectionIndex", currentCollectionIndex)
}
return;
}

if (event.key == Qt.Key_Right) {

//navigation sound
sfxNav.play();

event.accepted = true;

if (currentCollectionIndex >= allCollections.length - 1)
if (event.isAutoRepeat)
playNavSound();
if (currentCollectionIndex >= allCollections.length - 1) {
if (event.isAutoRepeat) {
currentCollectionIndex = allCollections.length - 1;
else
} else {
currentCollectionIndex = 0;
else
}
} else {
currentCollectionIndex++;
api.memory.set("currentCollectionIndex", currentCollectionIndex)
}
return;
}
}

Keys.onReleased: {
if ((event.key == Qt.Key_Right) || (event.key == Qt.Key_Left)) {
if (!event.isAutoRepeat) {
event.accepted = true;
games.currentGameIndex = 0;
saveCurrentCollectionState(collectionType, currentCollectionIndex);
games.sortIndex = getSortIndex();
return;
}
}
}
}
Expand All @@ -191,53 +214,52 @@ FocusScope {
verticalCenter: parent.verticalCenter
right: parent.right
}

clip: true
currentIndex: currentCollectionIndex
model: allCollections
delegate: CollectionsDetails {}

pathItemCount: 3
path: Path {

// Horizontal Left to Right
startX: -pv_collections_logo.width
startY: pv_collections_logo.height /2
startY: pv_collections_logo.height / 2

PathLine {
x: pv_collections_logo.path.startX + pv_collections_logo.width *3
x: pv_collections_logo.path.startX + pv_collections_logo.width * 3
y: pv_collections_logo.path.startY
}

}

interactive: false
highlightMoveDuration: 150
highlightRangeMode: PathView.ApplyRange
snapMode: PathView.SnapOneItem

preferredHighlightBegin: 0.5
preferredHighlightEnd: 0.5
}

Text {
color: colorScheme[theme].text
anchors {
right: parent.right; rightMargin: vpx(35)
top: parent.top; topMargin: vpx(160)
right: parent.right
rightMargin: vpx(35)
top: parent.top
topMargin: vpx(160)
}
text: (currentCollectionIndex+1)+"/"+pv_collections.count
text: (currentCollectionIndex + 1) + "/" + pv_collections.count
font {
family: robotoSlabThin.name
pixelSize: vpx(16 * fontScalingFactor)
pixelSize: vpx(16 * fontScalingFactor)
}
}

// Buttons
Row {
visible: osc === 0
anchors {
bottom: parent.bottom; bottomMargin: vpx(40)
bottom: parent.bottom
bottomMargin: vpx(40)
right: parent.right
rightMargin: parent.width * 0.05
}
Expand All @@ -246,13 +268,26 @@ FocusScope {
Controls {
id: button_D

message: "<b>"+currentCollection.name+"</b> "+dataText[lang].global_games
message: "<b>" + currentCollection.name + "</b> " + dataText[lang].global_games

text_color: colorScheme[theme].accepted
front_color: colorScheme[theme].accepted.replace(/#/g, "#33");
back_color: colorScheme[theme].accepted.replace(/#/g, "#33");
input_button: osdScheme[controlScheme].BTND
}

Controls {
id: button_U

message: dataText[lang].global_switch + " <b>" + dataText[lang].global_collCategory + "</b>"

text_color: colorScheme[theme].filters
front_color: colorScheme[theme].filters.replace(/#/g, "#26");
back_color: colorScheme[theme].filters.replace(/#/g, "#26");
input_button: osdScheme[controlScheme].BTNU
visible: collectionTypes.length > 1
}

Controls {
id: button_R

Expand All @@ -264,4 +299,5 @@ FocusScope {
input_button: osdScheme[controlScheme].BTNR
}
}

}
Loading

0 comments on commit 5283737

Please sign in to comment.