From 104022dded3b0d2c3c785ea4d11d564defdee4d9 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 19 Jul 2022 07:37:53 +0100 Subject: move : x11-themes/redcore-theme-sddm -> x11-themes/redcore-artwork-sddm --- .../files/redcore/Background.qml | 69 +++ .../files/redcore/BreezeMenuStyle.qml | 25 ++ .../files/redcore/KeyboardButton.qml | 38 ++ .../redcore-artwork-sddm/files/redcore/Login.qml | 156 +++++++ .../redcore-artwork-sddm/files/redcore/Main.qml | 481 +++++++++++++++++++++ .../files/redcore/SessionButton.qml | 59 +++ .../files/redcore/assets/login.svgz | Bin 0 -> 1357 bytes .../files/redcore/assets/logout_primary.svgz | Bin 0 -> 3033 bytes .../files/redcore/assets/restart_primary.svgz | Bin 0 -> 2337 bytes .../files/redcore/assets/shutdown_primary.svgz | Bin 0 -> 1394 bytes .../files/redcore/assets/suspend_primary.svgz | Bin 0 -> 1433 bytes .../files/redcore/assets/switch_primary.svgz | Bin 0 -> 3098 bytes .../files/redcore/background.jpg | Bin 0 -> 5070818 bytes .../files/redcore/components/ActionButton.qml | 128 ++++++ .../files/redcore/components/Battery.qml | 53 +++ .../files/redcore/components/Clock.qml | 50 +++ .../redcore/components/KeyboardLayoutButton.qml | 52 +++ .../redcore/components/SessionManagementScreen.qml | 121 ++++++ .../files/redcore/components/UserDelegate.qml | 190 ++++++++ .../files/redcore/components/UserList.qml | 93 ++++ .../files/redcore/components/VirtualKeyboard.qml | 28 ++ .../files/redcore/components/WallpaperFader.qml | 182 ++++++++ .../files/redcore/metadata.desktop | 16 + .../redcore-artwork-sddm/files/redcore/theme.conf | 5 + .../files/redcore/theme.conf.user | 2 + .../redcore-artwork-sddm-314-r6.ebuild | 22 + .../files/redcore/Background.qml | 69 --- .../files/redcore/BreezeMenuStyle.qml | 25 -- .../files/redcore/KeyboardButton.qml | 38 -- .../redcore-theme-sddm/files/redcore/Login.qml | 156 ------- .../redcore-theme-sddm/files/redcore/Main.qml | 481 --------------------- .../files/redcore/SessionButton.qml | 59 --- .../files/redcore/assets/login.svgz | Bin 1357 -> 0 bytes .../files/redcore/assets/logout_primary.svgz | Bin 3033 -> 0 bytes .../files/redcore/assets/restart_primary.svgz | Bin 2337 -> 0 bytes .../files/redcore/assets/shutdown_primary.svgz | Bin 1394 -> 0 bytes .../files/redcore/assets/suspend_primary.svgz | Bin 1433 -> 0 bytes .../files/redcore/assets/switch_primary.svgz | Bin 3098 -> 0 bytes .../files/redcore/background.jpg | Bin 5070818 -> 0 bytes .../files/redcore/components/ActionButton.qml | 128 ------ .../files/redcore/components/Battery.qml | 53 --- .../files/redcore/components/Clock.qml | 50 --- .../redcore/components/KeyboardLayoutButton.qml | 52 --- .../redcore/components/SessionManagementScreen.qml | 121 ------ .../files/redcore/components/UserDelegate.qml | 190 -------- .../files/redcore/components/UserList.qml | 93 ---- .../files/redcore/components/VirtualKeyboard.qml | 28 -- .../files/redcore/components/WallpaperFader.qml | 182 -------- .../files/redcore/metadata.desktop | 16 - .../redcore-theme-sddm/files/redcore/theme.conf | 5 - .../files/redcore/theme.conf.user | 2 - .../redcore-theme-sddm-314-r6.ebuild | 22 - 52 files changed, 1770 insertions(+), 1770 deletions(-) create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/Background.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/BreezeMenuStyle.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/KeyboardButton.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/Login.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/Main.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/SessionButton.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/assets/login.svgz create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/assets/logout_primary.svgz create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/assets/restart_primary.svgz create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/assets/shutdown_primary.svgz create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/assets/suspend_primary.svgz create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/assets/switch_primary.svgz create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/background.jpg create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/ActionButton.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/Battery.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/Clock.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/KeyboardLayoutButton.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/SessionManagementScreen.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/UserDelegate.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/UserList.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/VirtualKeyboard.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/components/WallpaperFader.qml create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/metadata.desktop create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/theme.conf create mode 100644 x11-themes/redcore-artwork-sddm/files/redcore/theme.conf.user create mode 100644 x11-themes/redcore-artwork-sddm/redcore-artwork-sddm-314-r6.ebuild delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/Background.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/BreezeMenuStyle.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/Login.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/Main.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/SessionButton.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/assets/login.svgz delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/assets/logout_primary.svgz delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/assets/restart_primary.svgz delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/assets/shutdown_primary.svgz delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/assets/suspend_primary.svgz delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/assets/switch_primary.svgz delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/background.jpg delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/ActionButton.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/Battery.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/Clock.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/KeyboardLayoutButton.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/SessionManagementScreen.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/UserDelegate.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/UserList.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/VirtualKeyboard.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/components/WallpaperFader.qml delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/metadata.desktop delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/theme.conf delete mode 100644 x11-themes/redcore-theme-sddm/files/redcore/theme.conf.user delete mode 100644 x11-themes/redcore-theme-sddm/redcore-theme-sddm-314-r6.ebuild (limited to 'x11-themes') diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/Background.qml b/x11-themes/redcore-artwork-sddm/files/redcore/Background.qml new file mode 100644 index 00000000..5a384151 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/Background.qml @@ -0,0 +1,69 @@ +/* + * Copyright 2016 Boudhayan Gupta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.2 + +FocusScope { + id: sceneBackground + + property var sceneBackgroundType + property alias sceneBackgroundColor: sceneColorBackground.color + property alias sceneBackgroundImage: sceneImageBackground.source + + Rectangle { + id: sceneColorBackground + anchors.fill: parent + } + + Image { + id: sceneImageBackground + anchors.fill: parent + sourceSize.width: parent.width + sourceSize.height: parent.height + fillMode: Image.PreserveAspectCrop + smooth: true; + } + + states: [ + State { + name: "imageBackground" + when: sceneBackgroundType === "image" + PropertyChanges { + target: sceneColorBackground + visible: false + } + PropertyChanges { + target: sceneImageBackground + visible: true + } + }, + State { + name: "colorBackground" + when: sceneBackgroundType !== "image" + PropertyChanges { + target: sceneColorBackground + visible: true + } + PropertyChanges { + target: sceneImageBackground + visible: false + } + } + ] +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/BreezeMenuStyle.qml b/x11-themes/redcore-artwork-sddm/files/redcore/BreezeMenuStyle.qml new file mode 100644 index 00000000..7d56c149 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/BreezeMenuStyle.qml @@ -0,0 +1,25 @@ +import QtQuick 2.2 + +import org.kde.plasma.core 2.0 as PlasmaCore + +import QtQuick.Controls.Styles 1.4 as QQCS +import QtQuick.Controls 1.3 as QQC + +QQCS.MenuStyle { + frame: Rectangle { + color: PlasmaCore.ColorScope.backgroundColor + border.color: Qt.tint(PlasmaCore.ColorScope.textColor, Qt.rgba(color.r, color.g, color.b, 0.7)) + border.width: 1 + } + itemDelegate.label: QQC.Label { + height: contentHeight * 1.2 + verticalAlignment: Text.AlignVCenter + color: styleData.selected ? PlasmaCore.ColorScope.highlightedTextColor : PlasmaCore.ColorScope.textColor + font.pointSize: config.fontSize + text: styleData.text + } + itemDelegate.background: Rectangle { + visible: styleData.selected + color: PlasmaCore.ColorScope.highlightColor + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/KeyboardButton.qml b/x11-themes/redcore-artwork-sddm/files/redcore/KeyboardButton.qml new file mode 100644 index 00000000..9989d93e --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/KeyboardButton.qml @@ -0,0 +1,38 @@ +import QtQuick 2.2 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +import QtQuick.Controls 1.3 as QQC + +PlasmaComponents.ToolButton { + id: keyboardButton + + property int currentIndex: -1 + + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Keyboard Layout: %1", instantiator.objectAt(currentIndex).shortName) + implicitWidth: minimumWidth + font.pointSize: config.fontSize + + visible: menu.items.length > 1 + + Component.onCompleted: currentIndex = Qt.binding(function() {return keyboard.currentLayout}); + + menu: QQC.Menu { + id: keyboardMenu + style: BreezeMenuStyle {} + Instantiator { + id: instantiator + model: keyboard.layouts + onObjectAdded: keyboardMenu.insertItem(index, object) + onObjectRemoved: keyboardMenu.removeItem( object ) + delegate: QQC.MenuItem { + text: modelData.longName + property string shortName: modelData.shortName + onTriggered: { + keyboard.currentLayout = model.index + } + } + } + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/Login.qml b/x11-themes/redcore-artwork-sddm/files/redcore/Login.qml new file mode 100644 index 00000000..7234917f --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/Login.qml @@ -0,0 +1,156 @@ +import "components" + +import QtQuick 2.0 +import QtQuick.Layouts 1.2 +import QtQuick.Controls.Styles 1.4 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +SessionManagementScreen { + + property bool showUsernamePrompt: !showUserList + property int usernameFontSize + property string usernameFontColor + property string lastUserName + property bool passwordFieldOutlined: config.PasswordFieldOutlined == "true" + property bool hidePasswordRevealIcon: config.HidePasswordRevealIcon == "false" + property int visibleBoundary: mapFromItem(loginButton, 0, 0).y + onHeightChanged: visibleBoundary = mapFromItem(loginButton, 0, 0).y + loginButton.height + units.smallSpacing + + signal loginRequest(string username, string password) + + onShowUsernamePromptChanged: { + if (!showUsernamePrompt) { + lastUserName = "" + } + } + + /* + * Login has been requested with the following username and password + * If username field is visible, it will be taken from that, otherwise from the "name" property of the currentIndex + */ + function startLogin() { + var username = showUsernamePrompt ? userNameInput.text : userList.selectedUser + var password = passwordBox.text + + loginButton.forceActiveFocus(); + loginRequest(username, password); + } + + PlasmaComponents.TextField { + id: userNameInput + Layout.fillWidth: true + Layout.minimumHeight: 32 + implicitHeight: usernameFontSize * 2.85 + font.pointSize: usernameFontSize * 0.8 + font.family: config.Font || "Noto Sans" + opacity: 1.0 + text: lastUserName + visible: showUsernamePrompt + focus: showUsernamePrompt && !lastUserName //if there's a username prompt it gets focus first, otherwise password does + placeholderText: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Username") + + style: TextFieldStyle { + textColor: "white" + placeholderTextColor: "white" + background: Rectangle { + radius: 6 + border.color: "#1A73E8" + border.width: 2 + color: "#48316f" + } + } + } + + PlasmaComponents.TextField { + id: passwordBox + Layout.fillWidth: true + Layout.minimumHeight: 32 + implicitHeight: usernameFontSize * 2.85 + font.pointSize: usernameFontSize * 0.8 + opacity: passwordFieldOutlined ? 1.0 : 1.0 + font.family: config.Font || "Noto Sans" + placeholderText: config.PasswordFieldPlaceholderText == "Password" ? i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Password") : config.PasswordFieldPlaceholderText + focus: !showUsernamePrompt || lastUserName + echoMode: TextInput.Password + revealPasswordButtonShown: hidePasswordRevealIcon + onAccepted: startLogin() + + style: TextFieldStyle { + textColor: passwordFieldOutlined ? "white" : "white" + placeholderTextColor: passwordFieldOutlined ? "white" : "white" + passwordCharacter: config.PasswordFieldCharacter == "" ? "●" : config.PasswordFieldCharacter + background: Rectangle { + radius: 6 + border.color: "#1A73E8" + border.width: 2 + color: "#48316f" + } + } + + Keys.onEscapePressed: { + mainStack.currentItem.forceActiveFocus(); + } + + Keys.onPressed: { + if (event.key == Qt.Key_Left && !text) { + userList.decrementCurrentIndex(); + event.accepted = true + } + if (event.key == Qt.Key_Right && !text) { + userList.incrementCurrentIndex(); + event.accepted = true + } + } + + Keys.onReleased: { + if (loginButton.opacity == 0 && length > 0) { + showLoginButton.start() + } + if (loginButton.opacity > 0 && length == 0) { + hideLoginButton.start() + } + } + + Connections { + target: sddm + onLoginFailed: { + passwordBox.selectAll() + passwordBox.forceActiveFocus() + } + } + } + + Image { + id: loginButton + source: "assets/login.svgz" + smooth: true + sourceSize: Qt.size(passwordBox.height, passwordBox.height) + anchors { + left: passwordBox.right + verticalCenter: passwordBox.verticalCenter + } + anchors.leftMargin: 8 + visible: opacity > 0 + opacity: 0 + MouseArea { + anchors.fill: parent + onClicked: startLogin(); + } + PropertyAnimation { + id: showLoginButton + target: loginButton + properties: "opacity" + to: 0.75 + duration: 100 + } + PropertyAnimation { + id: hideLoginButton + target: loginButton + properties: "opacity" + to: 0 + duration: 80 + } + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/Main.qml b/x11-themes/redcore-artwork-sddm/files/redcore/Main.qml new file mode 100644 index 00000000..ab5c5dd7 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/Main.qml @@ -0,0 +1,481 @@ +/* + * Copyright 2016 David Edmundson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.8 + +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.1 +import QtGraphicalEffects 1.0 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents +import org.kde.plasma.extras 2.0 as PlasmaExtras + +import "components" + +PlasmaCore.ColorScope { + id: root + + // If we're using software rendering, draw outlines instead of shadows + // See https://bugs.kde.org/show_bug.cgi?id=398317 + readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software + + colorGroup: PlasmaCore.Theme.ComplementaryColorGroup + + width: 1600 + height: 900 + + property string notificationMessage + + LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft + LayoutMirroring.childrenInherit: true + + PlasmaCore.DataSource { + id: keystateSource + engine: "keystate" + connectedSources: "Caps Lock" + } + + Item { + id: wallpaper + anchors.fill: parent + Repeater { + model: screenModel + + Background { + x: geometry.x; y: geometry.y; width: geometry.width; height: geometry.height + sceneBackgroundType: config.type + sceneBackgroundColor: config.color + sceneBackgroundImage: config.background + } + } + } + + MouseArea { + id: loginScreenRoot + anchors.fill: parent + + property bool uiVisible: true + property bool blockUI: mainStack.depth > 1 || userListComponent.mainPasswordBox.text.length > 0 || inputPanel.keyboardActive || config.type !== "image" + + hoverEnabled: true + drag.filterChildren: true + onPressed: uiVisible = true; + onPositionChanged: uiVisible = true; + onUiVisibleChanged: { + if (blockUI) { + fadeoutTimer.running = false; + } else if (uiVisible) { + fadeoutTimer.restart(); + } + } + onBlockUIChanged: { + if (blockUI) { + fadeoutTimer.running = false; + uiVisible = true; + } else { + fadeoutTimer.restart(); + } + } + + Keys.onPressed: { + uiVisible = true; + event.accepted = false; + } + + //takes one full minute for the ui to disappear + Timer { + id: fadeoutTimer + running: true + interval: 60000 + onTriggered: { + if (!loginScreenRoot.blockUI) { + loginScreenRoot.uiVisible = false; + } + } + } + WallpaperFader { + visible: config.type === "image" + anchors.fill: parent + state: loginScreenRoot.uiVisible ? "on" : "off" + source: wallpaper + mainStack: mainStack + footer: footer + clock: clock + } + + DropShadow { + id: clockShadow + anchors.fill: clock + source: clock + visible: !softwareRendering + horizontalOffset: 1 + verticalOffset: 1 + radius: 6 + samples: 14 + spread: 0.3 + color: "black" // matches Breeze window decoration and desktopcontainment + Behavior on opacity { + OpacityAnimator { + duration: 1000 + easing.type: Easing.InOutQuad + } + } + } + + Clock { + id: clock + visible: y > 0 + property Item shadow: clockShadow + y: (userListComponent.userList.y + mainStack.y)/2 - height/2 + anchors.horizontalCenter: parent.horizontalCenter + } + + + StackView { + id: mainStack + anchors { + left: parent.left + right: parent.right + } + height: root.height + units.gridUnit * 3 + + focus: true //StackView is an implicit focus scope, so we need to give this focus so the item inside will have it + + Timer { + //SDDM has a bug in 0.13 where even though we set the focus on the right item within the window, the window doesn't have focus + //it is fixed in 6d5b36b28907b16280ff78995fef764bb0c573db which will be 0.14 + //we need to call "window->activate()" *After* it's been shown. We can't control that in QML so we use a shoddy timer + //it's been this way for all Plasma 5.x without a huge problem + running: true + repeat: false + interval: 200 + onTriggered: mainStack.forceActiveFocus() + } + + initialItem: Login { + id: userListComponent + userListModel: userModel + userListCurrentIndex: userModel.lastIndex >= 0 ? userModel.lastIndex : 0 + lastUserName: userModel.lastUser + + usernameFontSize: root.generalFontSize + usernameFontColor: root.generalFontColor + + showUserList: { + if ( !userListModel.hasOwnProperty("count") + || !userListModel.hasOwnProperty("disableAvatarsThreshold")) + return (userList.y + mainStack.y) > 0 + + if ( userListModel.count == 0 ) return false + + return userListModel.count <= userListModel.disableAvatarsThreshold && (userList.y + mainStack.y) > 0 + } + + notificationMessage: { + var text = "" + if (keystateSource.data["Caps Lock"]["Locked"]) { + text += i18nd("plasma_lookandfeel_org.kde.lookandfeel","Caps Lock is on") + if (root.notificationMessage) { + text += " • " + } + } + text += root.notificationMessage + return text + } + + actionItems: [ + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/suspend_primary.svgz" + text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel","Suspend to RAM","Sleep") + onClicked: sddm.suspend() + enabled: sddm.canSuspend + visible: !inputPanel.keyboardActive + }, + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/restart_primary.svgz" + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Restart") + onClicked: sddm.reboot() + enabled: sddm.canReboot + visible: !inputPanel.keyboardActive + }, + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/shutdown_primary.svgz" + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut Down") + onClicked: sddm.powerOff() + enabled: sddm.canPowerOff + visible: !inputPanel.keyboardActive + }, + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/switch_primary.svgz" + text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "For switching to a username and password prompt", "Other...") + onClicked: mainStack.push(userPromptComponent) + enabled: true + visible: !userListComponent.showUsernamePrompt && !inputPanel.keyboardActive + }] + + onLoginRequest: { + root.notificationMessage = "" + sddm.login(username, password, sessionButton.currentIndex) + } + } + + Behavior on opacity { + OpacityAnimator { + duration: units.longDuration + } + } + } + + Loader { + id: inputPanel + state: "hidden" + property bool keyboardActive: item ? item.active : false + onKeyboardActiveChanged: { + if (keyboardActive) { + state = "visible" + } else { + state = "hidden"; + } + } + source: "components/VirtualKeyboard.qml" + anchors { + left: parent.left + right: parent.right + } + + function showHide() { + state = state == "hidden" ? "visible" : "hidden"; + } + + states: [ + State { + name: "visible" + PropertyChanges { + target: mainStack + y: Math.min(0, root.height - inputPanel.height - userListComponent.visibleBoundary) + } + PropertyChanges { + target: inputPanel + y: root.height - inputPanel.height + opacity: 1 + } + }, + State { + name: "hidden" + PropertyChanges { + target: mainStack + y: 0 + } + PropertyChanges { + target: inputPanel + y: root.height - root.height/4 + opacity: 0 + } + } + ] + transitions: [ + Transition { + from: "hidden" + to: "visible" + SequentialAnimation { + ScriptAction { + script: { + inputPanel.item.activated = true; + Qt.inputMethod.show(); + } + } + ParallelAnimation { + NumberAnimation { + target: mainStack + property: "y" + duration: units.longDuration + easing.type: Easing.InOutQuad + } + NumberAnimation { + target: inputPanel + property: "y" + duration: units.longDuration + easing.type: Easing.OutQuad + } + OpacityAnimator { + target: inputPanel + duration: units.longDuration + easing.type: Easing.OutQuad + } + } + } + }, + Transition { + from: "visible" + to: "hidden" + SequentialAnimation { + ParallelAnimation { + NumberAnimation { + target: mainStack + property: "y" + duration: units.longDuration + easing.type: Easing.InOutQuad + } + NumberAnimation { + target: inputPanel + property: "y" + duration: units.longDuration + easing.type: Easing.InQuad + } + OpacityAnimator { + target: inputPanel + duration: units.longDuration + easing.type: Easing.InQuad + } + } + ScriptAction { + script: { + Qt.inputMethod.hide(); + } + } + } + } + ] + } + + + Component { + id: userPromptComponent + Login { + showUsernamePrompt: true + notificationMessage: root.notificationMessage + + // using a model rather than a QObject list to avoid QTBUG-75900 + userListModel: ListModel { + ListElement { + name: "" + iconSource: "" + } + Component.onCompleted: { + // as we can't bind inside ListElement + setProperty(0, "name", i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Type in Username and Password")); + } + } + + onLoginRequest: { + root.notificationMessage = "" + sddm.login(username, password, sessionButton.currentIndex) + } + + actionItems: [ + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/suspend_primary.svgz" + text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel","Suspend to RAM","Sleep") + onClicked: sddm.suspend() + enabled: sddm.canSuspend + visible: !inputPanel.keyboardActive + }, + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/restart_primary.svgz" + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Restart") + onClicked: sddm.reboot() + enabled: sddm.canReboot + visible: !inputPanel.keyboardActive + }, + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/shutdown_primary.svgz" + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut Down") + onClicked: sddm.powerOff() + enabled: sddm.canPowerOff + visible: !inputPanel.keyboardActive + }, + ActionButton { + iconSource: "/usr/share/sddm/themes/redcore/assets/switch_primary.svgz" + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","List Users") + onClicked: mainStack.pop() + visible: !inputPanel.keyboardActive + } + ] + } + } + + //Footer + RowLayout { + id: footer + anchors { + bottom: parent.bottom + left: parent.left + right: parent.right + margins: units.smallSpacing + } + + Behavior on opacity { + OpacityAnimator { + duration: units.longDuration + } + } + + PlasmaComponents.ToolButton { + text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to show/hide virtual keyboard", "Virtual Keyboard") + font.pointSize: config.fontSize + iconName: inputPanel.keyboardActive ? "input-keyboard-virtual-on" : "input-keyboard-virtual-off" + onClicked: inputPanel.showHide() + visible: inputPanel.status == Loader.Ready + } + + KeyboardButton { + } + + SessionButton { + id: sessionButton + } + + Item { + Layout.fillWidth: true + } + + Battery { } + } + } + + Connections { + target: sddm + onLoginFailed: { + notificationMessage = i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Login Failed") + footer.enabled = true + mainStack.enabled = true + userListComponent.userList.opacity = 1 + } + onLoginSucceeded: { + //note SDDM will kill the greeter at some random point after this + //there is no certainty any transition will finish, it depends on the time it + //takes to complete the init + mainStack.opacity = 0 + footer.opacity = 0 + } + } + + onNotificationMessageChanged: { + if (notificationMessage) { + notificationResetTimer.start(); + } + } + + Timer { + id: notificationResetTimer + interval: 3000 + onTriggered: notificationMessage = "" + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/SessionButton.qml b/x11-themes/redcore-artwork-sddm/files/redcore/SessionButton.qml new file mode 100644 index 00000000..58590c83 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/SessionButton.qml @@ -0,0 +1,59 @@ +/* + * Copyright 2016 David Edmundson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.2 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +import QtQuick.Controls 1.3 as QQC + +PlasmaComponents.ToolButton { + id: root + property int currentIndex: -1 + + implicitWidth: minimumWidth + + visible: menu.items.length > 1 + + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Desktop Session: %1", instantiator.objectAt(currentIndex).text || "") + + font.pointSize: config.fontSize + + Component.onCompleted: { + currentIndex = sessionModel.lastIndex + } + + menu: QQC.Menu { + id: menu + style: BreezeMenuStyle {} + Instantiator { + id: instantiator + model: sessionModel + onObjectAdded: menu.insertItem(index, object) + onObjectRemoved: menu.removeItem( object ) + delegate: QQC.MenuItem { + text: model.name + onTriggered: { + root.currentIndex = model.index + } + } + } + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/assets/login.svgz b/x11-themes/redcore-artwork-sddm/files/redcore/assets/login.svgz new file mode 100644 index 00000000..a1b005b6 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/assets/login.svgz differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/assets/logout_primary.svgz b/x11-themes/redcore-artwork-sddm/files/redcore/assets/logout_primary.svgz new file mode 100644 index 00000000..fd83ef02 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/assets/logout_primary.svgz differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/assets/restart_primary.svgz b/x11-themes/redcore-artwork-sddm/files/redcore/assets/restart_primary.svgz new file mode 100644 index 00000000..e749f9b3 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/assets/restart_primary.svgz differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/assets/shutdown_primary.svgz b/x11-themes/redcore-artwork-sddm/files/redcore/assets/shutdown_primary.svgz new file mode 100644 index 00000000..03592da9 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/assets/shutdown_primary.svgz differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/assets/suspend_primary.svgz b/x11-themes/redcore-artwork-sddm/files/redcore/assets/suspend_primary.svgz new file mode 100644 index 00000000..6bbf63c9 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/assets/suspend_primary.svgz differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/assets/switch_primary.svgz b/x11-themes/redcore-artwork-sddm/files/redcore/assets/switch_primary.svgz new file mode 100644 index 00000000..5f344258 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/assets/switch_primary.svgz differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/background.jpg b/x11-themes/redcore-artwork-sddm/files/redcore/background.jpg new file mode 100644 index 00000000..2b07c0d8 Binary files /dev/null and b/x11-themes/redcore-artwork-sddm/files/redcore/background.jpg differ diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/ActionButton.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/ActionButton.qml new file mode 100644 index 00000000..9fbd2a8a --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/ActionButton.qml @@ -0,0 +1,128 @@ +/* + * Copyright 2016 David Edmundson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.8 +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +Item { + id: root + property alias text: label.text + property alias iconSource: icon.source + property alias containsMouse: mouseArea.containsMouse + property alias font: label.font + property alias labelRendering: label.renderType + property alias circleOpacity: iconCircle.opacity + property alias circleVisiblity: iconCircle.visible + property int fontSize: config.fontSize + readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software + signal clicked + + activeFocusOnTab: true + + property int iconSize: units.gridUnit * 3 + + implicitWidth: Math.max(iconSize + units.largeSpacing * 2, label.contentWidth) + implicitHeight: iconSize + units.smallSpacing + label.implicitHeight + + opacity: activeFocus || containsMouse ? 1 : 0.85 + Behavior on opacity { + PropertyAnimation { // OpacityAnimator makes it turn black at random intervals + duration: units.longDuration * 2 + easing.type: Easing.InOutQuad + } + } + + Rectangle { + id: iconCircle + anchors.centerIn: icon + width: iconSize + units.smallSpacing + height: width + radius: width / 2 + color: softwareRendering ? PlasmaCore.ColorScope.backgroundColor : PlasmaCore.ColorScope.textColor + opacity: activeFocus || containsMouse ? (softwareRendering ? 0.8 : 0.15) : (softwareRendering ? 0.6 : 0) + Behavior on opacity { + PropertyAnimation { // OpacityAnimator makes it turn black at random intervals + duration: units.longDuration * 3 + easing.type: Easing.InOutQuad + } + } + } + + Rectangle { + anchors.centerIn: iconCircle + width: iconCircle.width + height: width + radius: width / 2 + scale: mouseArea.containsPress ? 1 : 0 + color: PlasmaCore.ColorScope.textColor + opacity: 0.15 + Behavior on scale { + PropertyAnimation { + duration: units.shortDuration + easing.type: Easing.InOutQuart + } + } + } + + PlasmaCore.IconItem { + id: icon + anchors { + top: parent.top + horizontalCenter: parent.horizontalCenter + } + width: iconSize + height: iconSize + + colorGroup: PlasmaCore.ColorScope.colorGroup + active: mouseArea.containsMouse || root.activeFocus + } + + PlasmaComponents.Label { + id: label + font.pointSize: Math.max(fontSize + 1,theme.defaultFont.pointSize + 1) + anchors { + top: icon.bottom + topMargin: (softwareRendering ? 1.5 : 1) * units.smallSpacing + left: parent.left + right: parent.right + } + style: softwareRendering ? Text.Outline : Text.Normal + styleColor: softwareRendering ? PlasmaCore.ColorScope.backgroundColor : "transparent" //no outline, doesn't matter + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignTop + wrapMode: Text.WordWrap + font.underline: root.activeFocus + } + + MouseArea { + id: mouseArea + hoverEnabled: true + onClicked: root.clicked() + anchors.fill: parent + } + + Keys.onEnterPressed: clicked() + Keys.onReturnPressed: clicked() + Keys.onSpacePressed: clicked() + + Accessible.onPressAction: clicked() + Accessible.role: Accessible.Button + Accessible.name: label.text +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/Battery.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/Battery.qml new file mode 100644 index 00000000..2351c4de --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/Battery.qml @@ -0,0 +1,53 @@ +/* + * Copyright 2016 Kai Uwe Broulik + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.2 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents +import org.kde.plasma.workspace.components 2.0 as PW + +Row { + spacing: units.smallSpacing + visible: pmSource.data["Battery"]["Has Cumulative"] + + PlasmaCore.DataSource { + id: pmSource + engine: "powermanagement" + connectedSources: ["Battery", "AC Adapter"] + } + + PW.BatteryIcon { + id: battery + hasBattery: pmSource.data["Battery"]["Has Battery"] || false + percent: pmSource.data["Battery"]["Percent"] || 0 + pluggedIn: pmSource.data["AC Adapter"] ? pmSource.data["AC Adapter"]["Plugged in"] : false + + height: batteryLabel.height + width: height + } + + PlasmaComponents.Label { + id: batteryLabel + font.pointSize: config.fontSize + height: undefined + text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","%1%", battery.percent) + Accessible.name: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Battery at %1%", battery.percent) + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/Clock.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/Clock.qml new file mode 100644 index 00000000..6e26055c --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/Clock.qml @@ -0,0 +1,50 @@ +/* + * Copyright 2016 David Edmundson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.8 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.1 +import org.kde.plasma.core 2.0 + +ColumnLayout { + readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software + + Label { + text: Qt.formatTime(timeSource.data["Local"]["DateTime"]) + color: ColorScope.textColor + style: softwareRendering ? Text.Outline : Text.Normal + styleColor: softwareRendering ? ColorScope.backgroundColor : "transparent" //no outline, doesn't matter + font.pointSize: 48 + Layout.alignment: Qt.AlignHCenter + } + Label { + text: Qt.formatDate(timeSource.data["Local"]["DateTime"], Qt.DefaultLocaleLongDate) + color: ColorScope.textColor + style: softwareRendering ? Text.Outline : Text.Normal + styleColor: softwareRendering ? ColorScope.backgroundColor : "transparent" //no outline, doesn't matter + font.pointSize: 24 + Layout.alignment: Qt.AlignHCenter + } + DataSource { + id: timeSource + engine: "time" + connectedSources: ["Local"] + interval: 1000 + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/KeyboardLayoutButton.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/KeyboardLayoutButton.qml new file mode 100644 index 00000000..32edb528 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/KeyboardLayoutButton.qml @@ -0,0 +1,52 @@ +/*************************************************************************** + * Copyright (C) 2014 by Daniel Vrátil * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * + ***************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Controls 1.1 as QQC + +import org.kde.plasma.components 2.0 as PlasmaComponents + +import org.kde.plasma.workspace.keyboardlayout 1.0 + +PlasmaComponents.ToolButton { + + property int fontSize: config.fontSize + + id: kbLayoutButton + + iconName: "input-keyboard" + implicitWidth: minimumWidth + text: layout.currentLayoutDisplayName + font.pointSize: Math.max(fontSize,theme.defaultFont.pointSize) + + Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout") + + visible: layout.layouts.length > 1 + + onClicked: layout.nextLayout() + + KeyboardLayout { + id: layout + function nextLayout() { + var layouts = layout.layouts; + var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length; + layout.currentLayout = layouts[index]; + } + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/SessionManagementScreen.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/SessionManagementScreen.qml new file mode 100644 index 00000000..5f882604 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/SessionManagementScreen.qml @@ -0,0 +1,121 @@ +/* + * Copyright 2016 David Edmundson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.2 + +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.1 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +Item { + id: root + + /* + * Any message to be displayed to the user, visible above the text fields + */ + property alias notificationMessage: notificationsLabel.text + + /* + * A list of Items (typically ActionButtons) to be shown in a Row beneath the prompts + */ + property alias actionItems: actionItemsLayout.children + + /* + * A model with a list of users to show in the view + * The following roles should exist: + * - name + * - iconSource + * + * The following are also handled: + * - vtNumber + * - displayNumber + * - session + * - isTty + */ + property alias userListModel: userListView.model + + /* + * Self explanatory + */ + property alias userListCurrentIndex: userListView.currentIndex + property var userListCurrentModelData: userListView.currentItem === null ? [] : userListView.currentItem.m + property bool showUserList: true + + property alias userList: userListView + + property int fontSize: config.fontSize + + default property alias _children: innerLayout.children + + UserList { + id: userListView + visible: showUserList && y > 0 + anchors { + bottom: parent.verticalCenter + left: parent.left + right: parent.right + } + } + + //goal is to show the prompts, in ~16 grid units high, then the action buttons + //but collapse the space between the prompts and actions if there's no room + //ui is constrained to 16 grid units wide, or the screen + ColumnLayout { + id: prompts + anchors.top: parent.verticalCenter + anchors.topMargin: units.gridUnit * 0.5 + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + PlasmaComponents.Label { + id: notificationsLabel + font.pointSize: Math.max(fontSize + 1,theme.defaultFont.pointSize + 1) + Layout.maximumWidth: units.gridUnit * 16 + Layout.alignment: Qt.AlignHCenter + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + font.italic: true + } + ColumnLayout { + Layout.minimumHeight: implicitHeight + Layout.maximumHeight: units.gridUnit * 10 + Layout.maximumWidth: units.gridUnit * 16 + Layout.alignment: Qt.AlignHCenter + ColumnLayout { + id: innerLayout + Layout.alignment: Qt.AlignHCenter + Layout.fillWidth: true + } + Item { + Layout.fillHeight: true + } + } + Row { //deliberately not rowlayout as I'm not trying to resize child items + id: actionItemsLayout + spacing: units.largeSpacing / 2 + Layout.alignment: Qt.AlignHCenter + } + Item { + Layout.fillHeight: true + } + } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/UserDelegate.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/UserDelegate.qml new file mode 100644 index 00000000..960315df --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/UserDelegate.qml @@ -0,0 +1,190 @@ +/* + * Copyright 2014 David Edmundson + * Copyright 2014 Aleix Pol Gonzalez + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.8 +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +Item { + id: wrapper + + // If we're using software rendering, draw outlines instead of shadows + // See https://bugs.kde.org/show_bug.cgi?id=398317 + readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software + + property bool isCurrent: true + + readonly property var m: model + property string name + property string userName + property string avatarPath + property string iconSource + property bool constrainText: true + property alias nameFontSize: usernameDelegate.font.pointSize + property int fontSize: config.fontSize + signal clicked() + + property real faceSize: Math.min(width, height - usernameDelegate.height - units.smallSpacing) + + opacity: isCurrent ? 1.0 : 0.5 + + Behavior on opacity { + OpacityAnimator { + duration: units.longDuration + } + } + + // Draw a translucent background circle under the user picture + Rectangle { + anchors.centerIn: imageSource + width: imageSource.width - 2 // Subtract to prevent fringing + height: width + radius: width / 2 + + color: PlasmaCore.ColorScope.backgroundColor + opacity: 0.6 + } + + Item { + id: imageSource + anchors { + bottom: usernameDelegate.top + bottomMargin: units.largeSpacing + horizontalCenter: parent.horizontalCenter + } + Behavior on width { + PropertyAnimation { + from: faceSize + duration: units.longDuration * 2; + } + } + width: isCurrent ? faceSize : faceSize - units.largeSpacing + height: width + + //Image takes priority, taking a full path to a file, if that doesn't exist we show an icon + Image { + id: face + source: wrapper.avatarPath + sourceSize: Qt.size(faceSize, faceSize) + fillMode: Image.PreserveAspectCrop + anchors.fill: parent + } + + PlasmaCore.IconItem { + id: faceIcon + source: iconSource + visible: (face.status == Image.Error || face.status == Image.Null) + anchors.fill: parent + anchors.margins: units.gridUnit * 0.5 // because mockup says so... + colorGroup: PlasmaCore.ColorScope.colorGroup + } + } + + ShaderEffect { + anchors { + bottom: usernameDelegate.top + bottomMargin: units.largeSpacing + horizontalCenter: parent.horizontalCenter + } + + width: imageSource.width + height: imageSource.height + + supportsAtlasTextures: true + + property var source: ShaderEffectSource { + sourceItem: imageSource + // software rendering is just a fallback so we can accept not having a rounded avatar here + hideSource: wrapper.GraphicsInfo.api !== GraphicsInfo.Software + live: true // otherwise the user in focus will show a blurred avatar + } + + property var colorBorder: PlasmaCore.ColorScope.textColor + + //draw a circle with an antialised border + //innerRadius = size of the inner circle with contents + //outerRadius = size of the border + //blend = area to blend between two colours + //all sizes are normalised so 0.5 == half the width of the texture + + //if copying into another project don't forget to connect themeChanged to update() + //but in SDDM that's a bit pointless + fragmentShader: " + varying highp vec2 qt_TexCoord0; + uniform highp float qt_Opacity; + uniform lowp sampler2D source; + + uniform lowp vec4 colorBorder; + highp float blend = 0.01; + highp float innerRadius = 0.47; + highp float outerRadius = 0.49; + lowp vec4 colorEmpty = vec4(0.0, 0.0, 0.0, 0.0); + + void main() { + lowp vec4 colorSource = texture2D(source, qt_TexCoord0.st); + + highp vec2 m = qt_TexCoord0 - vec2(0.5, 0.5); + highp float dist = sqrt(m.x * m.x + m.y * m.y); + + if (dist < innerRadius) + gl_FragColor = colorSource; + else if (dist < innerRadius + blend) + gl_FragColor = mix(colorSource, colorBorder, ((dist - innerRadius) / blend)); + else if (dist < outerRadius) + gl_FragColor = colorBorder; + else if (dist < outerRadius + blend) + gl_FragColor = mix(colorBorder, colorEmpty, ((dist - outerRadius) / blend)); + else + gl_FragColor = colorEmpty ; + + gl_FragColor = gl_FragColor * qt_Opacity; + } + " + } + + PlasmaComponents.Label { + id: usernameDelegate + font.pointSize: Math.max(fontSize + 2,theme.defaultFont.pointSize + 2) + anchors { + bottom: parent.bottom + horizontalCenter: parent.horizontalCenter + } + height: implicitHeight // work around stupid bug in Plasma Components that sets the height + width: constrainText ? parent.width : implicitWidth + text: wrapper.name + style: softwareRendering ? Text.Outline : Text.Normal + styleColor: softwareRendering ? PlasmaCore.ColorScope.backgroundColor : "transparent" //no outline, doesn't matter + elide: Text.ElideRight + horizontalAlignment: Text.AlignHCenter + //make an indication that this has active focus, this only happens when reached with keyboard navigation + font.underline: wrapper.activeFocus + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + + onClicked: wrapper.clicked(); + } + + Accessible.name: name + Accessible.role: Accessible.Button + function accessiblePressAction() { wrapper.clicked() } +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/UserList.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/UserList.qml new file mode 100644 index 00000000..a2d85088 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/UserList.qml @@ -0,0 +1,93 @@ +/* + * Copyright 2014 David Edmundson + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.2 + +ListView { + id: view + readonly property string selectedUser: currentItem ? currentItem.userName : "" + readonly property int userItemWidth: units.gridUnit * 8 + readonly property int userItemHeight: units.gridUnit * 8 + + implicitHeight: userItemHeight + + activeFocusOnTab : true + + /* + * Signals that a user was explicitly selected + */ + signal userSelected; + + orientation: ListView.Horizontal + highlightRangeMode: ListView.StrictlyEnforceRange + + //centre align selected item (which implicitly centre aligns the rest + preferredHighlightBegin: width/2 - userItemWidth/2 + preferredHighlightEnd: preferredHighlightBegin + + delegate: UserDelegate { + avatarPath: model.icon || "" + iconSource: model.iconName || "user-identity" + + name: { + var displayName = model.realName || model.name + + if (model.vtNumber === undefined || model.vtNumber < 0) { + return displayName + } + + if (!model.session) { + return i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Nobody logged in on that session", "Unused") + } + + + var location = "" + if (model.isTty) { + location = i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "User logged in on console number", "TTY %1", model.vtNumber) + } else if (model.displayNumber) { + location = i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "User logged in on console (X display number)", "on TTY %1 (Display %2)", model.vtNumber, model.displayNumber) + } + + if (location) { + return i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Username (location)", "%1 (%2)", displayName, location) + } + + return displayName + } + + userName: model.name + + width: userItemWidth + height: userItemHeight + + //if we only have one delegate, we don't need to clip the text as it won't be overlapping with anything + constrainText: ListView.view.count > 1 + + isCurrent: ListView.isCurrentItem + + onClicked: { + ListView.view.currentIndex = index; + ListView.view.userSelected(); + } + } + + Keys.onEscapePressed: view.userSelected() + Keys.onEnterPressed: view.userSelected() + Keys.onReturnPressed: view.userSelected() +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/VirtualKeyboard.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/VirtualKeyboard.qml new file mode 100644 index 00000000..7848b753 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/VirtualKeyboard.qml @@ -0,0 +1,28 @@ +/******************************************************************** + This file is part of the KDE project. + +Copyright (C) 2017 Martin Gräßlin + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*********************************************************************/ +import QtQuick 2.5 +import QtQuick.VirtualKeyboard 2.1 + +InputPanel { + id: inputPanel + property bool activated: false + active: activated && Qt.inputMethod.visible + visible: active + width: parent.width +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/components/WallpaperFader.qml b/x11-themes/redcore-artwork-sddm/files/redcore/components/WallpaperFader.qml new file mode 100644 index 00000000..31dfe007 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/components/WallpaperFader.qml @@ -0,0 +1,182 @@ +/******************************************************************** + This file is part of the KDE project. + +Copyright (C) 2014 Aleix Pol Gonzalez + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*********************************************************************/ + +import QtQuick 2.6 +import QtQuick.Controls 1.1 +import QtQuick.Layouts 1.1 +import QtGraphicalEffects 1.0 + +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents + +import org.kde.plasma.private.sessions 2.0 +import "../components" + +Item { + id: wallpaperFader + property Item clock + property Item mainStack + property Item footer + property alias source: wallpaperBlur.source + state: lockScreenRoot.uiVisible ? "on" : "off" + property real factor: 0 + readonly property bool lightBackground: Math.max(PlasmaCore.ColorScope.backgroundColor.r, PlasmaCore.ColorScope.backgroundColor.g, PlasmaCore.ColorScope.backgroundColor.b) > 0.5 + + Behavior on factor { + NumberAnimation { + target: wallpaperFader + property: "factor" + duration: 1000 + easing.type: Easing.InOutQuad + } + } + FastBlur { + id: wallpaperBlur + anchors.fill: parent + radius: 50 * wallpaperFader.factor + } + ShaderEffect { + id: wallpaperShader + anchors.fill: parent + supportsAtlasTextures: true + property var source: ShaderEffectSource { + sourceItem: wallpaperBlur + live: true + hideSource: true + textureMirroring: ShaderEffectSource.NoMirroring + } + + readonly property real contrast: 0.65 * wallpaperFader.factor + (1 - wallpaperFader.factor) + readonly property real saturation: 1.6 * wallpaperFader.factor + (1 - wallpaperFader.factor) + readonly property real intensity: (wallpaperFader.lightBackground ? 1.7 : 0.6) * wallpaperFader.factor + (1 - wallpaperFader.factor) + + readonly property real transl: (1.0 - contrast) / 2.0; + readonly property real rval: (1.0 - saturation) * 0.2126; + readonly property real gval: (1.0 - saturation) * 0.7152; + readonly property real bval: (1.0 - saturation) * 0.0722; + + property var colorMatrix: Qt.matrix4x4( + contrast, 0, 0, 0.0, + 0, contrast, 0, 0.0, + 0, 0, contrast, 0.0, + transl, transl, transl, 1.0).times(Qt.matrix4x4( + rval + saturation, rval, rval, 0.0, + gval, gval + saturation, gval, 0.0, + bval, bval, bval + saturation, 0.0, + 0, 0, 0, 1.0)).times(Qt.matrix4x4( + intensity, 0, 0, 0, + 0, intensity, 0, 0, + 0, 0, intensity, 0, + 0, 0, 0, 1 + )); + + + fragmentShader: " + uniform mediump mat4 colorMatrix; + uniform mediump sampler2D source; + varying mediump vec2 qt_TexCoord0; + uniform lowp float qt_Opacity; + + void main(void) + { + mediump vec4 tex = texture2D(source, qt_TexCoord0); + gl_FragColor = tex * colorMatrix * qt_Opacity; + }" + } + + states: [ + State { + name: "on" + PropertyChanges { + target: mainStack + opacity: 1 + } + PropertyChanges { + target: footer + opacity: 1 + } + PropertyChanges { + target: wallpaperFader + factor: 1 + } + PropertyChanges { + target: clock.shadow + opacity: 0 + } + }, + State { + name: "off" + PropertyChanges { + target: mainStack + opacity: 0 + } + PropertyChanges { + target: footer + opacity: 0 + } + PropertyChanges { + target: wallpaperFader + factor: 0 + } + PropertyChanges { + target: clock.shadow + opacity: 1 + } + } + ] + transitions: [ + Transition { + from: "off" + to: "on" + //Note: can't use animators as they don't play well with parallelanimations + ParallelAnimation { + NumberAnimation { + target: mainStack + property: "opacity" + duration: units.longDuration + easing.type: Easing.InOutQuad + } + NumberAnimation { + target: footer + property: "opacity" + duration: units.longDuration + easing.type: Easing.InOutQuad + } + } + }, + Transition { + from: "on" + to: "off" + ParallelAnimation { + NumberAnimation { + target: mainStack + property: "opacity" + duration: 500 + easing.type: Easing.InOutQuad + } + NumberAnimation { + target: footer + property: "opacity" + duration: 500 + easing.type: Easing.InOutQuad + } + } + } + ] +} diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/metadata.desktop b/x11-themes/redcore-artwork-sddm/files/redcore/metadata.desktop new file mode 100644 index 00000000..26e37838 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/metadata.desktop @@ -0,0 +1,16 @@ +[SddmGreeterTheme] +Name=Redcore +Description=ChromeOS Theme +Author=Vince Liuice +Copyright=(c) 2020, Vince Liuice +License=CC-BY-SA +Type=sddm-theme +Version=0.1.0 +Website=https://github.com/vinceliuice/Orchis-kde +Screenshot=preview.png +MainScript=Main.qml +ConfigFile=theme.conf +TranslationsDirectory=translations +Email=vinceliuice@hotmail.com +Theme-Id=Orchis +Theme-API=2.0 diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/theme.conf b/x11-themes/redcore-artwork-sddm/files/redcore/theme.conf new file mode 100644 index 00000000..53dfe0ad --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/theme.conf @@ -0,0 +1,5 @@ +[General] +type=image +color=#520A0A +fontSize=10 +background=background.jpg diff --git a/x11-themes/redcore-artwork-sddm/files/redcore/theme.conf.user b/x11-themes/redcore-artwork-sddm/files/redcore/theme.conf.user new file mode 100644 index 00000000..68c66429 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/files/redcore/theme.conf.user @@ -0,0 +1,2 @@ +[General] +type=image diff --git a/x11-themes/redcore-artwork-sddm/redcore-artwork-sddm-314-r6.ebuild b/x11-themes/redcore-artwork-sddm/redcore-artwork-sddm-314-r6.ebuild new file mode 100644 index 00000000..9a657795 --- /dev/null +++ b/x11-themes/redcore-artwork-sddm/redcore-artwork-sddm-314-r6.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=7 + +DESCRIPTION="Redcore Linux SDDM Theme" +HOMEPAGE="" +SRC_URI="" + +LICENSE="CC-BY-SA" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +S="${FILESDIR}" + +src_install() { + dodir usr/share/sddm/themes + insinto usr/share/sddm/themes + doins -r ${S}/* +} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/Background.qml b/x11-themes/redcore-theme-sddm/files/redcore/Background.qml deleted file mode 100644 index 5a384151..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/Background.qml +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2016 Boudhayan Gupta - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 - -FocusScope { - id: sceneBackground - - property var sceneBackgroundType - property alias sceneBackgroundColor: sceneColorBackground.color - property alias sceneBackgroundImage: sceneImageBackground.source - - Rectangle { - id: sceneColorBackground - anchors.fill: parent - } - - Image { - id: sceneImageBackground - anchors.fill: parent - sourceSize.width: parent.width - sourceSize.height: parent.height - fillMode: Image.PreserveAspectCrop - smooth: true; - } - - states: [ - State { - name: "imageBackground" - when: sceneBackgroundType === "image" - PropertyChanges { - target: sceneColorBackground - visible: false - } - PropertyChanges { - target: sceneImageBackground - visible: true - } - }, - State { - name: "colorBackground" - when: sceneBackgroundType !== "image" - PropertyChanges { - target: sceneColorBackground - visible: true - } - PropertyChanges { - target: sceneImageBackground - visible: false - } - } - ] -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/BreezeMenuStyle.qml b/x11-themes/redcore-theme-sddm/files/redcore/BreezeMenuStyle.qml deleted file mode 100644 index 7d56c149..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/BreezeMenuStyle.qml +++ /dev/null @@ -1,25 +0,0 @@ -import QtQuick 2.2 - -import org.kde.plasma.core 2.0 as PlasmaCore - -import QtQuick.Controls.Styles 1.4 as QQCS -import QtQuick.Controls 1.3 as QQC - -QQCS.MenuStyle { - frame: Rectangle { - color: PlasmaCore.ColorScope.backgroundColor - border.color: Qt.tint(PlasmaCore.ColorScope.textColor, Qt.rgba(color.r, color.g, color.b, 0.7)) - border.width: 1 - } - itemDelegate.label: QQC.Label { - height: contentHeight * 1.2 - verticalAlignment: Text.AlignVCenter - color: styleData.selected ? PlasmaCore.ColorScope.highlightedTextColor : PlasmaCore.ColorScope.textColor - font.pointSize: config.fontSize - text: styleData.text - } - itemDelegate.background: Rectangle { - visible: styleData.selected - color: PlasmaCore.ColorScope.highlightColor - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml b/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml deleted file mode 100644 index 9989d93e..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/KeyboardButton.qml +++ /dev/null @@ -1,38 +0,0 @@ -import QtQuick 2.2 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -import QtQuick.Controls 1.3 as QQC - -PlasmaComponents.ToolButton { - id: keyboardButton - - property int currentIndex: -1 - - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Keyboard Layout: %1", instantiator.objectAt(currentIndex).shortName) - implicitWidth: minimumWidth - font.pointSize: config.fontSize - - visible: menu.items.length > 1 - - Component.onCompleted: currentIndex = Qt.binding(function() {return keyboard.currentLayout}); - - menu: QQC.Menu { - id: keyboardMenu - style: BreezeMenuStyle {} - Instantiator { - id: instantiator - model: keyboard.layouts - onObjectAdded: keyboardMenu.insertItem(index, object) - onObjectRemoved: keyboardMenu.removeItem( object ) - delegate: QQC.MenuItem { - text: modelData.longName - property string shortName: modelData.shortName - onTriggered: { - keyboard.currentLayout = model.index - } - } - } - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/Login.qml b/x11-themes/redcore-theme-sddm/files/redcore/Login.qml deleted file mode 100644 index 7234917f..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/Login.qml +++ /dev/null @@ -1,156 +0,0 @@ -import "components" - -import QtQuick 2.0 -import QtQuick.Layouts 1.2 -import QtQuick.Controls.Styles 1.4 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -SessionManagementScreen { - - property bool showUsernamePrompt: !showUserList - property int usernameFontSize - property string usernameFontColor - property string lastUserName - property bool passwordFieldOutlined: config.PasswordFieldOutlined == "true" - property bool hidePasswordRevealIcon: config.HidePasswordRevealIcon == "false" - property int visibleBoundary: mapFromItem(loginButton, 0, 0).y - onHeightChanged: visibleBoundary = mapFromItem(loginButton, 0, 0).y + loginButton.height + units.smallSpacing - - signal loginRequest(string username, string password) - - onShowUsernamePromptChanged: { - if (!showUsernamePrompt) { - lastUserName = "" - } - } - - /* - * Login has been requested with the following username and password - * If username field is visible, it will be taken from that, otherwise from the "name" property of the currentIndex - */ - function startLogin() { - var username = showUsernamePrompt ? userNameInput.text : userList.selectedUser - var password = passwordBox.text - - loginButton.forceActiveFocus(); - loginRequest(username, password); - } - - PlasmaComponents.TextField { - id: userNameInput - Layout.fillWidth: true - Layout.minimumHeight: 32 - implicitHeight: usernameFontSize * 2.85 - font.pointSize: usernameFontSize * 0.8 - font.family: config.Font || "Noto Sans" - opacity: 1.0 - text: lastUserName - visible: showUsernamePrompt - focus: showUsernamePrompt && !lastUserName //if there's a username prompt it gets focus first, otherwise password does - placeholderText: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Username") - - style: TextFieldStyle { - textColor: "white" - placeholderTextColor: "white" - background: Rectangle { - radius: 6 - border.color: "#1A73E8" - border.width: 2 - color: "#48316f" - } - } - } - - PlasmaComponents.TextField { - id: passwordBox - Layout.fillWidth: true - Layout.minimumHeight: 32 - implicitHeight: usernameFontSize * 2.85 - font.pointSize: usernameFontSize * 0.8 - opacity: passwordFieldOutlined ? 1.0 : 1.0 - font.family: config.Font || "Noto Sans" - placeholderText: config.PasswordFieldPlaceholderText == "Password" ? i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Password") : config.PasswordFieldPlaceholderText - focus: !showUsernamePrompt || lastUserName - echoMode: TextInput.Password - revealPasswordButtonShown: hidePasswordRevealIcon - onAccepted: startLogin() - - style: TextFieldStyle { - textColor: passwordFieldOutlined ? "white" : "white" - placeholderTextColor: passwordFieldOutlined ? "white" : "white" - passwordCharacter: config.PasswordFieldCharacter == "" ? "●" : config.PasswordFieldCharacter - background: Rectangle { - radius: 6 - border.color: "#1A73E8" - border.width: 2 - color: "#48316f" - } - } - - Keys.onEscapePressed: { - mainStack.currentItem.forceActiveFocus(); - } - - Keys.onPressed: { - if (event.key == Qt.Key_Left && !text) { - userList.decrementCurrentIndex(); - event.accepted = true - } - if (event.key == Qt.Key_Right && !text) { - userList.incrementCurrentIndex(); - event.accepted = true - } - } - - Keys.onReleased: { - if (loginButton.opacity == 0 && length > 0) { - showLoginButton.start() - } - if (loginButton.opacity > 0 && length == 0) { - hideLoginButton.start() - } - } - - Connections { - target: sddm - onLoginFailed: { - passwordBox.selectAll() - passwordBox.forceActiveFocus() - } - } - } - - Image { - id: loginButton - source: "assets/login.svgz" - smooth: true - sourceSize: Qt.size(passwordBox.height, passwordBox.height) - anchors { - left: passwordBox.right - verticalCenter: passwordBox.verticalCenter - } - anchors.leftMargin: 8 - visible: opacity > 0 - opacity: 0 - MouseArea { - anchors.fill: parent - onClicked: startLogin(); - } - PropertyAnimation { - id: showLoginButton - target: loginButton - properties: "opacity" - to: 0.75 - duration: 100 - } - PropertyAnimation { - id: hideLoginButton - target: loginButton - properties: "opacity" - to: 0 - duration: 80 - } - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/Main.qml b/x11-themes/redcore-theme-sddm/files/redcore/Main.qml deleted file mode 100644 index ab5c5dd7..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/Main.qml +++ /dev/null @@ -1,481 +0,0 @@ -/* - * Copyright 2016 David Edmundson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.8 - -import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.1 -import QtGraphicalEffects 1.0 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents -import org.kde.plasma.extras 2.0 as PlasmaExtras - -import "components" - -PlasmaCore.ColorScope { - id: root - - // If we're using software rendering, draw outlines instead of shadows - // See https://bugs.kde.org/show_bug.cgi?id=398317 - readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software - - colorGroup: PlasmaCore.Theme.ComplementaryColorGroup - - width: 1600 - height: 900 - - property string notificationMessage - - LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft - LayoutMirroring.childrenInherit: true - - PlasmaCore.DataSource { - id: keystateSource - engine: "keystate" - connectedSources: "Caps Lock" - } - - Item { - id: wallpaper - anchors.fill: parent - Repeater { - model: screenModel - - Background { - x: geometry.x; y: geometry.y; width: geometry.width; height: geometry.height - sceneBackgroundType: config.type - sceneBackgroundColor: config.color - sceneBackgroundImage: config.background - } - } - } - - MouseArea { - id: loginScreenRoot - anchors.fill: parent - - property bool uiVisible: true - property bool blockUI: mainStack.depth > 1 || userListComponent.mainPasswordBox.text.length > 0 || inputPanel.keyboardActive || config.type !== "image" - - hoverEnabled: true - drag.filterChildren: true - onPressed: uiVisible = true; - onPositionChanged: uiVisible = true; - onUiVisibleChanged: { - if (blockUI) { - fadeoutTimer.running = false; - } else if (uiVisible) { - fadeoutTimer.restart(); - } - } - onBlockUIChanged: { - if (blockUI) { - fadeoutTimer.running = false; - uiVisible = true; - } else { - fadeoutTimer.restart(); - } - } - - Keys.onPressed: { - uiVisible = true; - event.accepted = false; - } - - //takes one full minute for the ui to disappear - Timer { - id: fadeoutTimer - running: true - interval: 60000 - onTriggered: { - if (!loginScreenRoot.blockUI) { - loginScreenRoot.uiVisible = false; - } - } - } - WallpaperFader { - visible: config.type === "image" - anchors.fill: parent - state: loginScreenRoot.uiVisible ? "on" : "off" - source: wallpaper - mainStack: mainStack - footer: footer - clock: clock - } - - DropShadow { - id: clockShadow - anchors.fill: clock - source: clock - visible: !softwareRendering - horizontalOffset: 1 - verticalOffset: 1 - radius: 6 - samples: 14 - spread: 0.3 - color: "black" // matches Breeze window decoration and desktopcontainment - Behavior on opacity { - OpacityAnimator { - duration: 1000 - easing.type: Easing.InOutQuad - } - } - } - - Clock { - id: clock - visible: y > 0 - property Item shadow: clockShadow - y: (userListComponent.userList.y + mainStack.y)/2 - height/2 - anchors.horizontalCenter: parent.horizontalCenter - } - - - StackView { - id: mainStack - anchors { - left: parent.left - right: parent.right - } - height: root.height + units.gridUnit * 3 - - focus: true //StackView is an implicit focus scope, so we need to give this focus so the item inside will have it - - Timer { - //SDDM has a bug in 0.13 where even though we set the focus on the right item within the window, the window doesn't have focus - //it is fixed in 6d5b36b28907b16280ff78995fef764bb0c573db which will be 0.14 - //we need to call "window->activate()" *After* it's been shown. We can't control that in QML so we use a shoddy timer - //it's been this way for all Plasma 5.x without a huge problem - running: true - repeat: false - interval: 200 - onTriggered: mainStack.forceActiveFocus() - } - - initialItem: Login { - id: userListComponent - userListModel: userModel - userListCurrentIndex: userModel.lastIndex >= 0 ? userModel.lastIndex : 0 - lastUserName: userModel.lastUser - - usernameFontSize: root.generalFontSize - usernameFontColor: root.generalFontColor - - showUserList: { - if ( !userListModel.hasOwnProperty("count") - || !userListModel.hasOwnProperty("disableAvatarsThreshold")) - return (userList.y + mainStack.y) > 0 - - if ( userListModel.count == 0 ) return false - - return userListModel.count <= userListModel.disableAvatarsThreshold && (userList.y + mainStack.y) > 0 - } - - notificationMessage: { - var text = "" - if (keystateSource.data["Caps Lock"]["Locked"]) { - text += i18nd("plasma_lookandfeel_org.kde.lookandfeel","Caps Lock is on") - if (root.notificationMessage) { - text += " • " - } - } - text += root.notificationMessage - return text - } - - actionItems: [ - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/suspend_primary.svgz" - text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel","Suspend to RAM","Sleep") - onClicked: sddm.suspend() - enabled: sddm.canSuspend - visible: !inputPanel.keyboardActive - }, - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/restart_primary.svgz" - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Restart") - onClicked: sddm.reboot() - enabled: sddm.canReboot - visible: !inputPanel.keyboardActive - }, - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/shutdown_primary.svgz" - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut Down") - onClicked: sddm.powerOff() - enabled: sddm.canPowerOff - visible: !inputPanel.keyboardActive - }, - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/switch_primary.svgz" - text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "For switching to a username and password prompt", "Other...") - onClicked: mainStack.push(userPromptComponent) - enabled: true - visible: !userListComponent.showUsernamePrompt && !inputPanel.keyboardActive - }] - - onLoginRequest: { - root.notificationMessage = "" - sddm.login(username, password, sessionButton.currentIndex) - } - } - - Behavior on opacity { - OpacityAnimator { - duration: units.longDuration - } - } - } - - Loader { - id: inputPanel - state: "hidden" - property bool keyboardActive: item ? item.active : false - onKeyboardActiveChanged: { - if (keyboardActive) { - state = "visible" - } else { - state = "hidden"; - } - } - source: "components/VirtualKeyboard.qml" - anchors { - left: parent.left - right: parent.right - } - - function showHide() { - state = state == "hidden" ? "visible" : "hidden"; - } - - states: [ - State { - name: "visible" - PropertyChanges { - target: mainStack - y: Math.min(0, root.height - inputPanel.height - userListComponent.visibleBoundary) - } - PropertyChanges { - target: inputPanel - y: root.height - inputPanel.height - opacity: 1 - } - }, - State { - name: "hidden" - PropertyChanges { - target: mainStack - y: 0 - } - PropertyChanges { - target: inputPanel - y: root.height - root.height/4 - opacity: 0 - } - } - ] - transitions: [ - Transition { - from: "hidden" - to: "visible" - SequentialAnimation { - ScriptAction { - script: { - inputPanel.item.activated = true; - Qt.inputMethod.show(); - } - } - ParallelAnimation { - NumberAnimation { - target: mainStack - property: "y" - duration: units.longDuration - easing.type: Easing.InOutQuad - } - NumberAnimation { - target: inputPanel - property: "y" - duration: units.longDuration - easing.type: Easing.OutQuad - } - OpacityAnimator { - target: inputPanel - duration: units.longDuration - easing.type: Easing.OutQuad - } - } - } - }, - Transition { - from: "visible" - to: "hidden" - SequentialAnimation { - ParallelAnimation { - NumberAnimation { - target: mainStack - property: "y" - duration: units.longDuration - easing.type: Easing.InOutQuad - } - NumberAnimation { - target: inputPanel - property: "y" - duration: units.longDuration - easing.type: Easing.InQuad - } - OpacityAnimator { - target: inputPanel - duration: units.longDuration - easing.type: Easing.InQuad - } - } - ScriptAction { - script: { - Qt.inputMethod.hide(); - } - } - } - } - ] - } - - - Component { - id: userPromptComponent - Login { - showUsernamePrompt: true - notificationMessage: root.notificationMessage - - // using a model rather than a QObject list to avoid QTBUG-75900 - userListModel: ListModel { - ListElement { - name: "" - iconSource: "" - } - Component.onCompleted: { - // as we can't bind inside ListElement - setProperty(0, "name", i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Type in Username and Password")); - } - } - - onLoginRequest: { - root.notificationMessage = "" - sddm.login(username, password, sessionButton.currentIndex) - } - - actionItems: [ - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/suspend_primary.svgz" - text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel","Suspend to RAM","Sleep") - onClicked: sddm.suspend() - enabled: sddm.canSuspend - visible: !inputPanel.keyboardActive - }, - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/restart_primary.svgz" - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Restart") - onClicked: sddm.reboot() - enabled: sddm.canReboot - visible: !inputPanel.keyboardActive - }, - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/shutdown_primary.svgz" - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut Down") - onClicked: sddm.powerOff() - enabled: sddm.canPowerOff - visible: !inputPanel.keyboardActive - }, - ActionButton { - iconSource: "/usr/share/sddm/themes/redcore/assets/switch_primary.svgz" - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","List Users") - onClicked: mainStack.pop() - visible: !inputPanel.keyboardActive - } - ] - } - } - - //Footer - RowLayout { - id: footer - anchors { - bottom: parent.bottom - left: parent.left - right: parent.right - margins: units.smallSpacing - } - - Behavior on opacity { - OpacityAnimator { - duration: units.longDuration - } - } - - PlasmaComponents.ToolButton { - text: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to show/hide virtual keyboard", "Virtual Keyboard") - font.pointSize: config.fontSize - iconName: inputPanel.keyboardActive ? "input-keyboard-virtual-on" : "input-keyboard-virtual-off" - onClicked: inputPanel.showHide() - visible: inputPanel.status == Loader.Ready - } - - KeyboardButton { - } - - SessionButton { - id: sessionButton - } - - Item { - Layout.fillWidth: true - } - - Battery { } - } - } - - Connections { - target: sddm - onLoginFailed: { - notificationMessage = i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Login Failed") - footer.enabled = true - mainStack.enabled = true - userListComponent.userList.opacity = 1 - } - onLoginSucceeded: { - //note SDDM will kill the greeter at some random point after this - //there is no certainty any transition will finish, it depends on the time it - //takes to complete the init - mainStack.opacity = 0 - footer.opacity = 0 - } - } - - onNotificationMessageChanged: { - if (notificationMessage) { - notificationResetTimer.start(); - } - } - - Timer { - id: notificationResetTimer - interval: 3000 - onTriggered: notificationMessage = "" - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/SessionButton.qml b/x11-themes/redcore-theme-sddm/files/redcore/SessionButton.qml deleted file mode 100644 index 58590c83..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/SessionButton.qml +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2016 David Edmundson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -import QtQuick.Controls 1.3 as QQC - -PlasmaComponents.ToolButton { - id: root - property int currentIndex: -1 - - implicitWidth: minimumWidth - - visible: menu.items.length > 1 - - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Desktop Session: %1", instantiator.objectAt(currentIndex).text || "") - - font.pointSize: config.fontSize - - Component.onCompleted: { - currentIndex = sessionModel.lastIndex - } - - menu: QQC.Menu { - id: menu - style: BreezeMenuStyle {} - Instantiator { - id: instantiator - model: sessionModel - onObjectAdded: menu.insertItem(index, object) - onObjectRemoved: menu.removeItem( object ) - delegate: QQC.MenuItem { - text: model.name - onTriggered: { - root.currentIndex = model.index - } - } - } - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/assets/login.svgz b/x11-themes/redcore-theme-sddm/files/redcore/assets/login.svgz deleted file mode 100644 index a1b005b6..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/assets/login.svgz and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/assets/logout_primary.svgz b/x11-themes/redcore-theme-sddm/files/redcore/assets/logout_primary.svgz deleted file mode 100644 index fd83ef02..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/assets/logout_primary.svgz and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/assets/restart_primary.svgz b/x11-themes/redcore-theme-sddm/files/redcore/assets/restart_primary.svgz deleted file mode 100644 index e749f9b3..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/assets/restart_primary.svgz and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/assets/shutdown_primary.svgz b/x11-themes/redcore-theme-sddm/files/redcore/assets/shutdown_primary.svgz deleted file mode 100644 index 03592da9..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/assets/shutdown_primary.svgz and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/assets/suspend_primary.svgz b/x11-themes/redcore-theme-sddm/files/redcore/assets/suspend_primary.svgz deleted file mode 100644 index 6bbf63c9..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/assets/suspend_primary.svgz and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/assets/switch_primary.svgz b/x11-themes/redcore-theme-sddm/files/redcore/assets/switch_primary.svgz deleted file mode 100644 index 5f344258..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/assets/switch_primary.svgz and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/background.jpg b/x11-themes/redcore-theme-sddm/files/redcore/background.jpg deleted file mode 100644 index 2b07c0d8..00000000 Binary files a/x11-themes/redcore-theme-sddm/files/redcore/background.jpg and /dev/null differ diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/ActionButton.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/ActionButton.qml deleted file mode 100644 index 9fbd2a8a..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/ActionButton.qml +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2016 David Edmundson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.8 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -Item { - id: root - property alias text: label.text - property alias iconSource: icon.source - property alias containsMouse: mouseArea.containsMouse - property alias font: label.font - property alias labelRendering: label.renderType - property alias circleOpacity: iconCircle.opacity - property alias circleVisiblity: iconCircle.visible - property int fontSize: config.fontSize - readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software - signal clicked - - activeFocusOnTab: true - - property int iconSize: units.gridUnit * 3 - - implicitWidth: Math.max(iconSize + units.largeSpacing * 2, label.contentWidth) - implicitHeight: iconSize + units.smallSpacing + label.implicitHeight - - opacity: activeFocus || containsMouse ? 1 : 0.85 - Behavior on opacity { - PropertyAnimation { // OpacityAnimator makes it turn black at random intervals - duration: units.longDuration * 2 - easing.type: Easing.InOutQuad - } - } - - Rectangle { - id: iconCircle - anchors.centerIn: icon - width: iconSize + units.smallSpacing - height: width - radius: width / 2 - color: softwareRendering ? PlasmaCore.ColorScope.backgroundColor : PlasmaCore.ColorScope.textColor - opacity: activeFocus || containsMouse ? (softwareRendering ? 0.8 : 0.15) : (softwareRendering ? 0.6 : 0) - Behavior on opacity { - PropertyAnimation { // OpacityAnimator makes it turn black at random intervals - duration: units.longDuration * 3 - easing.type: Easing.InOutQuad - } - } - } - - Rectangle { - anchors.centerIn: iconCircle - width: iconCircle.width - height: width - radius: width / 2 - scale: mouseArea.containsPress ? 1 : 0 - color: PlasmaCore.ColorScope.textColor - opacity: 0.15 - Behavior on scale { - PropertyAnimation { - duration: units.shortDuration - easing.type: Easing.InOutQuart - } - } - } - - PlasmaCore.IconItem { - id: icon - anchors { - top: parent.top - horizontalCenter: parent.horizontalCenter - } - width: iconSize - height: iconSize - - colorGroup: PlasmaCore.ColorScope.colorGroup - active: mouseArea.containsMouse || root.activeFocus - } - - PlasmaComponents.Label { - id: label - font.pointSize: Math.max(fontSize + 1,theme.defaultFont.pointSize + 1) - anchors { - top: icon.bottom - topMargin: (softwareRendering ? 1.5 : 1) * units.smallSpacing - left: parent.left - right: parent.right - } - style: softwareRendering ? Text.Outline : Text.Normal - styleColor: softwareRendering ? PlasmaCore.ColorScope.backgroundColor : "transparent" //no outline, doesn't matter - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignTop - wrapMode: Text.WordWrap - font.underline: root.activeFocus - } - - MouseArea { - id: mouseArea - hoverEnabled: true - onClicked: root.clicked() - anchors.fill: parent - } - - Keys.onEnterPressed: clicked() - Keys.onReturnPressed: clicked() - Keys.onSpacePressed: clicked() - - Accessible.onPressAction: clicked() - Accessible.role: Accessible.Button - Accessible.name: label.text -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/Battery.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/Battery.qml deleted file mode 100644 index 2351c4de..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/Battery.qml +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2016 Kai Uwe Broulik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents -import org.kde.plasma.workspace.components 2.0 as PW - -Row { - spacing: units.smallSpacing - visible: pmSource.data["Battery"]["Has Cumulative"] - - PlasmaCore.DataSource { - id: pmSource - engine: "powermanagement" - connectedSources: ["Battery", "AC Adapter"] - } - - PW.BatteryIcon { - id: battery - hasBattery: pmSource.data["Battery"]["Has Battery"] || false - percent: pmSource.data["Battery"]["Percent"] || 0 - pluggedIn: pmSource.data["AC Adapter"] ? pmSource.data["AC Adapter"]["Plugged in"] : false - - height: batteryLabel.height - width: height - } - - PlasmaComponents.Label { - id: batteryLabel - font.pointSize: config.fontSize - height: undefined - text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","%1%", battery.percent) - Accessible.name: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Battery at %1%", battery.percent) - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/Clock.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/Clock.qml deleted file mode 100644 index 6e26055c..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/Clock.qml +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2016 David Edmundson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.8 -import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.1 -import org.kde.plasma.core 2.0 - -ColumnLayout { - readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software - - Label { - text: Qt.formatTime(timeSource.data["Local"]["DateTime"]) - color: ColorScope.textColor - style: softwareRendering ? Text.Outline : Text.Normal - styleColor: softwareRendering ? ColorScope.backgroundColor : "transparent" //no outline, doesn't matter - font.pointSize: 48 - Layout.alignment: Qt.AlignHCenter - } - Label { - text: Qt.formatDate(timeSource.data["Local"]["DateTime"], Qt.DefaultLocaleLongDate) - color: ColorScope.textColor - style: softwareRendering ? Text.Outline : Text.Normal - styleColor: softwareRendering ? ColorScope.backgroundColor : "transparent" //no outline, doesn't matter - font.pointSize: 24 - Layout.alignment: Qt.AlignHCenter - } - DataSource { - id: timeSource - engine: "time" - connectedSources: ["Local"] - interval: 1000 - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/KeyboardLayoutButton.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/KeyboardLayoutButton.qml deleted file mode 100644 index 32edb528..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/KeyboardLayoutButton.qml +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2014 by Daniel Vrátil * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -import QtQuick 2.1 -import QtQuick.Controls 1.1 as QQC - -import org.kde.plasma.components 2.0 as PlasmaComponents - -import org.kde.plasma.workspace.keyboardlayout 1.0 - -PlasmaComponents.ToolButton { - - property int fontSize: config.fontSize - - id: kbLayoutButton - - iconName: "input-keyboard" - implicitWidth: minimumWidth - text: layout.currentLayoutDisplayName - font.pointSize: Math.max(fontSize,theme.defaultFont.pointSize) - - Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout") - - visible: layout.layouts.length > 1 - - onClicked: layout.nextLayout() - - KeyboardLayout { - id: layout - function nextLayout() { - var layouts = layout.layouts; - var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length; - layout.currentLayout = layouts[index]; - } - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/SessionManagementScreen.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/SessionManagementScreen.qml deleted file mode 100644 index 5f882604..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/SessionManagementScreen.qml +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2016 David Edmundson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 - -import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.1 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -Item { - id: root - - /* - * Any message to be displayed to the user, visible above the text fields - */ - property alias notificationMessage: notificationsLabel.text - - /* - * A list of Items (typically ActionButtons) to be shown in a Row beneath the prompts - */ - property alias actionItems: actionItemsLayout.children - - /* - * A model with a list of users to show in the view - * The following roles should exist: - * - name - * - iconSource - * - * The following are also handled: - * - vtNumber - * - displayNumber - * - session - * - isTty - */ - property alias userListModel: userListView.model - - /* - * Self explanatory - */ - property alias userListCurrentIndex: userListView.currentIndex - property var userListCurrentModelData: userListView.currentItem === null ? [] : userListView.currentItem.m - property bool showUserList: true - - property alias userList: userListView - - property int fontSize: config.fontSize - - default property alias _children: innerLayout.children - - UserList { - id: userListView - visible: showUserList && y > 0 - anchors { - bottom: parent.verticalCenter - left: parent.left - right: parent.right - } - } - - //goal is to show the prompts, in ~16 grid units high, then the action buttons - //but collapse the space between the prompts and actions if there's no room - //ui is constrained to 16 grid units wide, or the screen - ColumnLayout { - id: prompts - anchors.top: parent.verticalCenter - anchors.topMargin: units.gridUnit * 0.5 - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - PlasmaComponents.Label { - id: notificationsLabel - font.pointSize: Math.max(fontSize + 1,theme.defaultFont.pointSize + 1) - Layout.maximumWidth: units.gridUnit * 16 - Layout.alignment: Qt.AlignHCenter - Layout.fillWidth: true - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - font.italic: true - } - ColumnLayout { - Layout.minimumHeight: implicitHeight - Layout.maximumHeight: units.gridUnit * 10 - Layout.maximumWidth: units.gridUnit * 16 - Layout.alignment: Qt.AlignHCenter - ColumnLayout { - id: innerLayout - Layout.alignment: Qt.AlignHCenter - Layout.fillWidth: true - } - Item { - Layout.fillHeight: true - } - } - Row { //deliberately not rowlayout as I'm not trying to resize child items - id: actionItemsLayout - spacing: units.largeSpacing / 2 - Layout.alignment: Qt.AlignHCenter - } - Item { - Layout.fillHeight: true - } - } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/UserDelegate.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/UserDelegate.qml deleted file mode 100644 index 960315df..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/UserDelegate.qml +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2014 David Edmundson - * Copyright 2014 Aleix Pol Gonzalez - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.8 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -Item { - id: wrapper - - // If we're using software rendering, draw outlines instead of shadows - // See https://bugs.kde.org/show_bug.cgi?id=398317 - readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software - - property bool isCurrent: true - - readonly property var m: model - property string name - property string userName - property string avatarPath - property string iconSource - property bool constrainText: true - property alias nameFontSize: usernameDelegate.font.pointSize - property int fontSize: config.fontSize - signal clicked() - - property real faceSize: Math.min(width, height - usernameDelegate.height - units.smallSpacing) - - opacity: isCurrent ? 1.0 : 0.5 - - Behavior on opacity { - OpacityAnimator { - duration: units.longDuration - } - } - - // Draw a translucent background circle under the user picture - Rectangle { - anchors.centerIn: imageSource - width: imageSource.width - 2 // Subtract to prevent fringing - height: width - radius: width / 2 - - color: PlasmaCore.ColorScope.backgroundColor - opacity: 0.6 - } - - Item { - id: imageSource - anchors { - bottom: usernameDelegate.top - bottomMargin: units.largeSpacing - horizontalCenter: parent.horizontalCenter - } - Behavior on width { - PropertyAnimation { - from: faceSize - duration: units.longDuration * 2; - } - } - width: isCurrent ? faceSize : faceSize - units.largeSpacing - height: width - - //Image takes priority, taking a full path to a file, if that doesn't exist we show an icon - Image { - id: face - source: wrapper.avatarPath - sourceSize: Qt.size(faceSize, faceSize) - fillMode: Image.PreserveAspectCrop - anchors.fill: parent - } - - PlasmaCore.IconItem { - id: faceIcon - source: iconSource - visible: (face.status == Image.Error || face.status == Image.Null) - anchors.fill: parent - anchors.margins: units.gridUnit * 0.5 // because mockup says so... - colorGroup: PlasmaCore.ColorScope.colorGroup - } - } - - ShaderEffect { - anchors { - bottom: usernameDelegate.top - bottomMargin: units.largeSpacing - horizontalCenter: parent.horizontalCenter - } - - width: imageSource.width - height: imageSource.height - - supportsAtlasTextures: true - - property var source: ShaderEffectSource { - sourceItem: imageSource - // software rendering is just a fallback so we can accept not having a rounded avatar here - hideSource: wrapper.GraphicsInfo.api !== GraphicsInfo.Software - live: true // otherwise the user in focus will show a blurred avatar - } - - property var colorBorder: PlasmaCore.ColorScope.textColor - - //draw a circle with an antialised border - //innerRadius = size of the inner circle with contents - //outerRadius = size of the border - //blend = area to blend between two colours - //all sizes are normalised so 0.5 == half the width of the texture - - //if copying into another project don't forget to connect themeChanged to update() - //but in SDDM that's a bit pointless - fragmentShader: " - varying highp vec2 qt_TexCoord0; - uniform highp float qt_Opacity; - uniform lowp sampler2D source; - - uniform lowp vec4 colorBorder; - highp float blend = 0.01; - highp float innerRadius = 0.47; - highp float outerRadius = 0.49; - lowp vec4 colorEmpty = vec4(0.0, 0.0, 0.0, 0.0); - - void main() { - lowp vec4 colorSource = texture2D(source, qt_TexCoord0.st); - - highp vec2 m = qt_TexCoord0 - vec2(0.5, 0.5); - highp float dist = sqrt(m.x * m.x + m.y * m.y); - - if (dist < innerRadius) - gl_FragColor = colorSource; - else if (dist < innerRadius + blend) - gl_FragColor = mix(colorSource, colorBorder, ((dist - innerRadius) / blend)); - else if (dist < outerRadius) - gl_FragColor = colorBorder; - else if (dist < outerRadius + blend) - gl_FragColor = mix(colorBorder, colorEmpty, ((dist - outerRadius) / blend)); - else - gl_FragColor = colorEmpty ; - - gl_FragColor = gl_FragColor * qt_Opacity; - } - " - } - - PlasmaComponents.Label { - id: usernameDelegate - font.pointSize: Math.max(fontSize + 2,theme.defaultFont.pointSize + 2) - anchors { - bottom: parent.bottom - horizontalCenter: parent.horizontalCenter - } - height: implicitHeight // work around stupid bug in Plasma Components that sets the height - width: constrainText ? parent.width : implicitWidth - text: wrapper.name - style: softwareRendering ? Text.Outline : Text.Normal - styleColor: softwareRendering ? PlasmaCore.ColorScope.backgroundColor : "transparent" //no outline, doesn't matter - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - //make an indication that this has active focus, this only happens when reached with keyboard navigation - font.underline: wrapper.activeFocus - } - - MouseArea { - anchors.fill: parent - hoverEnabled: true - - onClicked: wrapper.clicked(); - } - - Accessible.name: name - Accessible.role: Accessible.Button - function accessiblePressAction() { wrapper.clicked() } -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/UserList.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/UserList.qml deleted file mode 100644 index a2d85088..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/UserList.qml +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2014 David Edmundson - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 - -ListView { - id: view - readonly property string selectedUser: currentItem ? currentItem.userName : "" - readonly property int userItemWidth: units.gridUnit * 8 - readonly property int userItemHeight: units.gridUnit * 8 - - implicitHeight: userItemHeight - - activeFocusOnTab : true - - /* - * Signals that a user was explicitly selected - */ - signal userSelected; - - orientation: ListView.Horizontal - highlightRangeMode: ListView.StrictlyEnforceRange - - //centre align selected item (which implicitly centre aligns the rest - preferredHighlightBegin: width/2 - userItemWidth/2 - preferredHighlightEnd: preferredHighlightBegin - - delegate: UserDelegate { - avatarPath: model.icon || "" - iconSource: model.iconName || "user-identity" - - name: { - var displayName = model.realName || model.name - - if (model.vtNumber === undefined || model.vtNumber < 0) { - return displayName - } - - if (!model.session) { - return i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Nobody logged in on that session", "Unused") - } - - - var location = "" - if (model.isTty) { - location = i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "User logged in on console number", "TTY %1", model.vtNumber) - } else if (model.displayNumber) { - location = i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "User logged in on console (X display number)", "on TTY %1 (Display %2)", model.vtNumber, model.displayNumber) - } - - if (location) { - return i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Username (location)", "%1 (%2)", displayName, location) - } - - return displayName - } - - userName: model.name - - width: userItemWidth - height: userItemHeight - - //if we only have one delegate, we don't need to clip the text as it won't be overlapping with anything - constrainText: ListView.view.count > 1 - - isCurrent: ListView.isCurrentItem - - onClicked: { - ListView.view.currentIndex = index; - ListView.view.userSelected(); - } - } - - Keys.onEscapePressed: view.userSelected() - Keys.onEnterPressed: view.userSelected() - Keys.onReturnPressed: view.userSelected() -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/VirtualKeyboard.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/VirtualKeyboard.qml deleted file mode 100644 index 7848b753..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/VirtualKeyboard.qml +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************** - This file is part of the KDE project. - -Copyright (C) 2017 Martin Gräßlin - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*********************************************************************/ -import QtQuick 2.5 -import QtQuick.VirtualKeyboard 2.1 - -InputPanel { - id: inputPanel - property bool activated: false - active: activated && Qt.inputMethod.visible - visible: active - width: parent.width -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/components/WallpaperFader.qml b/x11-themes/redcore-theme-sddm/files/redcore/components/WallpaperFader.qml deleted file mode 100644 index 31dfe007..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/components/WallpaperFader.qml +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************** - This file is part of the KDE project. - -Copyright (C) 2014 Aleix Pol Gonzalez - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*********************************************************************/ - -import QtQuick 2.6 -import QtQuick.Controls 1.1 -import QtQuick.Layouts 1.1 -import QtGraphicalEffects 1.0 - -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents - -import org.kde.plasma.private.sessions 2.0 -import "../components" - -Item { - id: wallpaperFader - property Item clock - property Item mainStack - property Item footer - property alias source: wallpaperBlur.source - state: lockScreenRoot.uiVisible ? "on" : "off" - property real factor: 0 - readonly property bool lightBackground: Math.max(PlasmaCore.ColorScope.backgroundColor.r, PlasmaCore.ColorScope.backgroundColor.g, PlasmaCore.ColorScope.backgroundColor.b) > 0.5 - - Behavior on factor { - NumberAnimation { - target: wallpaperFader - property: "factor" - duration: 1000 - easing.type: Easing.InOutQuad - } - } - FastBlur { - id: wallpaperBlur - anchors.fill: parent - radius: 50 * wallpaperFader.factor - } - ShaderEffect { - id: wallpaperShader - anchors.fill: parent - supportsAtlasTextures: true - property var source: ShaderEffectSource { - sourceItem: wallpaperBlur - live: true - hideSource: true - textureMirroring: ShaderEffectSource.NoMirroring - } - - readonly property real contrast: 0.65 * wallpaperFader.factor + (1 - wallpaperFader.factor) - readonly property real saturation: 1.6 * wallpaperFader.factor + (1 - wallpaperFader.factor) - readonly property real intensity: (wallpaperFader.lightBackground ? 1.7 : 0.6) * wallpaperFader.factor + (1 - wallpaperFader.factor) - - readonly property real transl: (1.0 - contrast) / 2.0; - readonly property real rval: (1.0 - saturation) * 0.2126; - readonly property real gval: (1.0 - saturation) * 0.7152; - readonly property real bval: (1.0 - saturation) * 0.0722; - - property var colorMatrix: Qt.matrix4x4( - contrast, 0, 0, 0.0, - 0, contrast, 0, 0.0, - 0, 0, contrast, 0.0, - transl, transl, transl, 1.0).times(Qt.matrix4x4( - rval + saturation, rval, rval, 0.0, - gval, gval + saturation, gval, 0.0, - bval, bval, bval + saturation, 0.0, - 0, 0, 0, 1.0)).times(Qt.matrix4x4( - intensity, 0, 0, 0, - 0, intensity, 0, 0, - 0, 0, intensity, 0, - 0, 0, 0, 1 - )); - - - fragmentShader: " - uniform mediump mat4 colorMatrix; - uniform mediump sampler2D source; - varying mediump vec2 qt_TexCoord0; - uniform lowp float qt_Opacity; - - void main(void) - { - mediump vec4 tex = texture2D(source, qt_TexCoord0); - gl_FragColor = tex * colorMatrix * qt_Opacity; - }" - } - - states: [ - State { - name: "on" - PropertyChanges { - target: mainStack - opacity: 1 - } - PropertyChanges { - target: footer - opacity: 1 - } - PropertyChanges { - target: wallpaperFader - factor: 1 - } - PropertyChanges { - target: clock.shadow - opacity: 0 - } - }, - State { - name: "off" - PropertyChanges { - target: mainStack - opacity: 0 - } - PropertyChanges { - target: footer - opacity: 0 - } - PropertyChanges { - target: wallpaperFader - factor: 0 - } - PropertyChanges { - target: clock.shadow - opacity: 1 - } - } - ] - transitions: [ - Transition { - from: "off" - to: "on" - //Note: can't use animators as they don't play well with parallelanimations - ParallelAnimation { - NumberAnimation { - target: mainStack - property: "opacity" - duration: units.longDuration - easing.type: Easing.InOutQuad - } - NumberAnimation { - target: footer - property: "opacity" - duration: units.longDuration - easing.type: Easing.InOutQuad - } - } - }, - Transition { - from: "on" - to: "off" - ParallelAnimation { - NumberAnimation { - target: mainStack - property: "opacity" - duration: 500 - easing.type: Easing.InOutQuad - } - NumberAnimation { - target: footer - property: "opacity" - duration: 500 - easing.type: Easing.InOutQuad - } - } - } - ] -} diff --git a/x11-themes/redcore-theme-sddm/files/redcore/metadata.desktop b/x11-themes/redcore-theme-sddm/files/redcore/metadata.desktop deleted file mode 100644 index 26e37838..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/metadata.desktop +++ /dev/null @@ -1,16 +0,0 @@ -[SddmGreeterTheme] -Name=Redcore -Description=ChromeOS Theme -Author=Vince Liuice -Copyright=(c) 2020, Vince Liuice -License=CC-BY-SA -Type=sddm-theme -Version=0.1.0 -Website=https://github.com/vinceliuice/Orchis-kde -Screenshot=preview.png -MainScript=Main.qml -ConfigFile=theme.conf -TranslationsDirectory=translations -Email=vinceliuice@hotmail.com -Theme-Id=Orchis -Theme-API=2.0 diff --git a/x11-themes/redcore-theme-sddm/files/redcore/theme.conf b/x11-themes/redcore-theme-sddm/files/redcore/theme.conf deleted file mode 100644 index 53dfe0ad..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/theme.conf +++ /dev/null @@ -1,5 +0,0 @@ -[General] -type=image -color=#520A0A -fontSize=10 -background=background.jpg diff --git a/x11-themes/redcore-theme-sddm/files/redcore/theme.conf.user b/x11-themes/redcore-theme-sddm/files/redcore/theme.conf.user deleted file mode 100644 index 68c66429..00000000 --- a/x11-themes/redcore-theme-sddm/files/redcore/theme.conf.user +++ /dev/null @@ -1,2 +0,0 @@ -[General] -type=image diff --git a/x11-themes/redcore-theme-sddm/redcore-theme-sddm-314-r6.ebuild b/x11-themes/redcore-theme-sddm/redcore-theme-sddm-314-r6.ebuild deleted file mode 100644 index 9a657795..00000000 --- a/x11-themes/redcore-theme-sddm/redcore-theme-sddm-314-r6.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -EAPI=7 - -DESCRIPTION="Redcore Linux SDDM Theme" -HOMEPAGE="" -SRC_URI="" - -LICENSE="CC-BY-SA" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="" - -S="${FILESDIR}" - -src_install() { - dodir usr/share/sddm/themes - insinto usr/share/sddm/themes - doins -r ${S}/* -} -- cgit v1.2.3