Move UtilitiesPage and media_keys into separate folder
The QML at the moment is a giant mess. Moving pages into individual folders and properly abstracting the sub components of the pages will allow for much easier development and better error messages. Additionally it will prevent polluting the global namespace. Really, all the reasons for avoiding globally available values and using abstractions in regular programming also come into play here.
This commit is contained in:
@@ -0,0 +1,393 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import matzman666.advsettings 1.0
|
||||
import "media_keys"
|
||||
import ".."
|
||||
|
||||
MyStackViewPage {
|
||||
headerText: "Utilities"
|
||||
|
||||
content: ColumnLayout {
|
||||
spacing: 18
|
||||
|
||||
|
||||
GroupBox {
|
||||
id: keyboardGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Keyboard Utilities"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
|
||||
MyText {
|
||||
text: "Send to active application: "
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 18
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyPushButton {
|
||||
text: "Keyboard Input"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
OverlayController.showKeyboard("", 601)
|
||||
}
|
||||
Connections {
|
||||
target: OverlayController
|
||||
onKeyBoardInputSignal: {
|
||||
if (userValue == 601) {
|
||||
UtilitiesTabController.sendKeyboardInput(input)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
text: "Enter"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendKeyboardEnter()
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
text: "Alt-Tab"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendKeyboardAltTab()
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
text: "Backspace"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendKeyboardBackspace(1)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
text: "10x Backspace"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendKeyboardBackspace(10)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
text: "Alt-Enter"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendKeyboardAltEnter()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
GroupBox {
|
||||
id: alarmGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Alarm Clock"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
MyToggleButton {
|
||||
id: alarmClockToggle
|
||||
text: ""
|
||||
onCheckedChanged: {
|
||||
UtilitiesTabController.setAlarmEnabled(checked, false)
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: alarmClockHourText
|
||||
text: "00"
|
||||
keyBoardUID: 602
|
||||
Layout.preferredWidth: 50
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseInt(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 0) {
|
||||
val = 0
|
||||
} else if (val > 23) {
|
||||
val = 23
|
||||
}
|
||||
UtilitiesTabController.setAlarmTimeHour(val, false)
|
||||
}
|
||||
setAlarmHourText(UtilitiesTabController.alarmTimeHour)
|
||||
}
|
||||
}
|
||||
|
||||
MyText {
|
||||
text: ":"
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: alarmClockMinuteText
|
||||
text: "00"
|
||||
keyBoardUID: 603
|
||||
Layout.preferredWidth: 50
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseInt(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 0) {
|
||||
val = 0
|
||||
} else if (val > 59) {
|
||||
val = 59
|
||||
}
|
||||
UtilitiesTabController.setAlarmTimeMinute(val, false)
|
||||
}
|
||||
setAlarmMinuteText(UtilitiesTabController.alarmTimeMinute)
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
Layout.preferredWidth: 200
|
||||
text: "Current Time"
|
||||
onClicked: {
|
||||
UtilitiesTabController.setAlarmTimeToCurrentTime()
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
Layout.leftMargin: 50
|
||||
Layout.preferredWidth: 120
|
||||
text: "+1 Hour"
|
||||
onClicked: {
|
||||
UtilitiesTabController.modAlarmTimeHour(1)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
Layout.preferredWidth: 120
|
||||
text: "-1 Hour"
|
||||
onClicked: {
|
||||
UtilitiesTabController.modAlarmTimeHour(-1)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
text: "+5 Min"
|
||||
Layout.leftMargin: 50
|
||||
Layout.preferredWidth: 120
|
||||
onClicked: {
|
||||
UtilitiesTabController.modAlarmTimeMinute(5)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
Layout.preferredWidth: 120
|
||||
text: "-5 Min"
|
||||
onClicked: {
|
||||
UtilitiesTabController.modAlarmTimeMinute(-5)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
MyToggleButton {
|
||||
id: alarmDontAnnoyToggle
|
||||
text: "Don't Annoy me"
|
||||
onCheckedChanged: {
|
||||
UtilitiesTabController.setAlarmIsModal(!checked, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GroupBox {
|
||||
id: steamDesktopGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Steam Desktop Overlay Width"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
MyPushButton2 {
|
||||
id: steamDesktopWidthMinusButton
|
||||
Layout.preferredWidth: 40
|
||||
text: "-"
|
||||
onClicked: {
|
||||
steamDesktopWidthSlider.value -= 1.0
|
||||
}
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: steamDesktopWidthSlider
|
||||
from: 0.1
|
||||
to: 32.0
|
||||
stepSize: 0.1
|
||||
value: 1.0
|
||||
Layout.fillWidth: true
|
||||
onPositionChanged: {
|
||||
var val = this.from + ( this.position * (this.to - this.from))
|
||||
steamDesktopWidthText.text = val.toFixed(1)
|
||||
}
|
||||
onValueChanged: {
|
||||
UtilitiesTabController.setSteamDesktopOverlayWidth(value, false)
|
||||
steamDesktopWidthText.text = value.toFixed(1)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
id: steamDesktopWidthPlusButton
|
||||
Layout.preferredWidth: 40
|
||||
text: "+"
|
||||
onClicked: {
|
||||
steamDesktopWidthSlider.value += 1.0
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: steamDesktopWidthText
|
||||
text: "0.0"
|
||||
keyBoardUID: 611
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
function onInputEvent(input) {
|
||||
var val = parseFloat(input)
|
||||
if (!isNaN(val)) {
|
||||
if (val < 0.1) {
|
||||
val = 0.1
|
||||
}
|
||||
steamDesktopWidthSlider.value = val
|
||||
UtilitiesTabController.setSteamDesktopOverlayWidth(val, false)
|
||||
}
|
||||
text = UtilitiesTabController.steamDesktopOverlayWidth.toFixed(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MediaControllerKeys {
|
||||
id: mediaKeysGroupBox
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
alarmClockToggle.checked = UtilitiesTabController.alarmEnabled
|
||||
alarmDontAnnoyToggle.checked = !UtilitiesTabController.alarmIsModal
|
||||
setAlarmHourText(UtilitiesTabController.alarmTimeHour)
|
||||
setAlarmMinuteText(UtilitiesTabController.alarmTimeMinute)
|
||||
alarmGroupBox.visible = !OverlayController.desktopMode
|
||||
keyboardGroupBox.visible = !OverlayController.desktopMode
|
||||
steamDesktopGroupBox.visible = UtilitiesTabController.steamDesktopOverlayAvailable
|
||||
if (steamDesktopGroupBox.visible) {
|
||||
steamDesktopWidthSlider.value = UtilitiesTabController.steamDesktopOverlayWidth
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: UtilitiesTabController
|
||||
onAlarmEnabledChanged: {
|
||||
alarmClockToggle.checked = UtilitiesTabController.alarmEnabled
|
||||
}
|
||||
onAlarmIsModalChanged: {
|
||||
alarmDontAnnoyToggle.checked = !UtilitiesTabController.alarmIsModal
|
||||
}
|
||||
onAlarmTimeHourChanged: {
|
||||
setAlarmHourText(UtilitiesTabController.alarmTimeHour)
|
||||
}
|
||||
onAlarmTimeMinuteChanged: {
|
||||
setAlarmMinuteText(UtilitiesTabController.alarmTimeMinute)
|
||||
}
|
||||
onSteamDesktopOverlayAvailableChanged: {
|
||||
steamDesktopGroupBox.visible = UtilitiesTabController.steamDesktopOverlayAvailable
|
||||
if (steamDesktopGroupBox.visible) {
|
||||
steamDesktopWidthSlider.value = UtilitiesTabController.steamDesktopOverlayWidth
|
||||
}
|
||||
}
|
||||
onSteamDesktopOverlayWidthChanged: {
|
||||
steamDesktopWidthSlider.value = UtilitiesTabController.steamDesktopOverlayWidth
|
||||
}
|
||||
}
|
||||
}
|
||||
function setAlarmHourText(value) {
|
||||
if (value < 9) {
|
||||
alarmClockHourText.text = "0" + value
|
||||
} else {
|
||||
alarmClockHourText.text = value
|
||||
}
|
||||
}
|
||||
function setAlarmMinuteText(value) {
|
||||
if (value < 9) {
|
||||
alarmClockMinuteText.text = "0" + value
|
||||
} else {
|
||||
alarmClockMinuteText.text = value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import matzman666.advsettings 1.0
|
||||
// Necessary for the project specific Components.
|
||||
import "../.."
|
||||
|
||||
MyPushButton2 {
|
||||
// Public properties
|
||||
id: mediaButton
|
||||
onClicked: {
|
||||
// Overload this
|
||||
}
|
||||
property string imagePath: ""
|
||||
|
||||
// Private properties
|
||||
Layout.preferredHeight: 48
|
||||
Layout.preferredWidth: 48
|
||||
contentItem: Image {
|
||||
source: parent.imagePath
|
||||
sourceSize: Qt.size( imgSP.sourceSize.width*2, imgSP.sourceSize.height*2 )
|
||||
Image{
|
||||
id: imgSP
|
||||
source: parent.source
|
||||
width:0
|
||||
height:0
|
||||
}
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
// Provides feedback for mousing over and clicking buttons.
|
||||
opacity: parent.down ? 1.0 : (parent.activeFocus ? 0.5 : 0.0)
|
||||
color: "#406288"
|
||||
radius: 4
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import matzman666.advsettings 1.0
|
||||
// Necessary for the project specific Components.
|
||||
import "../.."
|
||||
|
||||
GroupBox {
|
||||
id: mediaKeysGroupBox
|
||||
Layout.fillWidth: true
|
||||
|
||||
label: MyText {
|
||||
leftPadding: 10
|
||||
text: "Media Control Keys"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
LineSeparator {
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
property string playPauseButtonPath: "outline_play_pause_white_24dp.svg"
|
||||
property string stopButtonPath: "outline_stop_white_24dp.svg"
|
||||
property string previousButtonPath: "outline_skip_previous_white_24dp.svg"
|
||||
property string nextButtonPath: "outline_skip_next_white_24dp.svg"
|
||||
|
||||
MediaButton {
|
||||
id: previousSongButton
|
||||
imagePath: parent.previousButtonPath
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendMediaPreviousSong()
|
||||
}
|
||||
}
|
||||
|
||||
MediaButton {
|
||||
id: stopSongButton
|
||||
imagePath: parent.stopButtonPath
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendMediaStopSong()
|
||||
}
|
||||
}
|
||||
|
||||
MediaButton {
|
||||
id: playPauseSongButton
|
||||
imagePath: parent.playPauseButtonPath
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendMediaPausePlay()
|
||||
}
|
||||
}
|
||||
|
||||
MediaButton {
|
||||
id: nextSongButton
|
||||
imagePath: parent.nextButtonPath
|
||||
onClicked: {
|
||||
UtilitiesTabController.sendMediaNextSong()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M5,8.6l5.3,3.4L5,15.4V8.6 M3,5v14l11-7L3,5z"/>
|
||||
<path class="st1" d="M14,19h2.3V5H14V19z M18.7,5v14H21V5H18.7z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 598 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="white" d="M6 18l8.5-6L6 6v12zm2-8.14L11.03 12 8 14.14V9.86zM16 6h2v12h-2z"/></svg>
|
||||
|
After Width: | Height: | Size: 216 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="white" d="M6 6h2v12H6zm3.5 6l8.5 6V6l-8.5 6zm6.5 2.14L12.97 12 16 9.86v4.28z"/></svg>
|
||||
|
After Width: | Height: | Size: 219 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="white" d="M16 8v8H8V8h8m2-2H6v12h12V6z"/></svg>
|
||||
|
After Width: | Height: | Size: 181 B |
Reference in New Issue
Block a user