From 6424a77f7a8425db02f816878fc9dbb8e62098bd Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Sun, 6 Oct 2019 13:54:17 -0700 Subject: [PATCH 01/17] Controller help and favourites work --- ControllerHelp.qml | 71 ++++++++++++++++++++++ README.MD | 2 +- assets/images/controllerButton.svg | 1 + assets/images/controllerDpad.svg | 1 + assets/images/controllerDpadDirections.svg | 1 + layer_grid/GameGrid.qml | 11 ++-- theme.qml | 44 +++++++++++++- 7 files changed, 123 insertions(+), 8 deletions(-) create mode 100644 ControllerHelp.qml create mode 100644 assets/images/controllerButton.svg create mode 100644 assets/images/controllerDpad.svg create mode 100644 assets/images/controllerDpadDirections.svg diff --git a/ControllerHelp.qml b/ControllerHelp.qml new file mode 100644 index 00000000..2b878be2 --- /dev/null +++ b/ControllerHelp.qml @@ -0,0 +1,71 @@ +import QtQuick 2.8 +import QtGraphicalEffects 1.0 + +FocusScope { + id: root + Item { + id: background + width: parent.width + height: parent.height + + LinearGradient { + id: bggradient + z: parent.z + 1 + width: parent.width + height: parent.height + anchors { + top: parent.top; + right: parent.right + bottom: controllerBG.top + } + start: Qt.point(0, 0) + end: Qt.point(0, height) + gradient: Gradient { + GradientStop { position: 0.0; color: "#00000000" } + GradientStop { position: 0.3; color: "#e6000000" } + } + opacity: 1 + Behavior on opacity { NumberAnimation { duration: 100 } } + + Item { + id: buttonContainer + width: parent.width + height: vpx(20) + anchors { + bottom: parent.bottom + bottomMargin: vpx(15) + } + Image { + id: button1 + height: vpx(25) + width: height + source: "assets/images/controllerButton.svg" + sourceSize: vpx(64) + transform: Rotation { angle: 0} + anchors { + right: buttonBack.left + rightMargin: vpx(5) + } + } + + Item { + id: buttonBack + width: txtBack.width + height: parent.height + Text { + id: txtBack + text: "Back" + color: "white" + font.pixelSize: vpx(14) + font.family: bodyFont.name + } + anchors { + right: parent.right + rightMargin: vpx(25) + } + } + } + + }//bggradient + }//background +}//root diff --git a/README.MD b/README.MD index c390ceae..3fdfebd8 100644 --- a/README.MD +++ b/README.MD @@ -1,4 +1,4 @@ -# gameOS v0.6.5 +# gameOS v0.6.6 ![gameOS Pegasus theme](https://i.imgur.com/Zzq3q1n.png) diff --git a/assets/images/controllerButton.svg b/assets/images/controllerButton.svg new file mode 100644 index 00000000..b501632f --- /dev/null +++ b/assets/images/controllerButton.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/controllerDpad.svg b/assets/images/controllerDpad.svg new file mode 100644 index 00000000..cd90d797 --- /dev/null +++ b/assets/images/controllerDpad.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/controllerDpadDirections.svg b/assets/images/controllerDpadDirections.svg new file mode 100644 index 00000000..1c65ea99 --- /dev/null +++ b/assets/images/controllerDpadDirections.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layer_grid/GameGrid.qml b/layer_grid/GameGrid.qml index 9f448da9..05fae5e4 100644 --- a/layer_grid/GameGrid.qml +++ b/layer_grid/GameGrid.qml @@ -26,6 +26,7 @@ FocusScope { signal filtersRequested signal collectionNext signal collectionPrev + signal toggleFav signal gameChanged(int currentIdx) Keys.onPressed: { @@ -34,7 +35,8 @@ FocusScope { if (api.keys.isDetails(event)) { event.accepted = true; - toggleFav(); + toggleFilters(); + //toggleFav(); return; } if (api.keys.isCancel(event)) { @@ -44,20 +46,21 @@ FocusScope { } if (api.keys.isFilters(event)) { event.accepted = true; - toggleFilters() + toggleFav(); + //toggleFilters() //filtersRequested(); return; } } //property bool isFavorite: (gameData && gameData.favorite) || false - function toggleFav() { + /*function toggleFav() { if (gameData) gameData.favorite = !gameData.favorite; toggleSound.play() - } + }*/ function toggleFilters() { if (api.filters.favorite) { diff --git a/theme.qml b/theme.qml index de6fa90a..1ec6e441 100644 --- a/theme.qml +++ b/theme.qml @@ -3,6 +3,7 @@ import QtQuick 2.8 import QtGraphicalEffects 1.0 import QtMultimedia 5.9 +import SortFilterProxyModel 0.2 import "qrc:/qmlutils" as PegasusUtils import "utils.js" as Utils import "layer_grid" @@ -10,6 +11,10 @@ import "layer_menu" import "layer_details" FocusScope { + property int collectionIndex: 0 + property var allGamesInCollection: api.collections.get(collectionIndex) + property bool showFavs: false + //SETTINGS property bool mainShowDetails: api.memory.get('settingsMainShowDetails') | false @@ -27,15 +32,38 @@ FocusScope { property string themeYellow: "#E9D758" property string themeColour: themeOrange + //////////////////////// + // Custom Collections // + + // Favourites + SortFilterProxyModel { + id: favGames + sourceModel: api.collections.get(collectionIndex).games + filters: ValueFilter { + roleName: "favorite" + value: true + } + } + + property var favCollection: { + return { + name: "Favourites", + shortname: "favourites", + games: favGames + } + } + + property var customCollection: [favCollection] + // End custom collections // + //////////////////////////// + ////////////////////////// // Collection switching // function modulo(a,n) { return (a % n + n) % n; } - - property int collectionIndex: 0 - property var currentCollection: api.collections.get(collectionIndex) + property var currentCollection: showFavs ? favCollection : allGamesInCollection property string platformShortname: Utils.processPlatformName(currentCollection.shortName) function nextCollection () { @@ -279,6 +307,7 @@ FocusScope { onMenuRequested: toggleMenu() onDetailsRequested: toggleDetails() onGameChanged: changeGameIndex(currentIdx) + onToggleFav: showFavs ? showFavs = false : showFavs = true } } @@ -344,6 +373,15 @@ FocusScope { } } + ControllerHelp { + id: controllerHelp + width: parent.width + height: vpx(75) + anchors { + bottom: parent.bottom + } + } + /////////////////// // SOUND EFFECTS // From ab58089478b641a21347eb17649b3d8938d8e84d Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Mon, 7 Oct 2019 12:10:44 -0700 Subject: [PATCH 02/17] More controller help enhancements --- ControllerHelp.qml | 71 -------- assets/images/controller/0.png | Bin 0 -> 693 bytes .../0.svg} | 0 assets/images/controller/1.png | Bin 0 -> 668 bytes assets/images/controller/1.svg | 1 + assets/images/controller/10.png | Bin 0 -> 266 bytes assets/images/controller/11.png | Bin 0 -> 265 bytes assets/images/controller/2.png | Bin 0 -> 674 bytes assets/images/controller/2.svg | 1 + assets/images/controller/3.png | Bin 0 -> 686 bytes assets/images/controller/3.svg | 1 + assets/images/controller/4.png | Bin 0 -> 480 bytes assets/images/controller/5.png | Bin 0 -> 493 bytes assets/images/controller/6.png | Bin 0 -> 356 bytes assets/images/controller/7.png | Bin 0 -> 464 bytes assets/images/controller/8.png | Bin 0 -> 480 bytes assets/images/controller/9.png | Bin 0 -> 356 bytes .../controllerDpadDirections.svg | 2 +- .../down.svg} | 2 +- assets/images/controller/input_DPAD-D.png | Bin 0 -> 314 bytes assets/images/controller/input_DPAD-L.png | Bin 0 -> 300 bytes assets/images/controller/input_DPAD-R.png | Bin 0 -> 314 bytes assets/images/controller/input_DPAD-U.png | Bin 0 -> 319 bytes assets/images/controller/input_MOUSE.png | Bin 0 -> 369 bytes assets/images/controller/input_STCK-D.png | Bin 0 -> 484 bytes assets/images/controller/input_STCK-L.png | Bin 0 -> 436 bytes assets/images/controller/input_STCK-R.png | Bin 0 -> 438 bytes assets/images/controller/input_STCK-U.png | Bin 0 -> 479 bytes assets/images/controller/input_TURBO.png | Bin 0 -> 362 bytes assets/images/controller/left.svg | 1 + assets/images/controller/right.svg | 1 + assets/images/controller/up.svg | 1 + layer_grid/GameGrid.qml | 10 +- layer_help/ControllerHelp.qml | 166 ++++++++++++++++++ layer_help/ControllerHelpButton.qml | 41 +++++ theme.qml | 45 ++++- utils.js | 4 + 37 files changed, 265 insertions(+), 82 deletions(-) delete mode 100644 ControllerHelp.qml create mode 100644 assets/images/controller/0.png rename assets/images/{controllerButton.svg => controller/0.svg} (100%) create mode 100644 assets/images/controller/1.png create mode 100644 assets/images/controller/1.svg create mode 100644 assets/images/controller/10.png create mode 100644 assets/images/controller/11.png create mode 100644 assets/images/controller/2.png create mode 100644 assets/images/controller/2.svg create mode 100644 assets/images/controller/3.png create mode 100644 assets/images/controller/3.svg create mode 100644 assets/images/controller/4.png create mode 100644 assets/images/controller/5.png create mode 100644 assets/images/controller/6.png create mode 100644 assets/images/controller/7.png create mode 100644 assets/images/controller/8.png create mode 100644 assets/images/controller/9.png rename assets/images/{ => controller}/controllerDpadDirections.svg (86%) rename assets/images/{controllerDpad.svg => controller/down.svg} (84%) create mode 100644 assets/images/controller/input_DPAD-D.png create mode 100644 assets/images/controller/input_DPAD-L.png create mode 100644 assets/images/controller/input_DPAD-R.png create mode 100644 assets/images/controller/input_DPAD-U.png create mode 100644 assets/images/controller/input_MOUSE.png create mode 100644 assets/images/controller/input_STCK-D.png create mode 100644 assets/images/controller/input_STCK-L.png create mode 100644 assets/images/controller/input_STCK-R.png create mode 100644 assets/images/controller/input_STCK-U.png create mode 100644 assets/images/controller/input_TURBO.png create mode 100644 assets/images/controller/left.svg create mode 100644 assets/images/controller/right.svg create mode 100644 assets/images/controller/up.svg create mode 100644 layer_help/ControllerHelp.qml create mode 100644 layer_help/ControllerHelpButton.qml diff --git a/ControllerHelp.qml b/ControllerHelp.qml deleted file mode 100644 index 2b878be2..00000000 --- a/ControllerHelp.qml +++ /dev/null @@ -1,71 +0,0 @@ -import QtQuick 2.8 -import QtGraphicalEffects 1.0 - -FocusScope { - id: root - Item { - id: background - width: parent.width - height: parent.height - - LinearGradient { - id: bggradient - z: parent.z + 1 - width: parent.width - height: parent.height - anchors { - top: parent.top; - right: parent.right - bottom: controllerBG.top - } - start: Qt.point(0, 0) - end: Qt.point(0, height) - gradient: Gradient { - GradientStop { position: 0.0; color: "#00000000" } - GradientStop { position: 0.3; color: "#e6000000" } - } - opacity: 1 - Behavior on opacity { NumberAnimation { duration: 100 } } - - Item { - id: buttonContainer - width: parent.width - height: vpx(20) - anchors { - bottom: parent.bottom - bottomMargin: vpx(15) - } - Image { - id: button1 - height: vpx(25) - width: height - source: "assets/images/controllerButton.svg" - sourceSize: vpx(64) - transform: Rotation { angle: 0} - anchors { - right: buttonBack.left - rightMargin: vpx(5) - } - } - - Item { - id: buttonBack - width: txtBack.width - height: parent.height - Text { - id: txtBack - text: "Back" - color: "white" - font.pixelSize: vpx(14) - font.family: bodyFont.name - } - anchors { - right: parent.right - rightMargin: vpx(25) - } - } - } - - }//bggradient - }//background -}//root diff --git a/assets/images/controller/0.png b/assets/images/controller/0.png new file mode 100644 index 0000000000000000000000000000000000000000..6222ff02783187cfe191c4ddeb11ac760b4e5afd GIT binary patch literal 693 zcmV;m0!safP))8!6r}4WX=pehs8aj2oWWT#cWvcer)c$lnF}og#&-ecj{b99lJcK zK562XZf(eNDV8?W6OI)f#R6PrhXdc#fEry&lLoXIjuksOVaBCoDbf*^6(?}W(Si`y z$m5VUnTrHI7X2F0b(OWLm--?}O6jp`wIwMbM-Mb5N$S$5`c$KBE$M^Fw#1mjW|tLK zIpBmzA_&n+iUk%((uxofGMsS0Dl6<#V%DEpKYSjGbj8;VOyhV0blPbgrf8`6egcc< z)!@T8+;u6l9Mk4Qw{uL^r6jQ#Iv<|rTjdTp?PiLkeDHCOX?7`5cF3Kd&>pRO;<2xS z627B~tDt?CVryOTY9Wdkgu}4B@PdXtVQ*1fTfVt1CDh_lV!Gv9=h@34Y|jqoIjWfN z*KXs;v%}-q3|6yZ4vR_Z5u%AK4#_|(rf`^{5h3cyU@=$S=TT-TvBw+MIHY*y@^;cJ zvPhctvrD1KA#1#5j}p@!m;E;Wy&6%s%6hL?`YI`+v>vIx^7V%v>Y0$#q1(El8hz4I zz_}P+Tp7HTF_|+#cVYS97M;~6O&*J}fR`wy(Tn>$sQNFUUKk#{rZyb-cA)y%VA9|~ z`*3^*>d+gGTSV3ep9#x~B1)d}8MsW&pT?k$82`-;>W&hM=%Zffo!N*v{158i{cX8| b|9$vRR66*LQS+ya00000NkvXXu0mjf({o7i literal 0 HcmV?d00001 diff --git a/assets/images/controllerButton.svg b/assets/images/controller/0.svg similarity index 100% rename from assets/images/controllerButton.svg rename to assets/images/controller/0.svg diff --git a/assets/images/controller/1.png b/assets/images/controller/1.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f8097535a5acfc860cecdbfd8ef8b33f4a1485 GIT binary patch literal 668 zcmV;N0%QG&P)vb&WH3y1``eU?oQ@?GIQT^?wxC)vm0$^$UcYvZ}1M|C&x6QK}l7W z^}?_QlbK)*mybMVlYJaYbePnc!B?=k;{g*)VUvpsp21KQ z>q-;1T-Qt4KIOY!X&@dex)Gjgmm3d!MqsAkjlINH!aanN=mjV|N zqMH(Kz&*d2R^(xk(YUUvp&hO3y(CLnEy>cZET!aXLCcb)e%)4DZF;8-?U*b}f+7x| zdCC@t)R^`39B{)j0;A1#U`jjHy zym$R|_EHPM8;qO`FR>r^yl!gT4Z&xK8i98Y`g}mo<@l7Zs%j|Is#K(}1FA`gFw{b7 z5MI^IK-e#7P_ILnY9xI3WGjy11Xg%8zJ`htHnUAD=5Zt18Qs!iYoB*epw0o$*y4!e zX3%??_CnO-h3K9yM7eN?qT`>|xUQ+8ZLRBrBump;^j110w4jHQq(0r!4Yg@c8+sGj zV1qf2OTM{r6>*!J!l`$~erhcHlw5pU?h=P|`jjq?SZrNs5~7SMI`S!pswmUC&;%ZJ zUbH&AmQzsQqLq!3b$>#4|7CUfYp9-E}6^DH`dBP_g zR?L1xE#uqVs3w#Ws;aDtS&2FP55~WHZ8?YkefSUE_%{Ne_)VVx0000 \ No newline at end of file diff --git a/assets/images/controller/10.png b/assets/images/controller/10.png new file mode 100644 index 0000000000000000000000000000000000000000..990b0ac736760dc722f60cacc4f4611034939503 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf0wn)#c)SNlUG#Ku42d}W_L@I8qoc&}kMEWA zvif7@PO;a#$M(Ld{J_-a>&iz@u71#vvH0nWS4ZAe#cT=O?0R$3ymY_IKJ(M+E}JBC zehgJ|i!MAW8Xi-4v|dc#IIX?A`}91`uLVmEw&?Ql@kzT)S;V3JsPWuJHE*pq>@h0} z7`SvSj1Ds^_;SzIQeUj}?3!SF)AX{b>l8fv&n4NPJ=3k8yICmv+52OUicODAS|};o zE&5Ya%Xo>KP=mDguQP|4Wdmy7SSEPR|C+A--|O#V)gYkNK>I(s-(@_ioch?mHa-RD OIR;NxKbLh*2~7Y+V{T&r literal 0 HcmV?d00001 diff --git a/assets/images/controller/11.png b/assets/images/controller/11.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c23bce2ab48defc3c597c03fcb88582d934d5f GIT binary patch literal 265 zcmV+k0rvihP)Hqga^9FiX(FZ z0CF^`P{#+VtjUvotPHtO;}EMz{OCv^rKfp8&e9bG=}92b%Lt_%ucVs!yI4-lxtds7 zls}KfO8gYn7-1XahRcA3=`9hH4=U=IRyhMsCuDIfgD{krzM*U^uCZt~0 P00000NkvXXu0mjfz~p?A literal 0 HcmV?d00001 diff --git a/assets/images/controller/2.png b/assets/images/controller/2.png new file mode 100644 index 0000000000000000000000000000000000000000..e4546cd5cea5086447402ca152ce4df16bbaee24 GIT binary patch literal 674 zcmV;T0$u%yP)|A~Tq*=?v&t&l_$=ev*|gu-MXPIi%g3%&(UZZYXuryO{Sn?5swK{VUy+YSV+o> z!etr%*h92z_YifgZ`0B630>23y|+uTho2(;-M=m8@V^iL2{ThT4;K(G@c;k-07*qo IM6N<$f(*Jl$N&HU literal 0 HcmV?d00001 diff --git a/assets/images/controller/2.svg b/assets/images/controller/2.svg new file mode 100644 index 00000000..8fcfc9e8 --- /dev/null +++ b/assets/images/controller/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/controller/3.png b/assets/images/controller/3.png new file mode 100644 index 0000000000000000000000000000000000000000..62cbd0efb121e031efa803a82b83e2bdfcec2cd7 GIT binary patch literal 686 zcmV;f0#W^mP)3`0mb#Dytc8WJP%KhOgz!^DV*Cxl2<<|MTQ6Kn)urHN#UFqKwrVgDEkPH? zRb7dilpu9F)5nEXGndc<8B8>MXZOy0PcrBI-Z?WCI=X5)LiREIe}gBC?;O-sr6q0Z zpMsLByKq8=e&=*tqnHiBCrtXR$ipI|VVzM;8+xqwk|bL! zGHTL0J=KQEwj{{o@`+_uDN`Yfg%BNFXOTs0P9cOvjtXT~S!NrTSrU!6v>-$) z(|FjC4?T{@T}~oI3t1crjo^d0T=OY;cIgPAJNXuP1&rY`us^&&De!ph>@gOC+w9Ti zQ<9XJ-#`B6^ehmMFWOXZ$f~r8`s!1vdam@rLv-j0!Z$S(I6&H!)|*gYQN3#ODM<~f zxc?{);4&I;A^{2s*_ya+pg!aSyFMTitRoS>aVhG>>5+pMt0 z4tq@0L)3}Q0t?u5)WhV=`%rhQ{j$JnWjQlJn$*Xb>n`mR?18^?lcKe zM(f(~DLZ4yp<)(?(fapc z5*vq^xJFSVDBx0Ji6uVbG9ON3)Uu5K<_2^{X;~_2LF;BM=I}$*zx&&A4FCJ^A1;6T UR9>TMBme*a07*qoM6N<$f&=J0)c^nh literal 0 HcmV?d00001 diff --git a/assets/images/controller/3.svg b/assets/images/controller/3.svg new file mode 100644 index 00000000..2fb636a5 --- /dev/null +++ b/assets/images/controller/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/controller/4.png b/assets/images/controller/4.png new file mode 100644 index 0000000000000000000000000000000000000000..90f1e4535afd0bdd7c14bdd7186691f5dad1b46c GIT binary patch literal 480 zcmV<60U!Q}P)iprEHv!ompZw8yUDvDXlEDDX7|y@EOh(Wz?^{W$~$MPVWx z>Y%b(!5-3RYxn77ZGW73cH4oL{LW=&nCCOUnR(_nOcLamLXP$>{=edh!RGNKa-JVh zvE+e=?ptj)UbO15Q6s1*+fcUVVtepO%SslEIb&SW5mSoxW{e7P%S;I2)K7aZhicZS z*azB=&DeXromjjNAM?a>s~nQN@J;mQiSO^&$~*VA%sbcIjETkHyP(${Z(TKK+HlmU z$lf9dNhpOI;X~L?W^ak@ij5gHp=i*ME9nQOXv8CSCEb0bRGrk?s??7MU{5p zCp`JS{#BO*8(w(njTL1p)>TvWlm~JxdHrXEh*97he3f-u<6MO;}UiN|;H*S0Y@dTSg#Y?vgyRFn}yjKZTX?#%j#*`_iT7z#ly5LSt&9dmCxZgaJq%t`kBXRLHixy9m zxcJ8<{NKZC?ZV$W>IJGz=^_4+3J1caPzgWtwNXXfRdIg$Y||@igEP?$qw$RE3a)w7 zd=DDqR~*JFCByD|?3qfd@ICH3>9Rxi8?sXeN{XHuGilnSve`&IVn8m0a#;TBYHipX zj)(K%Mwke5nGUDx3+agW?sjip&)yp`^5cAk9-D2_W6P~-{oP$;;!J{Wpzaxh1lTr0h!2<=w z-xjZ{`V1z+zb9?LkU@D{G3&K4W2U@QaZHziKf&j+UfwP_IXN43gHiph!53zoZk>wl j!5ieS*c2_{iv<4$W+%`Y>b5-(00000NkvXXu0mjffdK90 literal 0 HcmV?d00001 diff --git a/assets/images/controller/6.png b/assets/images/controller/6.png new file mode 100644 index 0000000000000000000000000000000000000000..d28905694da38d8db0558052ebbd8bc1f0ef0210 GIT binary patch literal 356 zcmV-q0h|7bP)^|^C( zDvPBh0WbcEP)hFV~i0-=_bUD zKk!9biC_~U1Y}4fXwZWTWrya;lH!yshir1p1Z#A$?^jxum@C=kfO@?=dN1fb&`?fz zo+`13tbEmCrXNGE;P+Z)ym6vUCL!SA%*hB z$5K0==Ztf*9FX>uLUcy1lVZdfAkM9S@FsfbXP9wpiogm}=J0C5L;}VU3NBjjc5}M9>rsHAq4R zmR1Hy(QorMWstphuPM=F+#++s~_$n zz%Ua;@bCa^GGiRK;id;S-S`+HfEOrp#12Wem}Q+H2b!mK8nPrV#Ajs1wup-bF(%q8 z8O@>~;>H@6{ljNx{kqNz#oqxT WLBXJ$JkVqS0000^|^C( zDvPBh \ No newline at end of file + \ No newline at end of file diff --git a/assets/images/controllerDpad.svg b/assets/images/controller/down.svg similarity index 84% rename from assets/images/controllerDpad.svg rename to assets/images/controller/down.svg index cd90d797..1395c6e3 100644 --- a/assets/images/controllerDpad.svg +++ b/assets/images/controller/down.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/assets/images/controller/input_DPAD-D.png b/assets/images/controller/input_DPAD-D.png new file mode 100644 index 0000000000000000000000000000000000000000..9bdf17bed23096ccc89781db6e99902842f45bdf GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf3?viMZ?gg^zW|>Q*Z))n6Kq0UfhJ3q1o;Is zuyd$uXr^UUHq4m0eAV$YH*ej3`1t9w&p+E;cAWq!YVve(4DmSr_R2}F1_cp^i_Zi2 zeA5>H|G#)*WUf)%Zl&{H54#p9IehZnvtm!v;v#FadpDA@UL7$L=(9PUc`AHn>A{KY z-(KzeGJ!oZV*h#e+KJOkbMEi@Q(h;tB;-)=r*{fF3kBO8Wo)hQ%>L=?cTVPWp@Y5u ny*r6n301$pm^eQ@`CI4UHX$RKePJ(vu3_+W^>bP0l+XkKMz*qe literal 0 HcmV?d00001 diff --git a/assets/images/controller/input_DPAD-L.png b/assets/images/controller/input_DPAD-L.png new file mode 100644 index 0000000000000000000000000000000000000000..ba00b3a83c3f83dac9fcfc53c7fdda080b92d329 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf3?viMZ?gg^zW|>Q*Z))n6Kq0UfhJ3q1o;Is zuyd$uXr^UUH_Vv1eAV$YH*ej3^!Vwsk3XN^vQh>rD)Dr24DmRgoFKvKEWDxMa}%RE zci^ekBR>v0_)L(v+B4~m0NZXAWx-Q31y0R$o7$Z0?jpoxk#K6E14ndCq33}mmWoVk zasm`iwYpmNTliR7&*G6keKyOr;B5V$MLsQZ*ny#2)M>> z4vNk>|NsB_1FZ@?Q|76hzicr_J$(nWgQEY67d%ZaFE5)(d^0@OHtS|nro_U<(eAG1 zmuGG{{Bmo(zQuyiTZ;m2XY8rl#u)pppY8K6#s6#7>r?{slV=s){GMOsQ@}7)#Jgd~ gg~vN&8hmy#RCfzc+|q6w4|D~Cr>mdKI;Vst01`j4X8-^I literal 0 HcmV?d00001 diff --git a/assets/images/controller/input_DPAD-U.png b/assets/images/controller/input_DPAD-U.png new file mode 100644 index 0000000000000000000000000000000000000000..f768ce5db218966b20516c417243833d1899ac2e GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf3?viMZ?giazyO~R*Z=sKuR(#wHBeHd zfZ^!Nf9$53UDAqor7EoJ;+!s-&7W|{e&H&15!aWeH!>gZ*|^#`K=I43tFIRwE_)++ zuJRZ)E*>zB8$LB?DYk5|Z(K|+@nrx=G! z(T0(x43x^bTu3_fZpCQ1I{ZjRiUdI->mO>ldRg|Z6_3pT2jy$NYOVFL8DLFI)xUmb zttxjIsyUIu@b7mp zJ8M)?6h>Dj#*iUnq8N)9LBXg|5CSR+qgaSmTG^?U55zwrHaPr`w#hio^cSIbE`PRar%MDKF)vylAZn?;PM5+mKlv z(h4$0R?VA!Q`@%HuU@x5!bQ}>KJ~L#-6i6f*Zg9`;XfhoamJ?OsouCvr|l^&zhcKD zB32xA)QX5l?RdGkyy0CD&-qf-7oHXIo==L(H>elHi~d~a#Y=V^EGFNr9=FerDftKc zJfV*Lp3Vx8ind|)d(M%i*a<(xy_F;O*f(jn(OnN4=(__u7Q4ovYp3dH4`nIZwYsq-p^ z#IM{MRW<={sYQ{$;IZiEAX}&cP~{LKOtX}Y#m;;y&sbiGQk%8xVK%@8MiKF}^D9&S z-ZL>OD#r;IRb6s2%EaXrADNgqV|SFv6QYeg2KMnT3gnT)UZ4@*o=={${@w3fDKF*! agZu|$gVDLg&A_Js0000|36vpvyl2|A%g(!&&s7OG;MzC`)qLmgRNbJM~U&RGQ5D{NP^8ywI1wk#WvEb^l`} z_I5K{-15FoSfngpwLN-_2oJ0?fsZ+MNfM-?7`%nb^mB+kyo}OMIYJC@!|A8@Ht{K< z45d%?Y>)upfmwv;CdO(ZxRW*Rh~TGUyzV4C3VQ93;Q9;zR>NAf9^+!Wn%U(^rICA)2BMtQ>}Q427BP=M25L^$1EShX37_c)YY1GCPA&5v)i3#M7Xk`q7+W8~I_yf`;gdl2V zp^d`22*w@pK*G+QLXm7>mmL|4ka@pu-r*|ddmfk?xxcBsM?1k2Ji!zE-^1&xc&CjH z3gjq8)~$3JeeagnbL^7c66I7{cKX%OHD?_0l?$F4_#z&>*&Xu^i<7ef?DlcpJf6a##tKU#@m`Qs>u@6kvW*yph1 zdB|t#IO2#i04~{NknLzCYVp!J5nq>l^W``$6z9G0v53>2+(hw1JW<3Zcg*|jrbJI1 z@sS&Gl?XfiV(7YW9d*J*3l zPfHYW7=WMI-R!b?GC@h)Ko-I9Alq7Ts@2q7#w)n`y|-IlVDAfZ!4 zu|l+DY>nmQiu-gaX!9_?VRoa#ymOkDd7i`jkBMY(Q5vATkQeeo{%_^8%x3vK%5Ymo z*aFV88%!Ablzi%uM?SY4%7n{T-Bb0u_xmlslv73`F4*--e)$PEZ8_JIo3rIJEBWO(?za2hbjHZY zbKWv>+p&IZC}Pz+CThoynt0o42p4|1hFRb&@Qx?!g&|q4V&?dd{ zu}T9$6h-d_15p;WOl6^9Ap|5}V`XJ0+8F$c#L83_R`ClgVyhouBS!25i-c5)uCTLv zY@%qQaaLbIaqo09a}RIs%rFz6$*C|wb`Hyt^V*J`6 zDKAQB`MG@I)12b~a9l9s=ki-#Rogm|6GBeM+EUdnmO8_#+r<)cN&E_qxn|Zf^JVTy z2HW|-ie=^{IqfKrBn8^llS+1(H%BsW+Qm}g@y$6;iKtj+zV@!}b=ylM_6D`5G<-e& z@FJ(gIL;{A!$p}cUCREBAk%klLDEfz`Cc`I)M(QqA)!Z`8lhDzOI(ed^A3wYhtG3F zpO4h1#oT!JS1(bdj_y7gyHzyaoNYrh>hFFna(E8U;r|x?4E*x?M(h|gKmY&$07*qo IM6N<$g2pqYK>z>% literal 0 HcmV?d00001 diff --git a/assets/images/controller/left.svg b/assets/images/controller/left.svg new file mode 100644 index 00000000..323e827d --- /dev/null +++ b/assets/images/controller/left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/controller/right.svg b/assets/images/controller/right.svg new file mode 100644 index 00000000..06861f00 --- /dev/null +++ b/assets/images/controller/right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/controller/up.svg b/assets/images/controller/up.svg new file mode 100644 index 00000000..825ae679 --- /dev/null +++ b/assets/images/controller/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layer_grid/GameGrid.qml b/layer_grid/GameGrid.qml index 05fae5e4..2aa18070 100644 --- a/layer_grid/GameGrid.qml +++ b/layer_grid/GameGrid.qml @@ -26,7 +26,7 @@ FocusScope { signal filtersRequested signal collectionNext signal collectionPrev - signal toggleFav + signal toggleFilter signal gameChanged(int currentIdx) Keys.onPressed: { @@ -35,7 +35,7 @@ FocusScope { if (api.keys.isDetails(event)) { event.accepted = true; - toggleFilters(); + //toggleFilters(); //toggleFav(); return; } @@ -46,7 +46,7 @@ FocusScope { } if (api.keys.isFilters(event)) { event.accepted = true; - toggleFav(); + toggleFilter(); //toggleFilters() //filtersRequested(); return; @@ -62,7 +62,7 @@ FocusScope { }*/ - function toggleFilters() { + /*function toggleFilters() { if (api.filters.favorite) { api.filters.playerCount = 1 api.filters.favorite = false @@ -73,7 +73,7 @@ FocusScope { api.filters.current.enabled = true } - } + }*/ onCurrentGameIdxChanged: { grid.currentIndex = currentGameIdx diff --git a/layer_help/ControllerHelp.qml b/layer_help/ControllerHelp.qml new file mode 100644 index 00000000..febd1365 --- /dev/null +++ b/layer_help/ControllerHelp.qml @@ -0,0 +1,166 @@ +import QtQuick 2.8 +import QtGraphicalEffects 1.0 + +FocusScope { + id: root + property string buttonText1: "Back" + property string controllerButton1: "A" + property string buttonText2: "Select" + property string controllerButton2: "A" + property string buttonText3: showFavs ? "View Last Played" : showLastPlayed ? "View Collection" : "View Favourites" + property string controllerButton3: "A" + + function processButtonArt(buttonModel) { + var i; + for (i = 0; buttonModel.length; i++) { + if (buttonModel[i].name().includes("Gamepad")) { + var buttonValue = buttonModel[i].key.toString(16) + return buttonValue.substring(buttonValue.length-1, buttonValue.length); + } + } + } + + Item { + id: background + + width: parent.width + height: parent.height + + opacity: stateMenu ? 0 : 1 + Behavior on opacity { NumberAnimation { duration: 200 } } + + Component.onCompleted: { + // This is a pretty gross way of doing this... controller help deserves better + if (stateDetails) { + button3Te + } + } + + LinearGradient { + id: bggradient + z: parent.z + 1 + width: parent.width + height: parent.height + anchors { + top: parent.top + right: parent.right + bottom: parent.bottom + } + start: Qt.point(0, 0) + end: Qt.point(0, height) + gradient: Gradient { + GradientStop { position: 0.0; color: "#00000000" } + GradientStop { position: 0.3; color: "#e6000000" } + } + opacity: 1 + Behavior on opacity { NumberAnimation { duration: 100 } } + + Item { + id: buttonContainer + width: parent.width + height: vpx(20) + opacity: 0.5 + anchors { + bottom: parent.bottom + bottomMargin: vpx(18) + } + + Image { + id: button1 + height: vpx(24) + width: height + source: "../assets/images/controller/"+ processButtonArt(api.keys.cancel) + ".png" + sourceSize.width: vpx(32) + sourceSize.height: vpx(32) + anchors { + right: button1Txt.left + rightMargin: vpx(5) + } + }//button1 + + Item { + id: button1Txt + width: txt1.width + height: parent.height + Text { + id: txt1 + text: buttonText1 + color: "white" + font.pixelSize: vpx(14) + font.family: bodyFont.name + } + anchors { + right: parent.right + rightMargin: vpx(25) + } + }//buttonBack + + Image { + id: button2 + height: vpx(24) + width: height + source: "../assets/images/controller/"+ processButtonArt(api.keys.accept) + ".png" + sourceSize.width: vpx(32) + sourceSize.height: vpx(32) + anchors { + right: button2Txt.left + rightMargin: vpx(5) + } + }//button1 + + Item { + id: button2Txt + width: txt2.width + height: parent.height + Text { + id: txt2 + text: buttonText2 + color: "white" + font.pixelSize: vpx(14) + font.family: bodyFont.name + } + anchors { + right: button1.left + rightMargin: vpx(20) + } + }//button2 + + Image { + id: button3 + height: vpx(24) + width: height + source: "../assets/images/controller/"+ processButtonArt(api.keys.filters) + ".png" + sourceSize.width: vpx(32) + sourceSize.height: vpx(32) + anchors { + right: button3Txt.left + rightMargin: vpx(5) + } + opacity: stateDetails ? 0 : 1 + Behavior on opacity { NumberAnimation { duration: 100 } } + }//button3 + + Item { + id: button3Txt + width: txt3.width + height: parent.height + Text { + id: txt3 + text: buttonText3 + color: "white" + font.pixelSize: vpx(14) + font.family: bodyFont.name + } + anchors { + right: button2.left + rightMargin: vpx(20) + } + opacity: stateDetails ? 0 : 1 + Behavior on opacity { NumberAnimation { duration: 100 } } + }//button3 + + }//buttonContainer + + }//bggradient + }//background +}//root diff --git a/layer_help/ControllerHelpButton.qml b/layer_help/ControllerHelpButton.qml new file mode 100644 index 00000000..1ef2ede5 --- /dev/null +++ b/layer_help/ControllerHelpButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.8 +import QtGraphicalEffects 1.0 + +FocusScope { + id: root + property string label: "Default" + property string button: "controllerButton" + property int buttonRotation: 0 + + Image { + id: buttonImg + height: vpx(24) + width: height + source: "../assets/images/" + button + ".svg" + sourceSize.width: vpx(32) + sourceSize.height: vpx(32) + transform: Rotation { origin.x: vpx(12); origin.y: vpx(12); angle: buttonRotation } + anchors { + right: buttonText.left + rightMargin: vpx(10) + } + } + + Item { + id: buttonText + width: txt.width + height: parent.height + Text { + id: txt + text: label + color: "white" + font.pixelSize: vpx(14) + font.family: bodyFont.name + } + anchors { + right: parent.right + rightMargin: vpx(25) + } + } + +} diff --git a/theme.qml b/theme.qml index 1ec6e441..0516f2a7 100644 --- a/theme.qml +++ b/theme.qml @@ -9,11 +9,11 @@ import "utils.js" as Utils import "layer_grid" import "layer_menu" import "layer_details" +import "layer_help" FocusScope { property int collectionIndex: 0 property var allGamesInCollection: api.collections.get(collectionIndex) - property bool showFavs: false //SETTINGS property bool mainShowDetails: api.memory.get('settingsMainShowDetails') | false @@ -32,6 +32,13 @@ FocusScope { property string themeYellow: "#E9D758" property string themeColour: themeOrange + // States + property bool stateHome: gamegrid.focus + property bool stateDetails: gamedetails.active + property bool stateMenu: platformmenu.focus + property bool showFavs: false + property bool showLastPlayed: false + //////////////////////// // Custom Collections // @@ -48,11 +55,28 @@ FocusScope { property var favCollection: { return { name: "Favourites", - shortname: "favourites", + shortName: "favourites", games: favGames } } + SortFilterProxyModel { + id: lastPlayedGames + sourceModel: api.collections.get(collectionIndex).games + sorters: RoleSorter { + roleName: "lastPlayed" + sortOrder: Qt.DescendingOrder + } + } + + property var lastPlayedCollection: { + return { + name: "Last Played", + shortName: "lastplayed", + games: lastPlayedGames + } + } + property var customCollection: [favCollection] // End custom collections // //////////////////////////// @@ -63,7 +87,7 @@ FocusScope { function modulo(a,n) { return (a % n + n) % n; } - property var currentCollection: showFavs ? favCollection : allGamesInCollection + property var currentCollection: showFavs ? favCollection : showLastPlayed ? lastPlayedCollection : allGamesInCollection property string platformShortname: Utils.processPlatformName(currentCollection.shortName) function nextCollection () { @@ -161,6 +185,19 @@ FocusScope { } } + function toggleFilters() { + if (showFavs) { + showFavs = false; + showLastPlayed = true; + } else if (showLastPlayed) { + showFavs = false; + showLastPlayed = false; + } else { + showFavs = true; + showLastPlayed = false; + } + } + function toggleVideoAudio() { if (backgroundimage.muteVideo) { @@ -307,7 +344,7 @@ FocusScope { onMenuRequested: toggleMenu() onDetailsRequested: toggleDetails() onGameChanged: changeGameIndex(currentIdx) - onToggleFav: showFavs ? showFavs = false : showFavs = true + onToggleFilter: toggleFilters() } } diff --git a/utils.js b/utils.js index f30e4756..6763fe48 100644 --- a/utils.js +++ b/utils.js @@ -217,3 +217,7 @@ function processPlatformName(platform) { return platform; } } + +/*function processButtonArt(buttonModel) { + return buttonModel; +}*/ From 08ab91adcfa39f529483c34373558a93f66e13bf Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Tue, 8 Oct 2019 10:43:54 -0700 Subject: [PATCH 03/17] Pausing grid video when leaving grid view --- layer_grid/GameGrid.qml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/layer_grid/GameGrid.qml b/layer_grid/GameGrid.qml index 2aa18070..126c8f25 100644 --- a/layer_grid/GameGrid.qml +++ b/layer_grid/GameGrid.qml @@ -127,11 +127,20 @@ FocusScope { Video { id: videoThumb + property bool playVideo: stateHome source: gameData.assets.videos.length ? gameData.assets.videos[0] : "" anchors.fill: parent anchors.margins: borderWidth fillMode: VideoOutput.PreserveAspectCrop muted: true + volume: playVideo ? 0.5 : 0 + //Behavior on volume { NumberAnimation { duration: 200 } } + onPlayVideoChanged: { + if (stateHome) + play(); + else + pause(); + } loops: MediaPlayer.Infinite autoPlay: true @@ -176,7 +185,7 @@ FocusScope { highlightRangeMode: GridView.ApplyRange //displayMarginBeginning: vpx(300) highlight: highlight - snapMode: GridView.SnapOneItem + //snapMode: GridView.SnapOneItem highlightFollowsCurrentItem: false model: collectionData ? collectionData.games : [] From 52634ad17466ec5077b8f383fc3a66baa8705994 Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Tue, 8 Oct 2019 17:58:40 -0700 Subject: [PATCH 04/17] Re-added extra meta data to details --- layer_details/GameDetails2.qml | 39 ++++++++++++++++++++++++++++++++-- layer_grid/GameGridMetaBox.qml | 8 +++---- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/layer_details/GameDetails2.qml b/layer_details/GameDetails2.qml index 1208288d..03d43c92 100644 --- a/layer_details/GameDetails2.qml +++ b/layer_details/GameDetails2.qml @@ -270,9 +270,43 @@ Item { // NOTE: Play data RowLayout { id: metadata + anchors { top: gameTitle.bottom; topMargin: vpx(0) } + height: vpx(1) spacing: vpx(6) - opacity: 1 - Behavior on opacity { NumberAnimation { duration: 100 } } + + // Developer + GameGridMetaBox { + metatext: (gameData.developerList[0] != undefined) ? gameData.developerList[0] : "Unknown" + } + + // Release year + GameGridMetaBox { + metatext: (gameData.release != "" ) ? gameData.release.getFullYear() : "" + } + + // Players + GameGridMetaBox { + metatext: if (gameData.players > 1) + gameData.players + " players" + else + gameData.players + " player" + } + + // Spacer + Item { + Layout.preferredWidth: vpx(5) + } + + Rectangle { + id: spacer2 + Layout.preferredWidth: vpx(2) + Layout.fillHeight: true + opacity: 0.5 + } + + Item { + Layout.preferredWidth: vpx(5) + } // Times played GameGridMetaBox { @@ -288,6 +322,7 @@ Item { } } + // NOTE: Spacer between details and description Item { height: vpx(10) } diff --git a/layer_grid/GameGridMetaBox.qml b/layer_grid/GameGridMetaBox.qml index 96985369..db4ca21b 100644 --- a/layer_grid/GameGridMetaBox.qml +++ b/layer_grid/GameGridMetaBox.qml @@ -27,9 +27,9 @@ BorderImage { fillMode: Image.PreserveAspectFit smooth: true //Layout.preferredWidth: vpx(15) - Layout.preferredHeight: vpx(15) - Layout.maximumWidth: vpx(25) - Layout.maximumHeight: vpx(15) + Layout.preferredHeight: vpx(10) + Layout.maximumWidth: vpx(20) + Layout.maximumHeight: vpx(10) opacity: 0.5 visible: icon } @@ -39,7 +39,7 @@ BorderImage { text: (metatext) ? metatext : "" color: "#F2F2F2" - font.pixelSize: vpx(12) + font.pixelSize: vpx(8) //font.family: globalFonts.sans font.bold: true font.capitalization: Font.AllUppercase From fc543ffe362cdb06153f90cf86688ad24059f00d Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Tue, 8 Oct 2019 18:00:37 -0700 Subject: [PATCH 05/17] Updating readme --- README.MD | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.MD b/README.MD index 3fdfebd8..964622d8 100644 --- a/README.MD +++ b/README.MD @@ -37,7 +37,14 @@ Skraper will place these in your roms folder under another folder called media. If no media files are showing up, make sure that Skraper Assets is checked in the Additional Data Sources section of Pegasus settings. It may also be preferable to convert the created gamelist.xml (assuming EmulationStation was chosen for the game list in Skraper) to a metadata.txt file using the [Pegasus conversion tool](http://pegasus-frontend.org/tools/convert/) ## Version history -v 0.6.6 +v 0.7 +- Added contoller help +- Fixed favourites filter toggle +- Added recently played filter toggle +- Brought back extra meta data for details +- Fixed grid videos continuing to play while in details + +v0.6.6 - Added support for PS2, PS3, Switch, 3DS, Wii and Wii U logos - Added support for Launchbox logo selection - Shortening GBA in platform menu if using full name From 277815ff2f2822f07e0c939bb61a55c89a348167 Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Tue, 8 Oct 2019 18:26:17 -0700 Subject: [PATCH 06/17] Fixing a couple of minor errors --- layer_details/GameDetails2.qml | 2 +- layer_grid/GameGrid.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/layer_details/GameDetails2.qml b/layer_details/GameDetails2.qml index 03d43c92..7f664fb3 100644 --- a/layer_details/GameDetails2.qml +++ b/layer_details/GameDetails2.qml @@ -270,7 +270,7 @@ Item { // NOTE: Play data RowLayout { id: metadata - anchors { top: gameTitle.bottom; topMargin: vpx(0) } + //anchors { top: gameTitle.bottom; topMargin: vpx(0) } height: vpx(1) spacing: vpx(6) diff --git a/layer_grid/GameGrid.qml b/layer_grid/GameGrid.qml index 126c8f25..180b1e48 100644 --- a/layer_grid/GameGrid.qml +++ b/layer_grid/GameGrid.qml @@ -185,7 +185,7 @@ FocusScope { highlightRangeMode: GridView.ApplyRange //displayMarginBeginning: vpx(300) highlight: highlight - //snapMode: GridView.SnapOneItem + snapMode: GridView.SnapOneRow highlightFollowsCurrentItem: false model: collectionData ? collectionData.games : [] From 76b040a6ec3800f70d88be53cc6409b9ea6ceb58 Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Mon, 14 Oct 2019 14:17:45 -0700 Subject: [PATCH 07/17] Adding windows logo --- assets/images/logos/windows.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 assets/images/logos/windows.svg diff --git a/assets/images/logos/windows.svg b/assets/images/logos/windows.svg new file mode 100644 index 00000000..368784d6 --- /dev/null +++ b/assets/images/logos/windows.svg @@ -0,0 +1 @@ + \ No newline at end of file From 36a400abe800f5cf25c7b3034ddd825241f5f08b Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Mon, 14 Oct 2019 14:18:11 -0700 Subject: [PATCH 08/17] Adding support for flyers if no box is found (needed for arcade) --- layer_details/GameDetails2.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layer_details/GameDetails2.qml b/layer_details/GameDetails2.qml index 7f664fb3..748cf2fb 100644 --- a/layer_details/GameDetails2.qml +++ b/layer_details/GameDetails2.qml @@ -163,7 +163,7 @@ Item { Image { id: boxart width: parent.width - source: gameData.assets.boxFront || "" + source: gameData.assets.boxFront || gameData.assets.poster || "" sourceSize { width: vpx(512); height: vpx(512) } fillMode: Image.PreserveAspectFit asynchronous: true From a6e8f82fdf4c44ee7f68edd08f9b15c2cf3057cb Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Mon, 14 Oct 2019 14:19:07 -0700 Subject: [PATCH 09/17] Updated readme --- README.MD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.MD b/README.MD index 964622d8..298dcd35 100644 --- a/README.MD +++ b/README.MD @@ -43,6 +43,8 @@ v 0.7 - Added recently played filter toggle - Brought back extra meta data for details - Fixed grid videos continuing to play while in details +- Added flyer support (needed for arcade) +- Added Windows 10 logo for Windows games v0.6.6 - Added support for PS2, PS3, Switch, 3DS, Wii and Wii U logos From eed9e1dd22d8d1154e4cc18990ee561c226ef367 Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 14:54:30 -0700 Subject: [PATCH 10/17] Changed default audio sound --- assets/audio/tick-tap.wav | Bin 0 -> 4556 bytes theme.qml | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 assets/audio/tick-tap.wav diff --git a/assets/audio/tick-tap.wav b/assets/audio/tick-tap.wav new file mode 100644 index 0000000000000000000000000000000000000000..4a5465f398ac16c77022d26b416c927a6409aa32 GIT binary patch literal 4556 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 UpT~07XL+1qxqM(bm9f1353@$(Qvd(} literal 0 HcmV?d00001 diff --git a/theme.qml b/theme.qml index 0516f2a7..abbe6a05 100644 --- a/theme.qml +++ b/theme.qml @@ -36,6 +36,7 @@ FocusScope { property bool stateHome: gamegrid.focus property bool stateDetails: gamedetails.active property bool stateMenu: platformmenu.focus + property bool stateVideoPreview property bool showFavs: false property bool showLastPlayed: false @@ -189,13 +190,17 @@ FocusScope { if (showFavs) { showFavs = false; showLastPlayed = true; + currentGameIndex = 0; } else if (showLastPlayed) { showFavs = false; showLastPlayed = false; + currentGameIndex = api.memory.get('gameCollIndex' + collectionIndex) || 0; } else { showFavs = true; showLastPlayed = false; + currentGameIndex = 0; } + changeGameIndex(0); } function toggleVideoAudio() @@ -203,9 +208,13 @@ FocusScope { if (backgroundimage.muteVideo) { backgroundimage.muteVideo = false; backgroundimage.bggradient.opacity = 0; + stateVideoPreview = true; + console.log("Audio on"); } else { backgroundimage.muteVideo = true; backgroundimage.bggradient.opacity = 1; + stateVideoPreview = false; + console.log("Audio off"); } } @@ -412,6 +421,7 @@ FocusScope { ControllerHelp { id: controllerHelp + opacity: stateVideoPreview ? 0 : 1 width: parent.width height: vpx(75) anchors { @@ -425,7 +435,7 @@ FocusScope { /////////////////// SoundEffect { id: navSound - source: "assets/audio/tap-mellow.wav" + source: "assets/audio/tick-tap.wav" volume: 1.0 } From 871fb63c90d48edee8a2ecff418a394ea9a9a7ec Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 14:55:05 -0700 Subject: [PATCH 11/17] Major performance upgrade --- layer_details/GameDetails2.qml | 1 + layer_grid/BackgroundImage.qml | 2 +- layer_grid/GameGrid.qml | 25 +++++++++++++++++++++++-- layer_grid/GameGridItem.qml | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/layer_details/GameDetails2.qml b/layer_details/GameDetails2.qml index 748cf2fb..c838ed7b 100644 --- a/layer_details/GameDetails2.qml +++ b/layer_details/GameDetails2.qml @@ -24,6 +24,7 @@ Item { signal videoPreview signal switchCollection(int collectionIdx) + function boxArtWidth() { if (boxart.width > boxart.height) diff --git a/layer_grid/BackgroundImage.qml b/layer_grid/BackgroundImage.qml index 1dd51e70..d50ad156 100644 --- a/layer_grid/BackgroundImage.qml +++ b/layer_grid/BackgroundImage.qml @@ -160,7 +160,7 @@ Item { { id: overlay anchors.fill: parent - source: (gameData.assets.videos[0].height > gameData.assets.videos[0].width) ? "../assets/images/scanlines-vert.png" : "../assets/images/" + storedScanlines + source: ((gameData.assets.videos.length > 0) && (gameData.assets.videos[0].height > gameData.assets.videos[0].width)) ? "../assets/images/scanlines-vert.png" : "../assets/images/" + storedScanlines sourceSize { width: 1920; height: 1080 } opacity: storedScanlineOpacity Behavior on opacity { NumberAnimation { duration: 500 } } diff --git a/layer_grid/GameGrid.qml b/layer_grid/GameGrid.qml index 180b1e48..42f00a39 100644 --- a/layer_grid/GameGrid.qml +++ b/layer_grid/GameGrid.qml @@ -187,16 +187,37 @@ FocusScope { highlight: highlight snapMode: GridView.SnapOneRow highlightFollowsCurrentItem: false + cacheBuffer: 9000 model: collectionData ? collectionData.games : [] onCurrentIndexChanged: { //if (api.currentCollection) api.currentCollection.games.index = currentIndex; navSound.play() - gameChanged(currentIndex) + changeGameTimer.restart(); + return; + } + + Timer { + id: changeGameTimer + running: true + repeat: false + interval: 200 + onTriggered: { gameChanged(grid.currentIndex); } } Component.onCompleted: { - positionViewAtIndex(currentIndex, GridView.Contain); + startupTimer.restart(); + } + + Timer { + id: startupTimer + running: true + repeat: false + interval: 200 + onTriggered: { + + grid.positionViewAtIndex(grid.currentIndex, GridView.Contain); + } } Keys.onPressed: { diff --git a/layer_grid/GameGridItem.qml b/layer_grid/GameGridItem.qml index 8d801edb..753d4ca5 100644 --- a/layer_grid/GameGridItem.qml +++ b/layer_grid/GameGridItem.qml @@ -115,7 +115,7 @@ Item { smooth: true - source: (steam) ? game.assets.logo : game.assets.screenshots[0] || game.assets.boxFront || "" + source: (steam) ? game.assets.logo : /*game.assets.background || */game.assets.screenshots[0] || game.assets.boxFront || "" sourceSize { width: 256; height: 256 } fillMode: Image.PreserveAspectCrop From 3a02e0360ca0ad1797d78da60c7322bd3a3b7bfc Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 15:56:18 -0700 Subject: [PATCH 12/17] Fixes for background gradient and button help not disappearing --- layer_grid/BackgroundImage.qml | 8 +++++--- layer_help/ControllerHelp.qml | 4 ++-- theme.qml | 12 +++++++----- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/layer_grid/BackgroundImage.qml b/layer_grid/BackgroundImage.qml index d50ad156..f9389936 100644 --- a/layer_grid/BackgroundImage.qml +++ b/layer_grid/BackgroundImage.qml @@ -5,10 +5,12 @@ import QtMultimedia 5.9 Item { id: root property var gameData//: currentCollection.games.get(gameList.currentIndex) - property real storedDimOpacity: 0.7 + property real storedDimOpacity: 0.9 property real storedScanlineOpacity: 0.3 + property real storedGradientOpacity: 1.0 property string storedScanlines: "scanlines_v3.png" property real dimopacity: storedDimOpacity + property real gradientOpacity: storedGradientOpacity property string bgDefault: '../assets/images/defaultbg.jpg' property string bgSource: gameData ? gameData.assets.background || gameData.assets.screenshots[0] || bgDefault : bgDefault @@ -183,7 +185,7 @@ Item { GradientStop { position: 0.0; color: "#00000000" } GradientStop { position: 0.7; color: "#ff000000" } } - opacity: (muteVideo) ? 1 : 0 + opacity: (muteVideo) ? storedGradientOpacity : 0 Behavior on opacity { NumberAnimation { duration: 100 } } } @@ -191,7 +193,7 @@ Item { Rectangle { id: backgrounddim anchors.fill: parent - color: "#15181e" + color: "#000"//"#15181e" opacity: dimopacity diff --git a/layer_help/ControllerHelp.qml b/layer_help/ControllerHelp.qml index febd1365..284ed9ae 100644 --- a/layer_help/ControllerHelp.qml +++ b/layer_help/ControllerHelp.qml @@ -26,7 +26,7 @@ FocusScope { width: parent.width height: parent.height - opacity: stateMenu ? 0 : 1 + opacity: (stateMenu || stateVideoPreview) ? 0 : 1 Behavior on opacity { NumberAnimation { duration: 200 } } Component.onCompleted: { @@ -50,7 +50,7 @@ FocusScope { end: Qt.point(0, height) gradient: Gradient { GradientStop { position: 0.0; color: "#00000000" } - GradientStop { position: 0.3; color: "#e6000000" } + GradientStop { position: 0.3; color: "#99000000" } } opacity: 1 Behavior on opacity { NumberAnimation { duration: 100 } } diff --git a/theme.qml b/theme.qml index abbe6a05..a955ebfd 100644 --- a/theme.qml +++ b/theme.qml @@ -188,31 +188,33 @@ FocusScope { function toggleFilters() { if (showFavs) { + // Last Played showFavs = false; showLastPlayed = true; - currentGameIndex = 0; + changeGameIndex(0); } else if (showLastPlayed) { + // No filter showFavs = false; showLastPlayed = false; currentGameIndex = api.memory.get('gameCollIndex' + collectionIndex) || 0; } else { + // Favourites showFavs = true; showLastPlayed = false; - currentGameIndex = 0; + changeGameIndex(0); } - changeGameIndex(0); } function toggleVideoAudio() { if (backgroundimage.muteVideo) { backgroundimage.muteVideo = false; - backgroundimage.bggradient.opacity = 0; + backgroundimage.gradientOpacity = 0; stateVideoPreview = true; console.log("Audio on"); } else { backgroundimage.muteVideo = true; - backgroundimage.bggradient.opacity = 1; + backgroundimage.gradientOpacity = 1; stateVideoPreview = false; console.log("Audio off"); } From ed8fc76958f35b568d5bf9fc81004235ba256036 Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 16:41:28 -0700 Subject: [PATCH 13/17] Load random screenshot from the array --- README.MD | 1 + layer_grid/BackgroundImage.qml | 10 ++++++++-- layer_grid/GameGridItem.qml | 8 +++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/README.MD b/README.MD index 298dcd35..8656e359 100644 --- a/README.MD +++ b/README.MD @@ -38,6 +38,7 @@ If no media files are showing up, make sure that Skraper Assets is checked in th ## Version history v 0.7 +- Major performance improvements (thanks to @SinisterSpatula for finding the fix) - Added contoller help - Fixed favourites filter toggle - Added recently played filter toggle diff --git a/layer_grid/BackgroundImage.qml b/layer_grid/BackgroundImage.qml index f9389936..96a9d1fb 100644 --- a/layer_grid/BackgroundImage.qml +++ b/layer_grid/BackgroundImage.qml @@ -13,7 +13,7 @@ Item { property real gradientOpacity: storedGradientOpacity property string bgDefault: '../assets/images/defaultbg.jpg' - property string bgSource: gameData ? gameData.assets.background || gameData.assets.screenshots[0] || bgDefault : bgDefault + property string bgSource: gameData ? gameData.assets.background || gameData.assets.screenshots[getRandomInt(0,gameData.assets.screenshots.length-1)] || bgDefault : bgDefault property string bgImage1 property string bgImage2 property bool firstBG: true @@ -22,6 +22,12 @@ Item { onBgSourceChanged: swapImage(bgSource) + function getRandomInt(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive + } + ///////////////// // Video Stuff // function toggleVideo() { @@ -193,7 +199,7 @@ Item { Rectangle { id: backgrounddim anchors.fill: parent - color: "#000"//"#15181e" + color: "#15181e" opacity: dimopacity diff --git a/layer_grid/GameGridItem.qml b/layer_grid/GameGridItem.qml index 753d4ca5..7baf925e 100644 --- a/layer_grid/GameGridItem.qml +++ b/layer_grid/GameGridItem.qml @@ -23,6 +23,12 @@ Item { scale: selected ? 1 : 0.95 Behavior on scale { PropertyAnimation { duration: 200; easing.type: Easing.OutQuart; easing.amplitude: 2.0; } } + function getRandomInt(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive + } + ///////////////// // VIDEO STUFF // ///////////////// @@ -111,7 +117,7 @@ Item { } asynchronous: true - visible: game.assets.screenshots[0] || game.assets.boxFront || "" + visible: game.assets.screenshots[getRandomInt(0,game.assets.screenshots.length-1)] || game.assets.boxFront || "" smooth: true From 8e0caae900a88a1f467f796403acf296220c9788 Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 18:34:41 -0700 Subject: [PATCH 14/17] Fix for nec turbo grafx-16 platform name --- utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.js b/utils.js index 6763fe48..1a57d152 100644 --- a/utils.js +++ b/utils.js @@ -165,7 +165,7 @@ function processPlatformName(platform) { case "sega cd": return "segacd"; break; - case "nex turbografx-16": + case "nec turbografx-16": return "turbografx16"; break; case "sony psp": From a36f183e27a3b0f2154a185e17614dc96eb1e57e Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 18:37:06 -0700 Subject: [PATCH 15/17] Removing filters toggle so I can push a release --- layer_details/GameDetails2.qml | 2 +- layer_grid/GameGrid.qml | 6 +++--- layer_help/ControllerHelp.qml | 4 ++-- theme.qml | 9 ++++----- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/layer_details/GameDetails2.qml b/layer_details/GameDetails2.qml index c838ed7b..ecded3ec 100644 --- a/layer_details/GameDetails2.qml +++ b/layer_details/GameDetails2.qml @@ -9,7 +9,7 @@ import "../utils.js" as Utils Item { id: root - property var gameData//: api.currentGame + property var gameData: currentGame//: api.currentGame property bool isSteam: false property int padding: vpx(50) property int cornerradius: vpx(8) diff --git a/layer_grid/GameGrid.qml b/layer_grid/GameGrid.qml index 42f00a39..781fe595 100644 --- a/layer_grid/GameGrid.qml +++ b/layer_grid/GameGrid.qml @@ -11,10 +11,10 @@ FocusScope { property alias gridWidth: grid.width property int gridItemSpacing: (numColumns == 4) ? vpx(10) : vpx(15) // it will double this property int gridItemHeight: (numColumns == 4) ? vpx(180) : vpx(230) - property var collectionData - property var gameData + property var collectionData: currentCollection + property var gameData: currentGame property bool mainScreenDetails - property int currentGameIdx + property int currentGameIdx: currentGameIndex property string jumpToPattern: '' property real cornerradius: vpx(4) property real borderWidth: vpx(5) diff --git a/layer_help/ControllerHelp.qml b/layer_help/ControllerHelp.qml index 284ed9ae..cf9c2cc8 100644 --- a/layer_help/ControllerHelp.qml +++ b/layer_help/ControllerHelp.qml @@ -124,7 +124,7 @@ FocusScope { rightMargin: vpx(20) } }//button2 - + /* Commenting out until filters are fixed Image { id: button3 height: vpx(24) @@ -158,7 +158,7 @@ FocusScope { opacity: stateDetails ? 0 : 1 Behavior on opacity { NumberAnimation { duration: 100 } } }//button3 - + */ }//buttonContainer }//bggradient diff --git a/theme.qml b/theme.qml index a955ebfd..5a7f7077 100644 --- a/theme.qml +++ b/theme.qml @@ -102,7 +102,8 @@ FocusScope { function jumpToCollection(idx) { api.memory.set('gameCollIndex' + collectionIndex, currentGameIndex); // save game index of current collection collectionIndex = modulo(idx, api.collections.count); // new collection index - currentGameIndex = api.memory.get('gameCollIndex' + collectionIndex) || 0; // restore game index for newly selected collection + //currentGameIndex = api.memory.get('gameCollIndex' + collectionIndex) || 0; // restore game index for newly selected collection + currentGameIndex = 0; // Jump to the top of the list each time collection is changed } // End collection switching // @@ -187,6 +188,7 @@ FocusScope { } function toggleFilters() { + /* Commenting out until I can fix the launch game bug if (showFavs) { // Last Played showFavs = false; @@ -203,6 +205,7 @@ FocusScope { showLastPlayed = false; changeGameIndex(0); } + console.log("Current game index: " + currentGameIndex);*/ } function toggleVideoAudio() @@ -333,9 +336,6 @@ FocusScope { GameGrid { id: gamegrid - collectionData: currentCollection - gameData: currentGame - currentGameIdx: currentGameIndex mainScreenDetails: mainShowDetails focus: true @@ -364,7 +364,6 @@ FocusScope { id: gamedetails property bool active : false - gameData: currentGame anchors { left: parent.left; right: parent.right From ff142f724710060a427d84f0f202561aa8ae342e Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 18:49:20 -0700 Subject: [PATCH 16/17] Updated readme --- README.MD | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.MD b/README.MD index 8656e359..a6ba57d5 100644 --- a/README.MD +++ b/README.MD @@ -37,11 +37,9 @@ Skraper will place these in your roms folder under another folder called media. If no media files are showing up, make sure that Skraper Assets is checked in the Additional Data Sources section of Pegasus settings. It may also be preferable to convert the created gamelist.xml (assuming EmulationStation was chosen for the game list in Skraper) to a metadata.txt file using the [Pegasus conversion tool](http://pegasus-frontend.org/tools/convert/) ## Version history -v 0.7 +v 0.6.7 - Major performance improvements (thanks to @SinisterSpatula for finding the fix) - Added contoller help -- Fixed favourites filter toggle -- Added recently played filter toggle - Brought back extra meta data for details - Fixed grid videos continuing to play while in details - Added flyer support (needed for arcade) From e7961cb9acd09b3303f7cbbab194c93646380f6d Mon Sep 17 00:00:00 2001 From: Seth Powell Date: Fri, 25 Oct 2019 18:49:53 -0700 Subject: [PATCH 17/17] Fixed spelling error --- README.MD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.MD b/README.MD index a6ba57d5..dbd4f589 100644 --- a/README.MD +++ b/README.MD @@ -37,9 +37,9 @@ Skraper will place these in your roms folder under another folder called media. If no media files are showing up, make sure that Skraper Assets is checked in the Additional Data Sources section of Pegasus settings. It may also be preferable to convert the created gamelist.xml (assuming EmulationStation was chosen for the game list in Skraper) to a metadata.txt file using the [Pegasus conversion tool](http://pegasus-frontend.org/tools/convert/) ## Version history -v 0.6.7 +v0.6.7 - Major performance improvements (thanks to @SinisterSpatula for finding the fix) -- Added contoller help +- Added controller help - Brought back extra meta data for details - Fixed grid videos continuing to play while in details - Added flyer support (needed for arcade)