GlosSIConfig: Move settings to collapsible card

pull/179/head
Peter Repukat 2 years ago
parent 54e6bf610b
commit 00e9bbe485

@ -137,6 +137,7 @@
<ClCompile Include="UIModel.cpp" /> <ClCompile Include="UIModel.cpp" />
<None Include=".clang-format" /> <None Include=".clang-format" />
<None Include="GetAUMIDs.ps1" /> <None Include="GetAUMIDs.ps1" />
<None Include="qml\CollapsiblePane.qml" />
<None Include="qml\SteamInputXboxDisabledDialog.qml" /> <None Include="qml\SteamInputXboxDisabledDialog.qml" />
<None Include="qml\AddSelectTypeDialog.qml" /> <None Include="qml\AddSelectTypeDialog.qml" />
<None Include="qml\FluentTextInput.qml" /> <None Include="qml\FluentTextInput.qml" />

@ -71,6 +71,9 @@
<None Include="qml\SteamInputXboxDisabledDialog.qml"> <None Include="qml\SteamInputXboxDisabledDialog.qml">
<Filter>qml</Filter> <Filter>qml</Filter>
</None> </None>
<None Include="qml\CollapsiblePane.qml">
<Filter>qml</Filter>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtMoc Include="UIModel.h"> <QtMoc Include="UIModel.h">

@ -51,8 +51,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,8,105004039005 FILEVERSION 0,0,8,1023005406006
PRODUCTVERSION 0,0,8,105004039005 PRODUCTVERSION 0,0,8,1023005406006
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -69,12 +69,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Peter Repukat - FlatspotSoftware" VALUE "CompanyName", "Peter Repukat - FlatspotSoftware"
VALUE "FileDescription", "GlosSI - Config" VALUE "FileDescription", "GlosSI - Config"
VALUE "FileVersion", "0.0.8.1-5-g40390b5" VALUE "FileVersion", "0.0.8.1-23-g54e6bf6"
VALUE "InternalName", "GlosSIConfig" VALUE "InternalName", "GlosSIConfig"
VALUE "LegalCopyright", "Copyright (C) 2021 Peter Repukat - FlatspotSoftware" VALUE "LegalCopyright", "Copyright (C) 2021 Peter Repukat - FlatspotSoftware"
VALUE "OriginalFilename", "GlosSIConfig.exe" VALUE "OriginalFilename", "GlosSIConfig.exe"
VALUE "ProductName", "GlosSI" VALUE "ProductName", "GlosSI"
VALUE "ProductVersion", "0.0.8.1-5-g40390b5" VALUE "ProductVersion", "0.0.8.1-23-g54e6bf6"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
@ -872,6 +872,226 @@ IDI_ICON1 ICON "..\GloSC_Icon.ico"

@ -17,5 +17,7 @@
<file>svg/help_outline_white_24dp.svg</file> <file>svg/help_outline_white_24dp.svg</file>
<file>qml/SteamNotFoundDialog.qml</file> <file>qml/SteamNotFoundDialog.qml</file>
<file>qml/SteamInputXboxDisabledDialog.qml</file> <file>qml/SteamInputXboxDisabledDialog.qml</file>
<file>qml/CollapsiblePane.qml</file>
<file>svg/expand_more_white_24dp.svg</file>
</qresource> </qresource>
</RCC> </RCC>

@ -0,0 +1,96 @@
/*
Copyright 2021-2022 Peter Repukat - FlatspotSoftware
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import QtQuick 2.9
import QtQuick.Controls 2.9
import QtQuick.Controls.Material 2.9
import QtQuick.Controls.Material.impl 2.9
RPane {
property alias title: paneTitle.text
width: parent.width
property alias content: ldr.sourceComponent
clip: true
height: paneTitle.height + collapseColumn.spacing
property bool collapsed: true
id: collapsePane
Behavior on height {
NumberAnimation {
duration: 300
easing.type: Easing.InOutQuad
}
}
Column {
id: collapseColumn
width: parent.width
spacing: 16
Item {
width: parent.width
height: paneTitle.height
Label {
id: paneTitle
anchors.left: parent.left
anchors.leftMargin: 4
font.bold: true
font.pixelSize: 24
anchors.top: parent.top
anchors.topMargin: -2
}
RoundButton {
width: 48
height: 48
Material.elevation: 0
anchors.rightMargin: 0
anchors.top: parent.top
anchors.topMargin: -12
onClicked: function(){
collapsed = !collapsed;
if (collapsed) {
collapsePane.height = paneTitle.height + collapseColumn.spacing
} else {
collapsePane.height = paneTitle.height + collapseColumn.spacing * 3 + ldr.item.height
}
}
Image {
id: arrowImg
anchors.centerIn: parent
source: "qrc:/svg/expand_more_white_24dp.svg"
width: 24
height: 24
transform: Rotation{
angle: collapsed ? 0 : 180
origin.x: arrowImg.width/2
origin.y: arrowImg.height/2
Behavior on angle {
NumberAnimation {
duration: 125
easing.type: Easing.InOutQuad
}
}
}
}
anchors.right: parent.right
}
}
Loader {
id: ldr
width: parent.width
}
}
}

@ -311,232 +311,241 @@ Item {
width: 1 width: 1
height: 8 height: 8
} }
Row {
spacing: 16
width: parent.width
RPane { CollapsiblePane {
width: parent.width / 2 - 8 radius: 4
height: 264 Material.elevation: 32
radius: 4 bgOpacity: 0.97
Material.elevation: 32 title: qsTr("Advanced")
bgOpacity: 0.97 content: Row {
spacing: 16
width: parent.width
Column { RPane {
spacing: 2 width: parent.width / 2 - 8
width: parent.width height: 264
Row { radius: 4
CheckBox { Material.elevation: 32
id: hideDevices bgOpacity: 0.97
text: qsTr("Hide (Real) Controllers")
checked: shortcutInfo.devices.hideDevices Column {
onCheckedChanged: shortcutInfo.devices.hideDevices = checked spacing: 2
} width: parent.width
RoundButton { Row {
onClicked: () => { CheckBox {
helpInfoDialog.titleText = qsTr("Hide (Real) Controllers") id: hideDevices
helpInfoDialog.text = text: qsTr("Hide (Real) Controllers")
qsTr("Hides real game controllers from the system\nThis may prevent doubled inputs") checked: shortcutInfo.devices.hideDevices
+ "\n" onCheckedChanged: shortcutInfo.devices.hideDevices = checked
+ qsTr("You can change this setting and which devices are hidden in the GlosSI overlay")
helpInfoDialog.open()
} }
width: 48 RoundButton {
height: 48 onClicked: () => {
Material.elevation: 0 helpInfoDialog.titleText = qsTr("Hide (Real) Controllers")
anchors.topMargin: 16 helpInfoDialog.text =
Image { qsTr("Hides real game controllers from the system\nThis may prevent doubled inputs")
anchors.centerIn: parent + "\n"
source: "qrc:/svg/help_outline_white_24dp.svg" + qsTr("You can change this setting and which devices are hidden in the GlosSI overlay")
width: 24
height: 24 helpInfoDialog.open()
}
width: 48
height: 48
Material.elevation: 0
anchors.topMargin: 16
Image {
anchors.centerIn: parent
source: "qrc:/svg/help_outline_white_24dp.svg"
width: 24
height: 24
}
} }
} }
} Item {
Item { width: 1
width: 1 height: 4
height: 4
}
Row {
CheckBox {
id: realDeviceIds
text: qsTr("Use real device (USB)-IDs")
checked: shortcutInfo.devices.realDeviceIds
onCheckedChanged: shortcutInfo.devices.realDeviceIds = checked
} }
RoundButton { Row {
onClicked: () => { CheckBox {
helpInfoDialog.titleText = qsTr("Use real device (USB)-IDs") id: realDeviceIds
helpInfoDialog.text = text: qsTr("Use real device (USB)-IDs")
qsTr("Only enable if input's are not recognized by the game") checked: shortcutInfo.devices.realDeviceIds
+ "\n" onCheckedChanged: shortcutInfo.devices.realDeviceIds = checked
+ qsTr("If enabled, device-hiding won't work.\nUse the \"Max. Controller count\" setting!")
helpInfoDialog.open()
} }
width: 48 RoundButton {
height: 48 onClicked: () => {
Material.elevation: 0 helpInfoDialog.titleText = qsTr("Use real device (USB)-IDs")
anchors.topMargin: 16 helpInfoDialog.text =
Image { qsTr("Only enable if input's are not recognized by the game")
anchors.centerIn: parent + "\n"
source: "qrc:/svg/help_outline_white_24dp.svg" + qsTr("If enabled, device-hiding won't work.\nUse the \"Max. Controller count\" setting!")
width: 24
height: 24 helpInfoDialog.open()
}
width: 48
height: 48
Material.elevation: 0
anchors.topMargin: 16
Image {
anchors.centerIn: parent
source: "qrc:/svg/help_outline_white_24dp.svg"
width: 24
height: 24
}
} }
} }
} Item {
Item { width: 1
width: 1 height: 4
height: 4
}
Row {
CheckBox {
id: emulateDS4
text: qsTr("Emulate DS4")
checked: shortcutInfo.controller.emulateDS4 || false
onCheckedChanged: shortcutInfo.controller.emulateDS4 = checked
} }
RoundButton { Row {
onClicked: () => { CheckBox {
helpInfoDialog.titleText = qsTr("Emulate DS4") id: emulateDS4
helpInfoDialog.text = text: qsTr("Emulate DS4")
qsTr("Emulates a DS4 instead of X360 Pad") checked: shortcutInfo.controller.emulateDS4 || false
+ "\n" onCheckedChanged: shortcutInfo.controller.emulateDS4 = checked
qsTr("for usage with, for example, PSNow")
+ "\n"
+ qsTr("If enabled you have to disable \"Playstation Configuration support\" in Steam")
helpInfoDialog.open()
} }
width: 48 RoundButton {
height: 48 onClicked: () => {
Material.elevation: 0 helpInfoDialog.titleText = qsTr("Emulate DS4")
anchors.topMargin: 16 helpInfoDialog.text =
Image { qsTr("Emulates a DS4 instead of X360 Pad")
anchors.centerIn: parent + "\n"
source: "qrc:/svg/help_outline_white_24dp.svg" qsTr("for usage with, for example, PSNow")
width: 24 + "\n"
height: 24 + qsTr("If enabled you have to disable \"Playstation Configuration support\" in Steam")
helpInfoDialog.open()
}
width: 48
height: 48
Material.elevation: 0
anchors.topMargin: 16
Image {
anchors.centerIn: parent
source: "qrc:/svg/help_outline_white_24dp.svg"
width: 24
height: 24
}
} }
} }
} Item {
Item { width: 1
width: 1 height: 4
height: 4
}
Row {
leftPadding: 16
Label {
text: qsTr("Max. emulated controllers")
topPadding: 16
}
SpinBox {
id: maxControllersSpinBox
width: 128
value: shortcutInfo.controller.maxControllers
from: 0
to: 4
onValueChanged: shortcutInfo.controller.maxControllers = value
} }
RoundButton { Row {
onClicked: () => { leftPadding: 16
helpInfoDialog.titleText = qsTr("Max. emulated controllers") Label {
helpInfoDialog.text = text: qsTr("Max. emulated controllers")
qsTr("GlosSI will only provide [NUMBER] of controllers") topPadding: 16
+ "\n"
+ qsTr("Required to set to actually connected controller count when using \"real devuce IDs\" ")
helpInfoDialog.open()
} }
width: 48 SpinBox {
height: 48 id: maxControllersSpinBox
Material.elevation: 0 width: 128
anchors.topMargin: 16 value: shortcutInfo.controller.maxControllers
Image { from: 0
anchors.centerIn: parent to: 4
source: "qrc:/svg/help_outline_white_24dp.svg" onValueChanged: shortcutInfo.controller.maxControllers = value
width: 24 }
height: 24 RoundButton {
onClicked: () => {
helpInfoDialog.titleText = qsTr("Max. emulated controllers")
helpInfoDialog.text =
qsTr("GlosSI will only provide [NUMBER] of controllers")
+ "\n"
+ qsTr("Required to set to actually connected controller count when using \"real devuce IDs\" ")
helpInfoDialog.open()
}
width: 48
height: 48
Material.elevation: 0
anchors.topMargin: 16
Image {
anchors.centerIn: parent
source: "qrc:/svg/help_outline_white_24dp.svg"
width: 24
height: 24
}
} }
} }
} }
} }
} RPane {
RPane { width: parent.width / 2 - 8
width: parent.width / 2 - 8 height: 264
height: 264 radius: 4
radius: 4 Material.elevation: 32
Material.elevation: 32 bgOpacity: 0.97
bgOpacity: 0.97 Column {
Column { spacing: 2
spacing: 2 width: parent.width
width: parent.width Row {
Row { CheckBox {
CheckBox { id: windowMode
id: windowMode text: qsTr("Steam/GlosSI overlay as separate window")
text: qsTr("Steam/GlosSI overlay as separate window") checked: shortcutInfo.window.windowMode
checked: shortcutInfo.window.windowMode onCheckedChanged: shortcutInfo.window.windowMode = checked
onCheckedChanged: shortcutInfo.window.windowMode = checked
}
RoundButton {
onClicked: () => {
helpInfoDialog.titleText = qsTr("Steam/GlosSI overlay as separate window")
helpInfoDialog.text =
qsTr("Doesn't show overlay on top, but as separate window")
+ "\n"
+ qsTr("Use if blackscreen-issues are encountered.")
helpInfoDialog.open()
} }
width: 48 RoundButton {
height: 48 onClicked: () => {
Material.elevation: 0 helpInfoDialog.titleText = qsTr("Steam/GlosSI overlay as separate window")
anchors.topMargin: 16 helpInfoDialog.text =
Image { qsTr("Doesn't show overlay on top, but as separate window")
anchors.centerIn: parent + "\n"
source: "qrc:/svg/help_outline_white_24dp.svg" + qsTr("Use if blackscreen-issues are encountered.")
width: 24
height: 24 helpInfoDialog.open()
}
width: 48
height: 48
Material.elevation: 0
anchors.topMargin: 16
Image {
anchors.centerIn: parent
source: "qrc:/svg/help_outline_white_24dp.svg"
width: 24
height: 24
}
} }
} }
} Item {
Item { width: 1
width: 1 height: 4
height: 4
}
Row {
CheckBox {
id: disableOverlayCheckbox
text: qsTr("Disable Steam/GlosSI overlay")
checked: shortcutInfo.window.disableOverlay
onCheckedChanged: shortcutInfo.window.disableOverlay = checked
} }
RoundButton {
onClicked: () => {
helpInfoDialog.titleText = qsTr("Disable Steam/GlosSI overlay")
helpInfoDialog.text =
qsTr("Only controller emulation - No extra window")
+ "\n"
+ qsTr("Might help with Steam remote play.")
helpInfoDialog.open() Row {
CheckBox {
id: disableOverlayCheckbox
text: qsTr("Disable Steam/GlosSI overlay")
checked: shortcutInfo.window.disableOverlay
onCheckedChanged: shortcutInfo.window.disableOverlay = checked
} }
width: 48 RoundButton {
height: 48 onClicked: () => {
Material.elevation: 0 helpInfoDialog.titleText = qsTr("Disable Steam/GlosSI overlay")
anchors.topMargin: 16 helpInfoDialog.text =
Image { qsTr("Only controller emulation - No extra window")
anchors.centerIn: parent + "\n"
source: "qrc:/svg/help_outline_white_24dp.svg" + qsTr("Might help with Steam remote play.")
width: 24
height: 24 helpInfoDialog.open()
}
width: 48
height: 48
Material.elevation: 0
anchors.topMargin: 16
Image {
anchors.centerIn: parent
source: "qrc:/svg/help_outline_white_24dp.svg"
width: 24
height: 24
}
} }
} }
} }
} }
} }
} }
Item { Item {
id: bottomspacing id: bottomspacing
width: 1 width: 1

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" fill="#FFFFFF"><path d="m12 15.375-6-6 1.4-1.4 4.6 4.6 4.6-4.6 1.4 1.4Z"/></svg>

After

Width:  |  Height:  |  Size: 143 B

Loading…
Cancel
Save