From 32e5fdab5ef9b668db021ac60cba28c467400e5b Mon Sep 17 00:00:00 2001 From: Kitteh Date: Fri, 26 Oct 2018 19:11:07 +0100 Subject: [PATCH] [UI] Add nyancat fun feature. --- src/qml/icons/README.md | 2 +- src/qml/icons/nyancat.gif | Bin 0 -> 29361 bytes src/qml/main.qml | 87 ++++++++++++++++++++++++++++++++------ src/qml/qml.qrc | 1 + 4 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 src/qml/icons/nyancat.gif diff --git a/src/qml/icons/README.md b/src/qml/icons/README.md index f8179c4..e195a8b 100644 --- a/src/qml/icons/README.md +++ b/src/qml/icons/README.md @@ -1,3 +1,3 @@ # Icons - Icons where all from https://material.io/tools/icons/?style=baseline -- Exceptions: none yet \ No newline at end of file +- Exceptions: nyancat.gif diff --git a/src/qml/icons/nyancat.gif b/src/qml/icons/nyancat.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf0314f8e4a7fc855869e9283366a1eba70a1c0f GIT binary patch literal 29361 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 literal 0 HcmV?d00001 diff --git a/src/qml/main.qml b/src/qml/main.qml index cc188c4..dee6046 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -5,6 +5,7 @@ import QtQuick.Layouts 1.11 import QtQuick.Window 2.11 import Qt.labs.settings 1.0 import player 1.0 +import QtGraphicalEffects 1.0 import "codes.js" as LanguageCodes @@ -251,6 +252,12 @@ ApplicationWindow { property bool titleOnlyOnFullscreen: true } + Settings { + id: fun + category: "Fun" + property bool nyanCat: false + } + Dialog { id: screenshotSaveDialog title: "Save Screenshot To" @@ -363,6 +370,7 @@ ApplicationWindow { property string screenshot: "S" property string screenshotWithoutSubtitles: "Shift+S" property string fullScreenshot: "Ctrl+S" + property string nyanCat: "Ctrl+N" } MenuBar { @@ -607,6 +615,14 @@ ApplicationWindow { } shortcut: keybinds.statsForNerds } + + Action { + text: "Toggle Nyan Cat" + onTriggered: { + fun.nyanCat = ! fun.nyanCat + } + shortcut: keybinds.nyanCat + } } Action { @@ -771,7 +787,7 @@ ApplicationWindow { anchors.left: menuBar.right anchors.top: parent.top - visible: ! appearance.titleOnlyOnFullscreen + visible: !appearance.titleOnlyOnFullscreen color: "transparent" Text { @@ -799,7 +815,7 @@ ApplicationWindow { Rectangle { id: controlsBackground height: controlsBar.visible ? controlsBar.height + (progressBar.topPadding * 2) - - (progressBackground.height * 2) : 0 + - (progressBackground.height * 2): 0 anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right @@ -816,7 +832,8 @@ ApplicationWindow { anchors.left: controlsBar.left anchors.right: controlsBar.right anchors.bottom: controlsBackground.top - + anchors.bottomMargin: fun.nyanCat ? 0 : nyanimation.height + radius: 5 color: "transparent" TextMetrics { @@ -867,7 +884,6 @@ ApplicationWindow { anchors.bottomMargin: 1 visible: true color: "transparent" - Rectangle { id: settingsMenuBackground anchors.fill: settingsMenu @@ -899,20 +915,19 @@ ApplicationWindow { onClicked: loadDialog.open() } } - } + } Slider { id: progressBar to: 1 value: 0.0 - palette.dark: "#f00" anchors.bottom: parent.top anchors.left: parent.left anchors.right: parent.right anchors.bottomMargin: 0 anchors.topMargin: progressBackground.height + handleRect.height - bottomPadding: 0 + z: 10 onMoved: { player.command(["seek", progressBar.value, "absolute"]) @@ -922,10 +937,10 @@ ApplicationWindow { id: progressBackground x: progressBar.leftPadding y: progressBar.topPadding + progressBar.availableHeight / 2 - height / 2 - implicitHeight: (Screen.height / 256) < 2 ? 2 : Screen.height / 256 + implicitHeight: (Screen.height / 256) < (fun.nyanCat ? 12 : 2) ? (fun.nyanCat ? 12 : 2) : Screen.height / 256 width: progressBar.availableWidth height: implicitHeight - color: Qt.rgba(255, 255, 255, 0.4) + color: Qt.rgba(255, 255, 255, 0.6) Rectangle { id: progressLength @@ -933,10 +948,45 @@ ApplicationWindow { height: parent.height color: "red" opacity: 1 + LinearGradient { + height: parent.height + visible: fun.nyanCat + anchors.fill: parent + gradient: Gradient { + GradientStop { + position: 0.0 + color: "#f00" + } + GradientStop { + position: 0.17 + color: "#f90" + } + GradientStop { + position: 0.33 + color: "#ff0" + } + GradientStop { + position: 0.50 + color: "#3f0" + } + GradientStop { + position: 0.67 + color: "#09f" + } + GradientStop { + position: 0.83 + color: "#63f" + } + GradientStop { + position: 1 + color: "#63f" + } + } + } } Rectangle { id: cachedLength - z: 1 + z: 100 anchors.left: progressLength.right anchors.leftMargin: progressBar.handle.width / 2 //anchors.left: progressBar.handle.horizontalCenter @@ -949,16 +999,25 @@ ApplicationWindow { } handle: Rectangle { - z: 2 id: handleRect x: progressBar.leftPadding + progressBar.visualPosition * (progressBar.availableWidth - width) y: progressBar.topPadding + progressBar.availableHeight / 2 - height / 2 - implicitWidth: 12 implicitHeight: 12 + implicitWidth: 12 radius: 12 - color: "red" - border.color: "red" + color: fun.nyanCat ? "transparent" : "red" + //border.color: "red" + AnimatedImage { + z: 100 + visible: fun.nyanCat + paused: progressBar.pressed + height: 24 + id: nyanimation + anchors.centerIn: parent + source: "qrc:/player/icons/nyancat.gif" + fillMode: Image.PreserveAspectFit + } } } diff --git a/src/qml/qml.qrc b/src/qml/qml.qrc index facae97..5ba75d5 100644 --- a/src/qml/qml.qrc +++ b/src/qml/qml.qrc @@ -15,6 +15,7 @@ icons/next.svg icons/prev.svg icons/subtitles.svg + icons/nyancat.gif fonts/NotoSans.ttf icons/playlist.svg codes.js