Skip to content

Commit

Permalink
Merge pull request #12 from korapp/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
korapp authored Jun 5, 2024
2 parents e1c1c25 + 52f8475 commit 9a2fbe4
Show file tree
Hide file tree
Showing 8 changed files with 105 additions and 36 deletions.
6 changes: 6 additions & 0 deletions package/contents/config/main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,11 @@
<entry name="hideWhenDisconnected" type="Bool">
<default>false</default>
</entry>
<entry name="iconColorConnected" type="String">
<default>textColor</default>
</entry>
<entry name="iconColorDisconnected" type="String">
<default>textColor</default>
</entry>
</group>
</kcfg>
19 changes: 19 additions & 0 deletions package/contents/ui/ColorRadioButton.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import QtQuick
import QtQuick.Controls

RadioButton {
id: control
property color color
property string value
ToolTip.text: value
ToolTip.visible: !text && hovered

indicator: Rectangle {
implicitWidth: 20
implicitHeight: 20
radius: width / 2
color: control.checked ? "transparent" : control.color
border.color: control.color
border.width: width / 4
}
}
31 changes: 31 additions & 0 deletions package/contents/ui/ColorSelector.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import QtQuick
import QtQuick.Controls

import org.kde.kirigami as Kirigami

Item {
id: control
property alias colors: repeater.model
property var value
implicitHeight: colorsRow.height

ButtonGroup {
id: group
buttons: colorsRow.children
onCheckedButtonChanged: value = checkedButton.value
}

Row {
id: colorsRow
spacing: Kirigami.Units.largeSpacing

Repeater {
id: repeater
ColorRadioButton {
color: modelData.color
value: modelData.value
Component.onCompleted: checked = value === control.value
}
}
}
}
10 changes: 8 additions & 2 deletions package/contents/ui/CompactRepresentation.qml
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import QtQuick

Icon {
import org.kde.kirigami as Kirigami

Kirigami.Icon {
readonly property color connectedColor: Kirigami.Theme[plasmoid.configuration.iconColorConnected]
readonly property color disconnectedColor: Kirigami.Theme[plasmoid.configuration.iconColorDisconnected]
source: plasmoid.icon
active: mouseArea.containsMouse
opacity: client.isConnected ? 1 : 0.5
color: client.isConnected ? connectedColor : disconnectedColor
opacity: !client.isConnected && connectedColor === disconnectedColor ? 0.5 : 1
isMask: true

MouseArea {
id: mouseArea
Expand Down
50 changes: 38 additions & 12 deletions package/contents/ui/ConfigGeneral.qml
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,50 @@ import QtQuick
import QtQuick.Controls

import org.kde.kirigami as Kirigami
import org.kde.kcmutils as KCM

Kirigami.FormLayout {
KCM.SimpleKCM {
property alias cfg_toggleConnectionOnMiddleButton: toggleConnectionOnMiddleButton.checked
property alias cfg_hideWhenDisconnected: hideWhenDisconnected.checked
property alias cfg_showNotifications: showNotifications.checked
property alias cfg_iconColorConnected: connectedColorSelector.value
property alias cfg_iconColorDisconnected: disconnectedColorSelector.value

CheckBox {
id: toggleConnectionOnMiddleButton
Kirigami.FormData.label: i18n("Toggle connection on middle mouse button")
}
readonly property var availableConnectedColors: ["textColor","highlightColor","positiveTextColor","neutralTextColor"]
readonly property var availableDisconnectedColors: ["textColor","negativeTextColor"]

CheckBox {
id: hideWhenDisconnected
Kirigami.FormData.label: i18n("Hide icon when disconnected")
}
Kirigami.FormLayout {
CheckBox {
id: toggleConnectionOnMiddleButton
Kirigami.FormData.label: i18n("Toggle connection on middle mouse button")
}

CheckBox {
id: hideWhenDisconnected
Kirigami.FormData.label: i18n("Hide icon when disconnected")
}

CheckBox {
id: showNotifications
Kirigami.FormData.label: i18n("Show notifications")
}

ColorSelector {
id: connectedColorSelector
Kirigami.FormData.label: i18n("Icon color when connected")
colors: availableConnectedColors.map(c => ({
color: Kirigami.Theme[c],
value: c
}))
}

CheckBox {
id: showNotifications
Kirigami.FormData.label: i18n("Show notifications")
ColorSelector {
id: disconnectedColorSelector
Kirigami.FormData.label: i18n("Icon color when disconnected")
colors: availableDisconnectedColors.map(c => ({
color: Kirigami.Theme[c],
value: c
}))
}
}
}
3 changes: 2 additions & 1 deletion package/contents/ui/FullRepresentation.qml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ PlasmaComponents3.Page {
enabled: !client.isBusy
anchors.centerIn: parent

Icon {
Kirigami.Icon {
opacity: 0.5
source: icon
isMask: true
readonly property int size: Math.round(Kirigami.Units.iconSizes.huge * 1.5)
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: size
Expand Down
20 changes: 0 additions & 20 deletions package/contents/ui/Icon.qml

This file was deleted.

2 changes: 1 addition & 1 deletion package/contents/ui/main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ PlasmoidItem {
'icon.name': action.icon.name,
visible
})
ca.onTriggered.connect(action.onTriggered)
ca.onTriggered.connect(action.triggered)
return ca
}

Expand Down

0 comments on commit 9a2fbe4

Please sign in to comment.