Browse Source

fixes for release

c-blues
Torsten Wohlfarth 2 months ago
parent
commit
7324618a3b
47 changed files with 36 additions and 2206 deletions
  1. 3
    3
      VERSION
  2. 0
    2
      debian/c-blues-kde-livesettings.install
  3. 0
    1
      debian/c-blues-kde-livesettings.lintian-overrides
  4. 0
    28
      debian/c-blues-kde-livesettings.preinst
  5. 0
    11
      debian/c-blues-kde-livesettings.service
  6. 0
    4
      debian/c-blues-kde-settings.install
  7. 0
    43
      debian/c-blues-kde-settings.postinst
  8. 18
    0
      debian/changelog
  9. 14
    14
      debian/control
  10. 1
    1
      etc/default/grub.d/siduction.cfg
  11. 0
    80
      org.c-blues.desktop/contents/components/BreezeBlock.qml
  12. 0
    29
      org.c-blues.desktop/contents/components/BreezeHeading.qml
  13. 0
    27
      org.c-blues.desktop/contents/components/BreezeLabel.qml
  14. 0
    91
      org.c-blues.desktop/contents/components/InfoPane.qml
  15. 0
    53
      org.c-blues.desktop/contents/components/KeyboardLayoutButton.qml
  16. 0
    102
      org.c-blues.desktop/contents/components/LogoutOptions.qml
  17. 0
    191
      org.c-blues.desktop/contents/components/LogoutScreen.qml
  18. 0
    130
      org.c-blues.desktop/contents/components/UserDelegate.qml
  19. 0
    53
      org.c-blues.desktop/contents/components/UserList.qml
  20. 0
    104
      org.c-blues.desktop/contents/components/UserSelect.qml
  21. BIN
      org.c-blues.desktop/contents/components/artwork/background.png
  22. BIN
      org.c-blues.desktop/contents/components/artwork/logout_primary.svgz
  23. BIN
      org.c-blues.desktop/contents/components/artwork/restart_primary.svgz
  24. BIN
      org.c-blues.desktop/contents/components/artwork/shutdown_primary.svgz
  25. 0
    23
      org.c-blues.desktop/contents/defaults
  26. 0
    200
      org.c-blues.desktop/contents/desktopswitcher/DesktopSwitcher.qml
  27. 0
    337
      org.c-blues.desktop/contents/lockscreen/LockScreen.qml
  28. 0
    63
      org.c-blues.desktop/contents/logout/Logout.qml
  29. 0
    16
      org.c-blues.desktop/contents/metadata.desktop
  30. 0
    58
      org.c-blues.desktop/contents/osd/Osd.qml
  31. 0
    83
      org.c-blues.desktop/contents/osd/OsdItem.qml
  32. 0
    0
      org.c-blues.desktop/contents/previews/desktopswitcher.png
  33. BIN
      org.c-blues.desktop/contents/previews/lockscreen.png
  34. 0
    0
      org.c-blues.desktop/contents/previews/loginmanager.png
  35. BIN
      org.c-blues.desktop/contents/previews/preview.png
  36. 0
    0
      org.c-blues.desktop/contents/previews/runcommand.png
  37. BIN
      org.c-blues.desktop/contents/previews/splash.png
  38. 0
    0
      org.c-blues.desktop/contents/previews/userswitcher.png
  39. 0
    0
      org.c-blues.desktop/contents/previews/windowdecoration.png
  40. 0
    0
      org.c-blues.desktop/contents/previews/windowswitcher.png
  41. 0
    184
      org.c-blues.desktop/contents/runcommand/RunCommand.qml
  42. 0
    100
      org.c-blues.desktop/contents/splash/Splash.qml
  43. BIN
      org.c-blues.desktop/contents/splash/images/siduction.svgz
  44. 0
    0
      org.c-blues.desktop/contents/userswitcher/UserSwitcher.qml
  45. 0
    0
      org.c-blues.desktop/contents/windowdecoration/WindowDecoration.qml
  46. 0
    158
      org.c-blues.desktop/contents/windowswitcher/WindowSwitcher.qml
  47. 0
    17
      org.c-blues.desktop/metadata.desktop

+ 3
- 3
VERSION View File

@@ -1,6 +1,6 @@
WALLPAPER=c-blues
CODENAME=c-blues
CODENAME_SAFE=c-blues
WALLPAPER=cblues
CODENAME=C-Blues
CODENAME_SAFE=cblues
VERSION=2021.1.0
DISTRIBUTION=unstable


+ 0
- 2
debian/c-blues-kde-livesettings.install View File

@@ -1,2 +0,0 @@
live/share usr/share/c-blues-kde-settings/
kde-cheatcodes usr/share/c-blues-kde-settings

+ 0
- 1
debian/c-blues-kde-livesettings.lintian-overrides View File

@@ -1 +0,0 @@
c-blues-kde-livesettings: init.d-script-call-internal-API etc/init.d/kde-cheatcodes

+ 0
- 28
debian/c-blues-kde-livesettings.preinst View File

@@ -1,28 +0,0 @@
#!/bin/sh
# preinst script for #PACKAGE#

set -e

case "$1" in
install|upgrade)
if ! ischroot; then
if [ ! -d /fll ] ; then
echo '############################################################'
echo 'Installing this package is only allowed in live systems!'
echo 'Aborting installation.'
echo '############################################################'
exit 1
fi
fi
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac

#DEBHELPER#

exit 0

+ 0
- 11
debian/c-blues-kde-livesettings.service View File

@@ -1,11 +0,0 @@
[Unit]
Description=KDE cheatcodes in live media
ConditionPathExists=/usr/share/c-blues-kde-settings/
After=c-blues-common-livesettings.service

[Service]
Type=oneshot
ExecStart=/usr/share/c-blues-kde-settings/kde-cheatcodes start

[Install]
WantedBy=graphical.target

+ 0
- 4
debian/c-blues-kde-settings.install View File

@@ -1,4 +0,0 @@
*.js usr/share/c-blues-kde-settings
etc usr/share/c-blues-kde-settings/
usr usr/share/c-blues-kde-settings/
org.c-blues.desktop usr/share/plasma/look-and-feel

+ 0
- 43
debian/c-blues-kde-settings.postinst View File

@@ -1,43 +0,0 @@
#!/bin/sh
# postinst script for #PACKAGE#

set -e

case "$1" in
configure)
## dconf ##
cp -af /usr/share/c-blues-kde-settings/etc/dconf /etc
## grub ##
cp -af /usr/share/c-blues-kde-settings/etc/default /etc
## gtk-2.0 ##
cp -af /usr/share/c-blues-kde-settings/etc/gtk-2.0 /etc
## kde ##
cp -af /usr/share/c-blues-kde-settings/etc/kde-user-profile /etc
## policyḱit-1 ##
cp -af /usr/share/c-blues-kde-settings/etc/polkit-1 /etc
## skel ##
cp -af /usr/share/c-blues-kde-settings/etc/skel/dmrc /etc/skel/.dmrc
cp -af /usr/share/c-blues-kde-settings/etc/skel/config /etc/skel/.config
cp -af /usr/share/c-blues-kde-settings/etc/skel/gitconfig /etc/skel/.gitconfig
cp -af /usr/share/c-blues-kde-settings/etc/skel/gitignore /etc/skel/.gitignore
cp -af /usr/share/c-blues-kde-settings/etc/skel/local /etc/skel/.local
## usr ##
cp -af /usr/share/c-blues-kde-settings/usr/* /usr
## xdg ##
cp -af /usr/share/c-blues-kde-settings/etc/xdg /etc
## settings ##
dconf update
;;

abort-upgrade|abort-remove|abort-deconfigure)
;;

*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac

#DEBHELPER#

exit 0

+ 18
- 0
debian/changelog View File

@@ -1,3 +1,21 @@
cblues-kde-settings (2021.1.0-3) unstable; urgency=medium

* change name to cblues

-- Torsten Wohlfarth <towo@siduction.org> Sun, 31 Jan 2021 13:35:18 +0100

cblues-kde-settings (2021.1.0-2) unstable; urgency=medium

* fix grub config

-- Torsten Wohlfarth <towo@siduction.org> Sun, 31 Jan 2021 00:25:31 +0100

cblues-kde-settings (2021.1.0-1) unstable; urgency=medium

* fix codename safe

-- Torsten Wohlfarth <towo@siduction.org> Sat, 30 Jan 2021 23:08:49 +0100

c-blues-kde-settings (2021.1.0) unstable; urgency=medium

[ Hendrik Lehmbruch ]

+ 14
- 14
debian/control View File

@@ -1,4 +1,4 @@
Source: c-blues-kde-settings
Source: cblues-kde-settings
Section: misc
Priority: optional
Maintainer: Alf Gaida <agaida@siduction.org>
@@ -12,14 +12,14 @@ Vcs-Browser: https://git.siduction.org/extra/settings-kde
Vcs-Git: https://git.siduction.org/extra/settings-kde.git
Homepage: https://git.siduction.org/extra/settings-kde

Package: c-blues-kde-settings
Package: cblues-kde-settings
Architecture: all
Depends: ${misc:Depends},
c-blues-kde-artwork,
c-blues-sddm-settings
| c-blues-lightdm-gtk-settings
| c-blues-gdm3-settings,
c-blues-common-settings
cblues-kde-artwork,
cblues-sddm-settings
| cblues-lightdm-gtk-settings
| cblues-gdm3-settings,
cblues-common-settings
Recommends: xdg-browser-launcher
Description: KDE settings (installed mode)
Provides default settings for appearance and applications of the K Desktop
@@ -29,18 +29,18 @@ Description: KDE settings (installed mode)
configurable by the local user and don't override already existing user
profiles.

Package: c-blues-kde-livesettings
Package: cblues-kde-livesettings
Architecture: all
Depends: ${misc:Depends},
kwin-x11 | kwin-wayland,
plasma-workspace,
siduction-icons,
c-blues-kde-artwork,
c-blues-kde-settings,
c-blues-common-livesettings,
c-blues-sddm-livesettings
| c-blues-ligthdm-gtk-livesettings
| c-blues-gdm3-livesettings
cblues-kde-artwork,
cblues-kde-settings,
cblues-common-livesettings,
cblues-sddm-livesettings
| cblues-ligthdm-gtk-livesettings
| cblues-gdm3-livesettings
Description: KDE settings (live mode)
Provides default settings for appearance and applications of the K Desktop
Environment in live mode.

+ 1
- 1
etc/default/grub.d/siduction.cfg View File

@@ -1,6 +1,6 @@
GRUB_TERMINAL_OUTPUT=gfxterm
GRUB_GFXMODE=1280x1024
GRUB_GFXPAYLOAD_LINUX=1280x1024
GRUB_THEME=/usr/share/grub/themes/c-blues/theme.txt
GRUB_THEME=/usr/share/grub/themes/cblues/theme.txt

GRUB_DISTRIBUTOR="siduction 2021.1.0 c-blues (KDE)"

+ 0
- 80
org.c-blues.desktop/contents/components/BreezeBlock.qml View File

@@ -1,80 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by David Edmundson <davidedmundson@kde.org> *
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com> *
* *
* 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.Layouts 1.1
import QtQuick.Controls 1.1

import org.kde.plasma.core 2.0 as PlasmaCore

PlasmaCore.ColorScope {
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup
property alias main: mainView.sourceComponent
property alias controls: controlsView.sourceComponent
readonly property alias mainItem: mainView.item
readonly property alias controlsItem: controlsView.item

property bool canShutdown: false
property bool canReboot: false

Rectangle {
color: PlasmaCore.ColorScope.backgroundColor
opacity: 0.8
anchors {
fill: parent
}
}

Loader {
id: mainView
anchors {
margins: units.largeSpacing

left: parent.left
right: parent.right
top: parent.top
bottom: separator.top
}
}

Rectangle {
id: separator
height: 1
color: PlasmaCore.ColorScope.textColor
width: parent.width
opacity: 0.4
anchors {
margins: units.largeSpacing

bottom: controlsView.top
}
}
Loader {
id: controlsView
focus: true
anchors {
margins: units.largeSpacing

left: parent.left
right: parent.right
bottom: parent.bottom
}
}
}

+ 0
- 29
org.c-blues.desktop/contents/components/BreezeHeading.qml View File

@@ -1,29 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com> *
* Copyright (C) 2014 by Marco Martin <mart@kde.org> *
* *
* 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 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

PlasmaExtras.Heading {
level: 4
color: PlasmaCore.ColorScope.textColor
}

+ 0
- 27
org.c-blues.desktop/contents/components/BreezeLabel.qml View File

@@ -1,27 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com> *
* Copyright (C) 2014 by Marco Martin <mart@kde.org> *
* *
* 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 org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents

PlasmaComponents.Label {
color: PlasmaCore.ColorScope.textColor
}

+ 0
- 91
org.c-blues.desktop/contents/components/InfoPane.qml View File

@@ -1,91 +0,0 @@
/*
* Copyright 2014 David Edmundson <davidedmundson@kde.org>
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com>
*
* 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 org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.workspace.components 2.0 as PW

ColumnLayout {
BreezeLabel { //should be a heading but we want it _loads_ bigger
text: Qt.formatTime(timeSource.data["Local"]["DateTime"])
//we fill the width then align the text so that we can make the text shrink to fit
Layout.fillWidth: true
horizontalAlignment: Text.AlignRight

font.weight: Font.DemiBold
fontSizeMode: Text.HorizontalFit
font.pointSize: 36
}

BreezeLabel {
text: Qt.formatDate(timeSource.data["Local"]["DateTime"], Qt.DefaultLocaleLongDate);
Layout.alignment: Qt.AlignRight
}

RowLayout {
Layout.alignment: Qt.AlignRight
visible: pmSource.data["Battery"]["Has Cumulative"]

PW.BatteryIcon {
id: battery
hasBattery: true
percent: pmSource.data["Battery"]["Percent"]
pluggedIn: pmSource.data["AC Adapter"] ? pmSource.data["AC Adapter"]["Plugged in"] : false

height: batteryLabel.height
width: batteryLabel.height
}

BreezeLabel {
id: batteryLabel
text: {
var state = pmSource.data["Battery"] ? pmSource.data["Battery"]["State"] : "";
switch(state) {
case "Charging":
return i18nd("plasma_lookandfeel_org.kde.lookandfeel","%1%. Charging", battery.percent)
case "FullyCharged":
return i18nd("plasma_lookandfeel_org.kde.lookandfeel","Fully charged")
default:
return i18nd("plasma_lookandfeel_org.kde.lookandfeel","%1% battery remaining", battery.percent)
}
}
Layout.alignment: Qt.AlignRight
wrapMode: Text.Wrap
}
}

PlasmaCore.DataSource {
id: pmSource
engine: "powermanagement"
connectedSources: ["Battery", "AC Adapter"]
}

PlasmaCore.DataSource {
id: timeSource
engine: "time"
connectedSources: ["Local"]
interval: 1000
}

}

+ 0
- 53
org.c-blues.desktop/contents/components/KeyboardLayoutButton.qml View File

@@ -1,53 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Daniel Vrátil <dvratil@redhat.com> *
* *
* 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 org.kde.plasma.components 2.0 as PlasmaComponents

import org.kde.plasma.workspace.keyboardlayout 1.0

PlasmaComponents.Button {
id: kbLayoutButton
// flat: false
// checkable: false
activeFocusOnTab: true
implicitWidth: minimumWidth
text: layout.currentLayout

Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout")

onClicked: {
layout.nextLayout();
}

visible: layout.layouts.length > 1


KeyboardLayout {
id: layout

function nextLayout() {
var layouts = layout.layouts;
var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length;

layout.currentLayout = layouts[index];
}
}
}

+ 0
- 102
org.c-blues.desktop/contents/components/LogoutOptions.qml View File

@@ -1,102 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com> *
* Copyright (C) 2014 by Marco Martin <mart@kde.org> *
* *
* 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.Layouts 1.1

import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents


PlasmaComponents.ButtonRow {
id: root
spacing: 0

property bool canReboot
property bool canShutdown
property bool canLogout
property string mode
onModeChanged: {
switch (mode) {
case "reboot":
restartButton.checked = true;
break;
case "shutdown":
shutdownButton.checked = true;
break;
case "logout":
logoutButton.checked = true;
break;
default:
restartButton.checked = false;
shutdownButton.checked = false;
logoutButton.checked = false;
break;
}
}

//Don't show the buttons if there's nothing to click
visible: !exclusive || (canReboot+canShutdown+canLogout)>1

PlasmaComponents.ToolButton {
id: restartButton
flat: false
iconSource: "system-reboot"
visible: root.canReboot
checkable: true
Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to restart the computer", "Reboot")
activeFocusOnTab: true

onClicked: {
root.mode = "reboot"
}
}

PlasmaComponents.ToolButton {
id: shutdownButton
flat: false
iconSource: "system-shutdown"
visible: root.canShutdown
checkable: true
Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to shut down the computer", "Shutdown")
activeFocusOnTab: true

onClicked: {
root.mode = "shutdown"
}

}

PlasmaComponents.ToolButton {
id: logoutButton
flat: false
iconSource: "system-log-out"
visible: root.canLogout
checkable: true
Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to log out of the desktop session", "Log out")
activeFocusOnTab: true

onClicked: {
root.mode = "logout"
}

}
}


+ 0
- 191
org.c-blues.desktop/contents/components/LogoutScreen.qml View File

@@ -1,191 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com> *
* *
* 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.Layouts 1.1
import QtQuick.Controls 1.1 as Controls

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

BreezeBlock {
id: root
property string mode: "shutdown"
property var currentAction
property real timeout: 30
property real remainingTime: root.timeout
property bool canReboot
property bool canLogout
property bool canShutdown
onModeChanged: remainingTime = root.timeout

signal cancel()
signal shutdownRequested()
signal rebootRequested()

Controls.Action {
onTriggered: root.cancel()
shortcut: "Escape"
}

onRemainingTimeChanged: {
if(remainingTime<0)
root.currentAction()
}
Timer {
running: true
repeat: true
interval: 1000
onTriggered: remainingTime--
}

main: ColumnLayout {
spacing: 0
BreezeHeading {
id: actionLabel
Layout.alignment: Qt.AlignHCenter
}

Item { height: units.largeSpacing }

PlasmaCore.IconItem {
id: actionIcon
Layout.alignment: Qt.AlignHCenter
Layout.fillHeight: true
Layout.minimumWidth: height
Layout.maximumWidth: height
colorGroup: PlasmaCore.ColorScope.colorGroup
opacity: actionIconMouse.containsMouse ? 1 : 0.7
MouseArea {
id: actionIconMouse
hoverEnabled: true
anchors.fill: parent
onClicked: root.currentAction();
}
}

PlasmaComponents.ProgressBar {
id: progressBar
Layout.alignment: Qt.AlignHCenter
anchors.horizontalCenter: parent.horizontalCenter

//wanted to use actionIcon.paintedWidth but it doesn't work well when the image changes
width: units.largeSpacing*7
minimumValue: 0
maximumValue: root.timeout
value: root.remainingTime
}

BreezeLabel {
anchors.horizontalCenter: progressBar.horizontalCenter
text: i18ndp("plasma_lookandfeel_org.kde.lookandfeel", "in 1 second", "in %1 seconds", root.remainingTime);
}

state: mode
states: [
State {
name: "shutdown"
PropertyChanges { target: root; currentAction: shutdownRequested }
PropertyChanges { target: actionLabel; text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shutting down") }
PropertyChanges { target: actionIcon; source: "system-shutdown" }
},
State {
name: "logout"
PropertyChanges { target: root; currentAction: logoutRequested }
PropertyChanges { target: actionLabel; text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Logging out") }
PropertyChanges { target: actionIcon; source: "system-log-out" }
},
State {
name: "reboot"
PropertyChanges { target: root; currentAction: rebootRequested }
PropertyChanges { target: actionLabel; text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Rebooting") }
PropertyChanges { target: actionIcon; source: "system-reboot" }
}
]
}

controls: Item {
Layout.fillWidth: true
height: buttons.height

RowLayout {
id: buttons
anchors.centerIn: parent

PlasmaComponents.Button {
id: cancelButton
text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Cancel")
onClicked: root.cancel()
Layout.preferredWidth: Math.max(commitButton.implicitWidth, cancelButton.implicitWidth)
}

PlasmaComponents.Button {
id: commitButton
Layout.preferredWidth: Math.max(commitButton.implicitWidth, cancelButton.implicitWidth)
onClicked: root.currentAction()
focus: true

function trigger() {
if (commitButton.activeFocus) {
root.currentAction()
}
}

Controls.Action {
onTriggered: commitButton.trigger()
shortcut: "Return"
}
Controls.Action {
onTriggered: commitButton.trigger()
shortcut: "Enter" // on numpad
}
}
}

LogoutOptions {
id: logoutOptions
anchors.right: parent.right
anchors.rightMargin: 5
canReboot: root.canReboot
canLogout: root.canLogout
canShutdown: root.canShutdown
onModeChanged: root.mode = mode

exclusive: true
Component.onCompleted: mode = root.mode;
}

state: mode
states: [
State {
name: "shutdown"
PropertyChanges { target: commitButton; text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Shut down") }
},
State {
name: "logout"
PropertyChanges { target: commitButton; text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Log out") }
},
State {
name: "reboot"
PropertyChanges { target: commitButton; text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Reboot") }
}
]
}
}

+ 0
- 130
org.c-blues.desktop/contents/components/UserDelegate.qml View File

@@ -1,130 +0,0 @@
/*
* Copyright 2014 David Edmundson <davidedmundson@kde.org>
* Copyright 2014 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
*
* 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

Item {
id: wrapper

property bool isCurrent: ListView.isCurrentItem

property string name
property string userName
property string iconSource
property int faceSize: frame.width

signal clicked()

height: faceSize + loginText.implicitHeight

opacity: isCurrent ? 1.0 : 0.618

Behavior on opacity {
NumberAnimation { duration: 250 }
}

Item {
id: imageWrapper
anchors {
top: parent.top
left: parent.left
right: parent.right
}

height: parent.height - loginText.height

//TODO there code was to show a blue border on mouseover
//which shows that something is interactable.
//we can't have that whilst using widgets/background as the base
//I'd quite like it back

PlasmaCore.FrameSvgItem {
id: frame
imagePath: "widgets/background"

//width is set in alias at top
width: Math.round(faceSize * (isCurrent ? 1.0 : 0.8))
height: width

Behavior on width {
NumberAnimation {
duration: 100
}
}
anchors {
centerIn: parent
}
}

//we sometimes have a path to an image sometimes an icon
//IconItem in it's infinite wisdom tries to load a full path as an icon which is rubbish
//we try loading it as a normal image, if that fails we fall back to IconItem
Image {
id: face
source: wrapper.iconSource
anchors {
fill: frame
//negative to make frame around the image
topMargin: frame.margins.top
leftMargin: frame.margins.left
rightMargin: frame.margins.right
bottomMargin: frame.margins.bottom
}
}

PlasmaCore.IconItem {
id: faceIcon
source: wrapper.iconSource
visible: face.status == Image.Error
anchors.fill: face
}
}

BreezeLabel {
id: loginText
anchors {
bottom: parent.bottom
left: parent.left
right: parent.right
}
text: wrapper.name
elide: Text.ElideRight
horizontalAlignment: Text.AlignHCenter
maximumLineCount: 2
wrapMode: Text.Wrap
//make an indication that this has active focus, this only happens when reached with text navigation
font.underline: wrapper.activeFocus
height: Math.round(Math.max(paintedHeight, theme.mSize(theme.defaultFont).height*1.2))
}

MouseArea {
anchors.fill: parent
hoverEnabled: true

onClicked: wrapper.clicked();
}

Accessible.name: name
Accessible.role: Accessible.Button
function accessiblePressAction() { wrapper.clicked() }
}

+ 0
- 53
org.c-blues.desktop/contents/components/UserList.qml View File

@@ -1,53 +0,0 @@
/*
* Copyright 2014 David Edmundson <davidedmundson@kde.org>
*
* 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.largeSpacing * 8
readonly property int userItemHeight: units.largeSpacing * 8
readonly property int userFaceSize: units.largeSpacing * 6

/*
* Signals that a user was explicitly selected
*/
signal userSelected;

orientation: ListView.Horizontal
highlightRangeMode: ListView.StrictlyEnforceRange

delegate: UserDelegate {
name: (model.realName === "") ? model.name : model.realName
userName: model.name || ""
iconSource: model.icon ? model.icon : "user-identity"
width: view.userItemWidth
faceSize: view.userFaceSize

onClicked: {
view.currentIndex = index;
view.userSelected();
}
}

Keys.onEscapePressed: view.userSelected()
Keys.onEnterPressed: view.userSelected()
Keys.onReturnPressed: view.userSelected()
}

+ 0
- 104
org.c-blues.desktop/contents/components/UserSelect.qml View File

@@ -1,104 +0,0 @@
/*
* Copyright 2014 David Edmundson <davidedmundson@kde.org>
*
* 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 org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents

FocusScope {
id: root
property alias model: usersList.model
property alias selectedUser: usersList.selectedUser
property alias selectedIndex: usersList.currentIndex
property alias delegate: usersList.delegate
property alias notification: notificationLabel.text

activeFocusOnTab: true

function incrementCurrentIndex() {
usersList.incrementCurrentIndex();
}

function decrementCurrentIndex() {
usersList.decrementCurrentIndex()
}

InfoPane {
id: infoPane
anchors {
verticalCenter: usersList.verticalCenter
right: usersList.left
left: parent.left
}
}

UserList {
id: usersList

focus: true

Rectangle {//debug
visible: debug
border.color: "red"
border.width: 1
anchors.fill: parent
color: "#00000000"
z:-1000
}

anchors {
top: parent.top
left: parent.horizontalCenter
right: parent.right

leftMargin: -userItemWidth*1.5 //allow 1 item to the left of the centre (the half is to fit the item that will go in the centre)
}
clip: true
height: userItemHeight
cacheBuffer: 1000

//highlight the item in the middle. The actual list view starts -1.5 userItemWidths so this moves the highlighted item to the centre
preferredHighlightBegin: userItemWidth * 1
preferredHighlightEnd: userItemWidth * 2

onUserSelected: {
nextItemInFocusChain().forceActiveFocus();
}
}

BreezeLabel {
id: notificationLabel
anchors {
top: usersList.bottom
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
margins: units.largeSpacing
}

width: usersList.userItemWidth * 3 //don't pass the infoPane
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
maximumLineCount: 1
wrapMode: Text.Wrap

font.weight: Font.Bold
}
}

BIN
org.c-blues.desktop/contents/components/artwork/background.png View File


BIN
org.c-blues.desktop/contents/components/artwork/logout_primary.svgz View File


BIN
org.c-blues.desktop/contents/components/artwork/restart_primary.svgz View File


BIN
org.c-blues.desktop/contents/components/artwork/shutdown_primary.svgz View File


+ 0
- 23
org.c-blues.desktop/contents/defaults View File

@@ -1,23 +0,0 @@
[kdeglobals][KDE]
widgetStyle=breeze

[kdeglobals][General]
ColorScheme=Breeze

[kdeglobals][Icons]
Theme=breeze

[plasmarc][Theme]
name==org.c-blues.desktop

[kcminputrc][Mouse]
cursorTheme=breeze_cursors

[kwinrc][WindowSwitcher]
LayoutName=org.c-blues.desktop

[kwinrc][DesktopSwitcher]
LayoutName=org.c-blues.desktop

[kwinrc][LockScreen]
LayoutName=org.c-blues.desktop

+ 0
- 200
org.c-blues.desktop/contents/desktopswitcher/DesktopSwitcher.qml View File

@@ -1,200 +0,0 @@
/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.

Copyright (C) 2012 Martin Gräßlin <mgraesslin@kde.org>

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 <http://www.gnu.org/licenses/>.
*********************************************************************/
import QtQuick 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.kquickcontrolsaddons 2.0
import org.kde.kwin 2.0 as KWin

KWin.Switcher {
id: tabBox
currentIndex: listView.currentIndex
property bool allDesktops: true
property int textMargin: 2

PlasmaCore.Dialog {
id: dialog
location: PlasmaCore.Types.Floating
visible: tabBox.visible
flags: Qt.X11BypassWindowManagerHint
x: tabBox.screenGeometry.x + tabBox.screenGeometry.width * 0.5 - dialogMainItem.width * 0.5
y: tabBox.screenGeometry.y + tabBox.screenGeometry.height * 0.5 - dialogMainItem.height * 0.5

mainItem: Item {
id: dialogMainItem
property int optimalWidth: listView.maxRowWidth
property int optimalHeight: listView.rowHeight * listView.count + clientArea.height + 4
property bool canStretchX: true
property bool canStretchY: false
width: Math.min(Math.max(tabBox.screenGeometry.width * 0.2, optimalWidth), tabBox.screenGeometry.width * 0.8)
height: Math.min(optimalHeight, tabBox.screenGeometry.height * 0.8)

// just to get the margin sizes
PlasmaCore.FrameSvgItem {
id: hoverItem
imagePath: "widgets/viewitem"
prefix: "hover"
visible: false
}

// delegate
Component {
id: listDelegate
Item {
id: delegateItem
width: listView.width
height: listView.rowHeight
QIconItem {
id: iconElement
icon: "user-desktop"
width: 32
height: 32
anchors {
topMargin: (listView.rowHeight - 32) / 2
left: parent.left
top: parent.top
leftMargin: hoverItem.margins.left
}
}
Text {
id: captionItem
horizontalAlignment: Text.AlignHCenter
text: display
font.bold: true
color: theme.textColor
elide: Text.ElideMiddle
anchors {
left: iconElement.right
right: parent.right
top: parent.top
topMargin: tabBox.textMargin + hoverItem.margins.top
rightMargin: hoverItem.margins.right
leftMargin: tabBox.textMargin
}
}
MouseArea {
anchors.fill: parent
onClicked: {
listView.currentIndex = index;
}
}
}
}
ListView {
function calculateMaxRowWidth() {
var width = 0;
var textElement = Qt.createQmlObject(
'import QtQuick 2.0;'
+ 'Text {\n'
+ ' text: "' + tabBox.model.longestCaption() + '"\n'
+ ' font.bold: true\n'
+ ' visible: false\n'
+ '}',
listView, "calculateMaxRowWidth");
width = Math.max(textElement.width, width);
textElement.destroy();
return width + 32 + hoverItem.margins.right + hoverItem.margins.left;
}
/**
* Calculates the height of one row based on the text height and icon size.
* @return Row height
**/
function calcRowHeight() {
var textElement = Qt.createQmlObject(
'import QtQuick 2.0;'
+ 'Text {\n'
+ ' text: "Some Text"\n'
+ ' font.bold: true\n'
+ ' visible: false\n'
+ '}',
listView, "calcRowHeight");
var height = textElement.height;
textElement.destroy();
// icon size or two text elements and margins and hoverItem margins
return Math.max(32, height + tabBox.textMargin * 2 + hoverItem.margins.top + hoverItem.margins.bottom);
}
id: listView
model: tabBox.model
// the maximum text width + icon item width (32 + 4 margin) + margins for hover item
property int maxRowWidth: calculateMaxRowWidth()
property int rowHeight: calcRowHeight()
anchors {
top: parent.top
left: parent.left
right: parent.right
bottom: clientArea.top
bottomMargin: clientArea.topMargin
}
clip: true
delegate: listDelegate
highlight: PlasmaCore.FrameSvgItem {
id: highlightItem
imagePath: "widgets/viewitem"
prefix: "hover"
width: listView.width
}
highlightMoveDuration: 250
boundsBehavior: Flickable.StopAtBounds
Connections {
target: tabBox
onCurrentIndexChanged: {listView.currentIndex = tabBox.currentIndex;}
}
}
Component {
id: clientIconDelegate
QIconItem {
icon: model.icon
width: 16
height: 16
}
}
Item {
id: clientArea
VisualDataModel {
property alias desktopIndex: listView.currentIndex
id: desktopClientModel
model: tabBox.model
delegate: clientIconDelegate
onDesktopIndexChanged: {
desktopClientModel.rootIndex = desktopClientModel.parentModelIndex();
desktopClientModel.rootIndex = desktopClientModel.modelIndex(desktopClientModel.desktopIndex);
}
}
ListView {
id: iconsListView
model: desktopClientModel
clip: true
orientation: ListView.Horizontal
spacing: 4
anchors {
fill: parent
leftMargin: 34
}
}
height: 18
anchors {
left: parent.left
right: parent.right
bottom: parent.bottom
topMargin: 2
}
}
}
}
}

+ 0
- 337
org.c-blues.desktop/contents/lockscreen/LockScreen.qml View File

@@ -1,337 +0,0 @@
/********************************************************************
This file is part of the KDE project.

Copyright (C) 2014 Aleix Pol Gonzalez <aleixpol@blue-systems.com>

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 <http://www.gnu.org/licenses/>.
*********************************************************************/

import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.1
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.kscreenlocker 1.0
import org.kde.plasma.workspace.keyboardlayout 1.0
import "../components"
import "../osd"

Image {
id: root
property bool debug: false
property string notification
property UserSelect userSelect: null
signal clearPassword()

source: backgroundPath || "../components/artwork/background.png"
fillMode: Image.Stretch

onStatusChanged: {
if (status == Image.Error) {
source = "../components/artwork/background.png";
}
}

Connections {
target: authenticator
onFailed: {
root.notification = i18nd("plasma_lookandfeel_org.kde.lookandfeel","Unlocking failed");
}
onGraceLockedChanged: {
if (!authenticator.graceLocked) {
root.notification = "";
root.clearPassword();
}
}
onMessage: {
root.notification = msg;
}
onError: {
root.notification = err;
}
}
Sessions {
id: sessions
}

PlasmaCore.DataSource {
id: keystateSource
engine: "keystate"
connectedSources: "Caps Lock"
}

StackView {
id: stackView
height: units.largeSpacing * 14
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
right: parent.right
}

initialItem: BreezeBlock {
id: block
main: UserSelect {
id: usersSelection

onVisibleChanged: {
if(visible) {
currentIndex = 0;
}
}
Component.onCompleted: root.userSelect = usersSelection

notification: {
var text = ""
if (keystateSource.data["Caps Lock"]["Locked"]) {
text += i18nd("plasma_lookandfeel_org.kde.lookandfeel","Caps Lock is on")
if (root.notification) {
text += " • "
}
}
text += root.notification
return text
}

model: ListModel {
id: users

Component.onCompleted: {
users.append({name: kscreenlocker_userName,
realName: kscreenlocker_userName,
icon: kscreenlocker_userImage,
showPassword: true,
ButtonLabel: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Unlock"),
ButtonAction: "unlock"
})
if(sessions.startNewSessionSupported) {
users.append({realName: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "New Session"),
icon: "system-log-out", //TODO Need an icon for new session
ButtonLabel: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Create Session"),
ButtonAction: "newSession"
})
}
if(sessions.switchUserSupported) {
users.append({realName: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Change Session"),
icon: "system-switch-user",
ButtonLabel: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Change Session..."),
ButtonAction: "changeSession"
})
}
}
}
}

controls: Item {
height: childrenRect.height
Layout.fillWidth: true
function unlockFunction() {
authenticator.tryUnlock(passwordInput.text);
}

ColumnLayout {
anchors.horizontalCenter: parent.horizontalCenter
RowLayout {
anchors.horizontalCenter: parent.horizontalCenter

KeyboardLayoutButton {}

PlasmaComponents.TextField {
id: passwordInput
placeholderText: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Password")
echoMode: TextInput.Password
enabled: !authenticator.graceLocked
onAccepted: actionButton.clicked(null)
focus: true
//HACK: Similar hack is needed in sddm loginscreen
//TODO: investigate
Timer {
interval: 200
running: true
repeat: false
onTriggered: passwordInput.forceActiveFocus()
}
visible: block.mainItem.model.count > 0 ? !!block.mainItem.model.get(block.mainItem.selectedIndex).showPassword : false
onVisibleChanged: {
if (visible) {
forceActiveFocus();
}
text = "";
}
onTextChanged: {
if (text == "") {
clearTimer.stop();
} else {
clearTimer.restart();
}
}

Keys.onLeftPressed: {
if (text == "") {
root.userSelect.decrementCurrentIndex();
} else {
event.accepted = false;
}
}
Keys.onRightPressed: {
if (text == "") {
root.userSelect.incrementCurrentIndex();
} else {
event.accepted = false;
}
}
Timer {
id: clearTimer
interval: 30000
repeat: false
onTriggered: {
passwordInput.text = "";
}
}
}

PlasmaComponents.Button {
id: actionButton
Layout.minimumWidth: passwordInput.width
text: block.mainItem.model.count > 0 ? block.mainItem.model.get(block.mainItem.selectedIndex).ButtonLabel : ""
enabled: !authenticator.graceLocked
onClicked: switch(block.mainItem.model.get(block.mainItem.selectedIndex)["ButtonAction"]) {
case "unlock":
unlockFunction();
break;
case "newSession":
sessions.startNewSession();
break;
case "changeSession":
stackView.push(changeSessionComponent)
break;
}
}

Connections {
target: root
onClearPassword: {
passwordInput.selectAll();
passwordInput.forceActiveFocus();
}
}
Keys.onLeftPressed: {
root.userSelect.decrementCurrentIndex();
}
Keys.onRightPressed: {
root.userSelect.incrementCurrentIndex();
}
}
}

Component {
id: changeSessionComponent
BreezeBlock {
id: selectSessionBlock

Action {
onTriggered: stackView.pop()
shortcut: "Escape"
}

main: UserSelect {
id: sessionSelect

model: sessions.model
delegate: UserDelegate {
name: i18nd("plasma_lookandfeel_org.kde.lookandfeel","%1 (%2)", model.session, model.location)
userName: model.session
iconSource: "user-identity"
width: ListView.view.userItemWidth
height: ListView.view.userItemHeight
faceSize: ListView.view.userFaceSize

onClicked: {
ListView.view.currentIndex = index;
ListView.view.forceActiveFocus();
}
}
}

controls: Item {
height: childrenRect.height
RowLayout {
anchors.centerIn: parent
PlasmaComponents.Button {
text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Cancel")
onClicked: stackView.pop()
}
PlasmaComponents.Button {
text: i18nd("plasma_lookandfeel_org.kde.lookandfeel","Change Session")
onClicked: {
sessions.activateSession(selectSessionBlock.mainItem.selectedIndex)
stackView.pop()
userSelect.selectedIndex = 0;
}
}
}
}
}
}
}
}
}
PlasmaCore.FrameSvgItem {
id: osd

// OSD Timeout in msecs - how long it will stay on the screen
property int timeout: 1800
// This is either a text or a number, if showingProgress is set to true,
// the number will be used as a value for the progress bar
property var osdValue
// Icon name to display
property string icon
// Set to true if the value is meant for progress bar,
// false for displaying the value as normal text
property bool showingProgress: false

anchors {
horizontalCenter: parent.horizontalCenter
bottom: parent.bottom
}

objectName: "onScreenDisplay"
visible: false
width: osdItem.width + margins.left + margins.right
height: osdItem.height + margins.top + margins.bottom
imagePath: "widgets/background"

function show() {
osd.visible = true;
hideTimer.restart();
}

OsdItem {
id: osdItem
rootItem: osd

anchors.centerIn: parent
}

Timer {
id: hideTimer
interval: osd.timeout
onTriggered: {
osd.visible = false;
osd.icon = "";
osd.osdValue = 0;
}
}
}
}

+ 0
- 63
org.c-blues.desktop/contents/logout/Logout.qml View File

@@ -1,63 +0,0 @@
/***************************************************************************
* Copyright (C) 2014 by Aleix Pol Gonzalez <aleixpol@blue-systems.com> *
* *
* 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 "../components"

Item {
id: root
height: units.largeSpacing*14
width: screenGeometry.width

signal logoutRequested()
signal haltRequested()
signal suspendRequested(int spdMethod)
signal rebootRequested()
signal rebootRequested2(int opt)
signal cancelRequested()
signal lockScreenRequested()

LogoutScreen {
anchors.fill: parent

mode: switch (sdtype) {
case ShutdownType.ShutdownTypeNone:
return "logout";
case ShutdownType.ShutdownTypeHalt:
return maysd ? "shutdown" : "logout";
case ShutdownType.ShutdownTypeReboot:
return maysd ? "reboot" : "logout";
default:
return "logout";
}

onShutdownRequested: {
root.haltRequested()
}

onRebootRequested: {
root.rebootRequested()
}
canShutdown: maysd && choose
canReboot: maysd && choose
canLogout: true

onCancel: root.cancelRequested()
}
}

+ 0
- 16
org.c-blues.desktop/contents/metadata.desktop View File

@@ -1,16 +0,0 @@
[SddmGreeterTheme]
Name=c-blues
Description=Siduction c-blues Theme
Author=Hendrik Lehmbruch
Copyright=2015-2021, Hendrik Lehmbruch
License=CC-BY-SA
Type=sddm-theme
Version=0.1
Website=https://github.com/sddm/sddm
Screenshot=breeze.jpg
MainScript=Main.qml
ConfigFile=theme.conf
TranslationsDirectory=translations
Email=hendrikl@siduction.org
Theme-Id=c-blues
Theme-API=2.0

+ 0
- 58
org.c-blues.desktop/contents/osd/Osd.qml View File

@@ -1,58 +0,0 @@
/*
* Copyright 2014 Martin Klapetek <mklapetek@kde.org>
*
* 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 <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import QtQuick.Window 2.2
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 PlasmaExtra

PlasmaCore.Dialog {
id: root
location: PlasmaCore.Types.Floating
type: PlasmaCore.Dialog.OnScreenDisplay
outputOnly: true

// OSD Timeout in msecs - how long it will stay on the screen
property int timeout: 1800
// This is either a text or a number, if showingProgress is set to true,
// the number will be used as a value for the progress bar
property var osdValue
// Icon name to display
property string icon
// Set to true if the value is meant for progress bar,
// false for displaying the value as normal text
property bool showingProgress: false

property bool animateOpacity: false

Behavior on opacity {
SequentialAnimation {
// prevent press and hold from flickering
PauseAnimation { duration: 100 }
NumberAnimation {
duration: root.timeout
easing.type: Easing.InQuad
}
}
enabled: root.animateOpacity
}

mainItem: OsdItem {
rootItem: root
}
}

+ 0
- 83
org.c-blues.desktop/contents/osd/OsdItem.qml View File

@@ -1,83 +0,0 @@
/*
* Copyright 2014 Martin Klapetek <mklapetek@kde.org>
*
* 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 <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.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 PlasmaExtra
import QtQuick.Window 2.2

Item {
property QtObject rootItem
height: Math.min(units.gridUnit * 15, Screen.desktopAvailableHeight / 5)
width: height

// /--------------------\
// | spacing |
// | /----------------\ |
// | | | |
// | | icon | |
// | | | |
// | | | |
// | \----------------/ |
// | spacing |
// | [progressbar/text] |
// | spacing |
// \--------------------/

PlasmaCore.IconItem {
id: icon

height: parent.height - progressBar.height - ((units.smallSpacing/2) * 3) //it's an svg
width: parent.width

source: rootItem.icon
}

PlasmaComponents.ProgressBar {
id: progressBar

anchors {
bottom: parent.bottom
left: parent.left
right: parent.right
margins: Math.floor(units.smallSpacing / 2)
}

visible: rootItem.showingProgress
minimumValue: 0
maximumValue: 100

value: Number(rootItem.osdValue)
}
PlasmaExtra.Heading {
anchors {
bottom: parent.bottom
left: parent.left
right: parent.right
margins: Math.floor(units.smallSpacing / 2)
}

visible: !rootItem.showingProgress
text: rootItem.showingProgress ? "" : (rootItem.osdValue ? rootItem.osdValue : "")
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.NoWrap
elide: Text.ElideLeft
minimumPointSize: theme.defaultFont.pointSize
fontSizeMode: Text.HorizontalFit
}
}

+ 0
- 0
org.c-blues.desktop/contents/previews/desktopswitcher.png View File


BIN
org.c-blues.desktop/contents/previews/lockscreen.png View File


+ 0
- 0
org.c-blues.desktop/contents/previews/loginmanager.png View File


BIN
org.c-blues.desktop/contents/previews/preview.png View File


+ 0
- 0
org.c-blues.desktop/contents/previews/runcommand.png View File


BIN
org.c-blues.desktop/contents/previews/splash.png View File


+ 0
- 0
org.c-blues.desktop/contents/previews/userswitcher.png View File


+ 0
- 0
org.c-blues.desktop/contents/previews/windowdecoration.png View File


+ 0
- 0
org.c-blues.desktop/contents/previews/windowswitcher.png View File


+ 0
- 184
org.c-blues.desktop/contents/runcommand/RunCommand.qml View File

@@ -1,184 +0,0 @@
/*
* Copyright 2014 Marco Martin <mart@kde.org>
*
* 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 <http://www.gnu.org/licenses/>.
*/

import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
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 org.kde.milou 0.1 as Milou

ColumnLayout {
id: root
property string query
property string runner
property bool showHistory: false

onQueryChanged: {
queryField.text = query;
}

Connections {
target: runnerWindow
onVisibleChanged: {
if (runnerWindow.visible) {
queryField.forceActiveFocus();
listView.currentIndex = -1
} else {
root.query = "";
root.showHistory = false
}
}
}

RowLayout {
Layout.alignment: Qt.AlignTop
PlasmaComponents.ToolButton {
iconSource: "configure"
onClicked: {
runnerWindow.visible = false
runnerWindow.displayConfiguration()
}
Accessible.name: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Configure")
Accessible.description: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Configure Search Plugins")
}
PlasmaComponents.TextField {
id: queryField
property bool allowCompletion: false

clearButtonShown: true
Layout.minimumWidth: units.gridUnit * 25

activeFocusOnPress: true

onTextChanged: {
root.query = queryField.text
if (allowCompletion && length > 0) {
var history = runnerWindow.history
var candidate = ""
var shortest = ""

for (var i = 0, j = history.length; i < j; ++i) {
var item = history[i]

if (item.toLowerCase().indexOf(text.toLowerCase()) === 0) {
if (candidate.length > 0) {
if (item.length < candidate.length) {
candidate = item
}

shortest = shortest.substring(0, item.length, shortest.length)
} else {
candidate = item
shortest = item
}
}
}

if (candidate.length > 0) {
var oldText = text
text = candidate
select(text.length, oldText.length)
}
}
}
Keys.onPressed: allowCompletion = (event.key !== Qt.Key_Backspace && event.key !== Qt.Key_Delete)
Keys.onUpPressed: {
if (length === 0) {
root.showHistory = true
}
}
Keys.onDownPressed: {
if (length === 0) {
root.showHistory = true
}
}

Keys.onEscapePressed: {
runnerWindow.visible = false
}
Keys.forwardTo: [listView, results]
}
PlasmaComponents.ToolButton {
iconSource: "window-close"
onClicked: runnerWindow.visible = false
Accessible.name: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Close")
Accessible.description: i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Close Search")
}
}

PlasmaExtras.ScrollArea {
Layout.alignment: Qt.AlignTop
visible: results.count > 0
enabled: visible
Layout.fillWidth: true
Layout.preferredHeight: Math.min(Screen.height, results.contentHeight)

Milou.ResultsView {
id: results
queryString: root.query
runner: root.runner

onActivated: {
runnerWindow.addToHistory(queryString)
runnerWindow.visible = false
}

onUpdateQueryString: {
queryField.text = text
queryField.cursorPosition = cursorPosition
}
}
}

PlasmaExtras.ScrollArea {
Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
visible: root.query.length === 0 && listView.count > 0
// don't accept keyboard input when not visible so the keys propagate to the other list
enabled: visible
Layout.preferredHeight: Math.min(Screen.height, listView.contentHeight)

ListView {
id: listView // needs this id so the delegate can access it
keyNavigationWraps: true
highlight: PlasmaComponents.Highlight {}
highlightMoveDuration: 0
// we store 50 entries in the history but only show 20 in the UI so it doesn't get too huge
model: root.showHistory ? runnerWindow.history.slice(0, 20) : []
delegate: Milou.ResultDelegate {
id: resultDelegate
width: listView.width
typeText: index === 0 ? i18nd("plasma_lookandfeel_org.kde.lookandfeel", "Recent Queries") : ""
}

Keys.onReturnPressed: runCurrentIndex()
Keys.onEnterPressed: runCurrentIndex()