mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-08 06:25:37 -05:00
plugins: add ColorSetting
This commit is contained in:
@@ -106,12 +106,13 @@ DankModal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
width: 680
|
width: 680
|
||||||
height: 680
|
height: contentLoader.item ? contentLoader.item.implicitHeight + Theme.spacingM * 2 : 680
|
||||||
backgroundColor: Theme.surfaceContainer
|
backgroundColor: Theme.surfaceContainer
|
||||||
cornerRadius: Theme.cornerRadius
|
cornerRadius: Theme.cornerRadius
|
||||||
borderColor: Theme.outlineMedium
|
borderColor: Theme.outlineMedium
|
||||||
borderWidth: 1
|
borderWidth: 1
|
||||||
keepContentLoaded: true
|
keepContentLoaded: true
|
||||||
|
allowStacking: true
|
||||||
|
|
||||||
onBackgroundClicked: hide()
|
onBackgroundClicked: hide()
|
||||||
|
|
||||||
@@ -122,6 +123,7 @@ DankModal {
|
|||||||
property alias hexInput: hexInput
|
property alias hexInput: hexInput
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
implicitHeight: mainColumn.implicitHeight
|
||||||
focus: true
|
focus: true
|
||||||
|
|
||||||
Keys.onEscapePressed: event => {
|
Keys.onEscapePressed: event => {
|
||||||
@@ -130,7 +132,10 @@ DankModal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
anchors.fill: parent
|
id: mainColumn
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.top
|
||||||
anchors.margins: Theme.spacingM
|
anchors.margins: Theme.spacingM
|
||||||
spacing: Theme.spacingM
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
@@ -444,103 +449,192 @@ DankModal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Row {
|
Column {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
spacing: Theme.spacingS
|
spacing: Theme.spacingS
|
||||||
|
|
||||||
StyledText {
|
Row {
|
||||||
text: I18n.tr("Hex:")
|
width: parent.width
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
spacing: Theme.spacingM
|
||||||
color: Theme.surfaceTextMedium
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
}
|
|
||||||
|
|
||||||
DankTextField {
|
Column {
|
||||||
id: hexInput
|
width: (parent.width - Theme.spacingM * 2) / 3
|
||||||
width: 120
|
spacing: Theme.spacingXS
|
||||||
height: 38
|
|
||||||
text: root.currentColor.toString()
|
StyledText {
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
text: I18n.tr("Hex")
|
||||||
textColor: {
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
if (text.length === 0) return Theme.surfaceText
|
color: Theme.surfaceTextMedium
|
||||||
const hexPattern = /^#?[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/
|
font.weight: Font.Medium
|
||||||
return hexPattern.test(text) ? Theme.surfaceText : Theme.error
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
width: parent.width
|
||||||
|
spacing: Theme.spacingXS
|
||||||
|
|
||||||
|
DankTextField {
|
||||||
|
id: hexInput
|
||||||
|
width: parent.width - 36
|
||||||
|
height: 36
|
||||||
|
text: root.currentColor.toString()
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
textColor: {
|
||||||
|
if (text.length === 0) return Theme.surfaceText
|
||||||
|
const hexPattern = /^#?[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/
|
||||||
|
return hexPattern.test(text) ? Theme.surfaceText : Theme.error
|
||||||
|
}
|
||||||
|
placeholderText: "#000000"
|
||||||
|
backgroundColor: Theme.surfaceHover
|
||||||
|
borderWidth: 1
|
||||||
|
focusedBorderWidth: 2
|
||||||
|
topPadding: Theme.spacingS
|
||||||
|
bottomPadding: Theme.spacingS
|
||||||
|
onAccepted: () => {
|
||||||
|
const hexPattern = /^#?[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/
|
||||||
|
if (!hexPattern.test(text)) return
|
||||||
|
const color = Qt.color(text)
|
||||||
|
if (color) {
|
||||||
|
root.selectedColor = color
|
||||||
|
root.currentColor = color
|
||||||
|
root.updateFromColor(color)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
iconName: "content_copy"
|
||||||
|
iconSize: Theme.iconSize - 6
|
||||||
|
iconColor: Theme.surfaceText
|
||||||
|
buttonSize: 36
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
onClicked: () => {
|
||||||
|
root.copyColorToClipboard(hexInput.text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
placeholderText: "#000000"
|
|
||||||
backgroundColor: Theme.surfaceHover
|
Column {
|
||||||
borderWidth: 1
|
width: (parent.width - Theme.spacingM * 2) / 3
|
||||||
focusedBorderWidth: 2
|
spacing: Theme.spacingXS
|
||||||
topPadding: Theme.spacingS
|
|
||||||
bottomPadding: Theme.spacingS
|
StyledText {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
text: I18n.tr("RGB")
|
||||||
onAccepted: () => {
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
const hexPattern = /^#?[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/
|
color: Theme.surfaceTextMedium
|
||||||
if (!hexPattern.test(text)) return
|
font.weight: Font.Medium
|
||||||
const color = Qt.color(text)
|
}
|
||||||
if (color) {
|
|
||||||
root.selectedColor = color
|
Row {
|
||||||
root.currentColor = color
|
width: parent.width
|
||||||
root.updateFromColor(color)
|
spacing: Theme.spacingXS
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: parent.width - 36
|
||||||
|
height: 36
|
||||||
|
radius: Theme.cornerRadius
|
||||||
|
color: Theme.surfaceHover
|
||||||
|
border.color: Theme.outline
|
||||||
|
border.width: 1
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: {
|
||||||
|
const r = Math.round(root.currentColor.r * 255)
|
||||||
|
const g = Math.round(root.currentColor.g * 255)
|
||||||
|
const b = Math.round(root.currentColor.b * 255)
|
||||||
|
return `${r}, ${g}, ${b}`
|
||||||
|
}
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: Theme.surfaceText
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
iconName: "content_copy"
|
||||||
|
iconSize: Theme.iconSize - 6
|
||||||
|
iconColor: Theme.surfaceText
|
||||||
|
buttonSize: 36
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
onClicked: () => {
|
||||||
|
const r = Math.round(root.currentColor.r * 255)
|
||||||
|
const g = Math.round(root.currentColor.g * 255)
|
||||||
|
const b = Math.round(root.currentColor.b * 255)
|
||||||
|
const rgbString = `rgb(${r}, ${g}, ${b})`
|
||||||
|
Quickshell.execDetached(["sh", "-c", `echo "${rgbString}" | wl-copy`])
|
||||||
|
ToastService.showInfo(`${rgbString} copied`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Column {
|
||||||
|
width: (parent.width - Theme.spacingM * 2) / 3
|
||||||
|
spacing: Theme.spacingXS
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: I18n.tr("HSV")
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.surfaceTextMedium
|
||||||
|
font.weight: Font.Medium
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
width: parent.width
|
||||||
|
spacing: Theme.spacingXS
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: parent.width - 36
|
||||||
|
height: 36
|
||||||
|
radius: Theme.cornerRadius
|
||||||
|
color: Theme.surfaceHover
|
||||||
|
border.color: Theme.outline
|
||||||
|
border.width: 1
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: {
|
||||||
|
const h = Math.round(root.hue * 360)
|
||||||
|
const s = Math.round(root.saturation * 100)
|
||||||
|
const v = Math.round(root.value * 100)
|
||||||
|
return `${h}°, ${s}%, ${v}%`
|
||||||
|
}
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: Theme.surfaceText
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DankActionButton {
|
||||||
|
iconName: "content_copy"
|
||||||
|
iconSize: Theme.iconSize - 6
|
||||||
|
iconColor: Theme.surfaceText
|
||||||
|
buttonSize: 36
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
onClicked: () => {
|
||||||
|
const h = Math.round(root.hue * 360)
|
||||||
|
const s = Math.round(root.saturation * 100)
|
||||||
|
const v = Math.round(root.value * 100)
|
||||||
|
const hsvString = `${h}, ${s}, ${v}`
|
||||||
|
Quickshell.execDetached(["sh", "-c", `echo "${hsvString}" | wl-copy`])
|
||||||
|
ToastService.showInfo(`HSV ${hsvString} copied`)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DankButton {
|
DankButton {
|
||||||
width: 80
|
visible: root.onColorSelectedCallback !== null && root.onColorSelectedCallback !== undefined
|
||||||
buttonHeight: 36
|
|
||||||
text: I18n.tr("Apply")
|
|
||||||
backgroundColor: Theme.primary
|
|
||||||
textColor: Theme.background
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
onClicked: {
|
|
||||||
const hexPattern = /^#?[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/
|
|
||||||
if (!hexPattern.test(hexInput.text)) return
|
|
||||||
const color = Qt.color(hexInput.text)
|
|
||||||
if (color) {
|
|
||||||
root.currentColor = color
|
|
||||||
root.updateFromColor(color)
|
|
||||||
root.selectedColor = root.currentColor
|
|
||||||
root.colorSelected(root.currentColor)
|
|
||||||
SessionData.addRecentColor(root.currentColor)
|
|
||||||
root.hide()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
width: parent.width - 460
|
|
||||||
height: 1
|
|
||||||
}
|
|
||||||
|
|
||||||
DankButton {
|
|
||||||
width: 70
|
width: 70
|
||||||
buttonHeight: 36
|
buttonHeight: 36
|
||||||
text: I18n.tr("Cancel")
|
text: I18n.tr("Save")
|
||||||
backgroundColor: "transparent"
|
|
||||||
textColor: Theme.surfaceText
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
onClicked: root.hide()
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
radius: Theme.cornerRadius
|
|
||||||
color: "transparent"
|
|
||||||
border.color: Theme.surfaceVariantAlpha
|
|
||||||
border.width: 1
|
|
||||||
z: -1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DankButton {
|
|
||||||
width: 70
|
|
||||||
buttonHeight: 36
|
|
||||||
text: I18n.tr("Copy")
|
|
||||||
backgroundColor: Theme.primary
|
backgroundColor: Theme.primary
|
||||||
textColor: Theme.background
|
textColor: Theme.background
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.right: parent.right
|
||||||
onClicked: {
|
onClicked: {
|
||||||
const colorString = root.currentColor.toString()
|
SessionData.addRecentColor(root.currentColor)
|
||||||
root.copyColorToClipboard(colorString)
|
root.colorSelected(root.currentColor)
|
||||||
|
root.hide()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
103
Modules/Plugins/ColorSetting.qml
Normal file
103
Modules/Plugins/ColorSetting.qml
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
import QtQuick
|
||||||
|
import qs.Common
|
||||||
|
import qs.Services
|
||||||
|
import qs.Widgets
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
required property string settingKey
|
||||||
|
required property string label
|
||||||
|
property string description: ""
|
||||||
|
property color defaultValue: Theme.primary
|
||||||
|
property color value: defaultValue
|
||||||
|
|
||||||
|
width: parent.width
|
||||||
|
spacing: Theme.spacingS
|
||||||
|
|
||||||
|
property bool isInitialized: false
|
||||||
|
|
||||||
|
function loadValue() {
|
||||||
|
const settings = findSettings()
|
||||||
|
if (settings && settings.pluginService) {
|
||||||
|
const loadedValue = settings.loadValue(settingKey, defaultValue)
|
||||||
|
value = loadedValue
|
||||||
|
isInitialized = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
Qt.callLater(loadValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
onValueChanged: {
|
||||||
|
if (!isInitialized) return
|
||||||
|
const settings = findSettings()
|
||||||
|
if (settings) {
|
||||||
|
settings.saveValue(settingKey, value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function findSettings() {
|
||||||
|
let item = parent
|
||||||
|
while (item) {
|
||||||
|
if (item.saveValue !== undefined && item.loadValue !== undefined) {
|
||||||
|
return item
|
||||||
|
}
|
||||||
|
item = item.parent
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: root.label
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
font.weight: Font.Medium
|
||||||
|
color: Theme.surfaceText
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: root.description
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.surfaceVariantText
|
||||||
|
width: parent.width
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
visible: root.description !== ""
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
width: parent.width
|
||||||
|
spacing: Theme.spacingS
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 100
|
||||||
|
height: 36
|
||||||
|
radius: Theme.cornerRadius
|
||||||
|
color: root.value
|
||||||
|
border.color: Theme.outlineStrong
|
||||||
|
border.width: 2
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
onClicked: {
|
||||||
|
if (PopoutService && PopoutService.colorPickerModal) {
|
||||||
|
PopoutService.colorPickerModal.selectedColor = root.value
|
||||||
|
PopoutService.colorPickerModal.pickerTitle = root.label
|
||||||
|
PopoutService.colorPickerModal.onColorSelectedCallback = function(selectedColor) {
|
||||||
|
root.value = selectedColor
|
||||||
|
}
|
||||||
|
PopoutService.colorPickerModal.show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: root.value.toString()
|
||||||
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
|
color: Theme.surfaceText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
32
PLUGINS/ColorDemoPlugin/ColorDemoSettings.qml
Normal file
32
PLUGINS/ColorDemoPlugin/ColorDemoSettings.qml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import QtQuick
|
||||||
|
import qs.Common
|
||||||
|
import qs.Modules.Plugins
|
||||||
|
import qs.Widgets
|
||||||
|
|
||||||
|
PluginSettings {
|
||||||
|
id: root
|
||||||
|
pluginId: "colorDemo"
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
width: parent.width
|
||||||
|
text: "Color Demo Settings"
|
||||||
|
font.pixelSize: Theme.fontSizeLarge
|
||||||
|
font.weight: Font.Bold
|
||||||
|
color: Theme.surfaceText
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
width: parent.width
|
||||||
|
text: "Choose a custom color to display in the bar widget"
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.surfaceVariantText
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorSetting {
|
||||||
|
settingKey: "customColor"
|
||||||
|
label: "Custom Color"
|
||||||
|
description: "Choose a custom color to display in the widget"
|
||||||
|
defaultValue: Theme.primary
|
||||||
|
}
|
||||||
|
}
|
||||||
57
PLUGINS/ColorDemoPlugin/ColorDemoWidget.qml
Normal file
57
PLUGINS/ColorDemoPlugin/ColorDemoWidget.qml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
import QtQuick
|
||||||
|
import qs.Common
|
||||||
|
import qs.Services
|
||||||
|
import qs.Widgets
|
||||||
|
import qs.Modules.Plugins
|
||||||
|
|
||||||
|
PluginComponent {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property color customColor: pluginData.customColor || Theme.primary
|
||||||
|
|
||||||
|
horizontalBarPill: Component {
|
||||||
|
Row {
|
||||||
|
spacing: Theme.spacingS
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 20
|
||||||
|
height: 20
|
||||||
|
radius: 4
|
||||||
|
color: root.customColor
|
||||||
|
border.color: Theme.outlineStrong
|
||||||
|
border.width: 1
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: root.customColor.toString()
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.surfaceText
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
verticalBarPill: Component {
|
||||||
|
Column {
|
||||||
|
spacing: Theme.spacingXS
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 20
|
||||||
|
height: 20
|
||||||
|
radius: 4
|
||||||
|
color: root.customColor
|
||||||
|
border.color: Theme.outlineStrong
|
||||||
|
border.width: 1
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
text: root.customColor.toString()
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.surfaceText
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
12
PLUGINS/ColorDemoPlugin/plugin.json
Normal file
12
PLUGINS/ColorDemoPlugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"id": "colorDemo",
|
||||||
|
"name": "Color Demo",
|
||||||
|
"description": "Demonstrates color picker plugin setting",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": "DMS",
|
||||||
|
"icon": "palette",
|
||||||
|
"type": "widget",
|
||||||
|
"component": "./ColorDemoWidget.qml",
|
||||||
|
"settings": "./ColorDemoSettings.qml",
|
||||||
|
"permissions": ["settings_read", "settings_write"]
|
||||||
|
}
|
||||||
@@ -179,12 +179,6 @@
|
|||||||
"reference": "Modules/AppDrawer/AppDrawerPopout.qml:190",
|
"reference": "Modules/AppDrawer/AppDrawerPopout.qml:190",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Apply",
|
|
||||||
"context": "Apply",
|
|
||||||
"reference": "Modals/DankColorPickerModal.qml:491",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Apply GTK Colors",
|
"term": "Apply GTK Colors",
|
||||||
"context": "Apply GTK Colors",
|
"context": "Apply GTK Colors",
|
||||||
@@ -602,7 +596,7 @@
|
|||||||
{
|
{
|
||||||
"term": "Cancel",
|
"term": "Cancel",
|
||||||
"context": "Cancel",
|
"context": "Cancel",
|
||||||
"reference": "Modals/BluetoothPairingModal.qml:251, Modals/DankColorPickerModal.qml:518, Modals/PolkitAuthModal.qml:291, Modals/WifiPasswordModal.qml:494, Modals/FileBrowser/FileBrowserOverwriteDialog.qml:83, Modules/Settings/PluginBrowser.qml:627",
|
"reference": "Modals/BluetoothPairingModal.qml:251, Modals/PolkitAuthModal.qml:291, Modals/WifiPasswordModal.qml:494, Modals/FileBrowser/FileBrowserOverwriteDialog.qml:83, Modules/Settings/PluginBrowser.qml:627",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -893,12 +887,6 @@
|
|||||||
"reference": "Modules/Toast.qml:17",
|
"reference": "Modules/Toast.qml:17",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Copy",
|
|
||||||
"context": "Copy",
|
|
||||||
"reference": "Modals/DankColorPickerModal.qml:537",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Copy PID",
|
"term": "Copy PID",
|
||||||
"context": "Copy PID",
|
"context": "Copy PID",
|
||||||
@@ -1715,6 +1703,12 @@
|
|||||||
"reference": "Modules/Settings/DockTab.qml:304",
|
"reference": "Modules/Settings/DockTab.qml:304",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "HSV",
|
||||||
|
"context": "HSV",
|
||||||
|
"reference": "Modals/DankColorPickerModal.qml:576",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Health",
|
"term": "Health",
|
||||||
"context": "Health",
|
"context": "Health",
|
||||||
@@ -1728,9 +1722,9 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Hex:",
|
"term": "Hex",
|
||||||
"context": "Hex:",
|
"context": "Hex",
|
||||||
"reference": "Modals/DankColorPickerModal.qml:452",
|
"reference": "Modals/DankColorPickerModal.qml:465",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2114,7 +2108,7 @@
|
|||||||
{
|
{
|
||||||
"term": "Material Colors",
|
"term": "Material Colors",
|
||||||
"context": "Material Colors",
|
"context": "Material Colors",
|
||||||
"reference": "Modals/DankColorPickerModal.qml:313",
|
"reference": "Modals/DankColorPickerModal.qml:318",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2546,7 +2540,7 @@
|
|||||||
{
|
{
|
||||||
"term": "Opacity",
|
"term": "Opacity",
|
||||||
"context": "Opacity",
|
"context": "Opacity",
|
||||||
"reference": "Modals/DankColorPickerModal.qml:415",
|
"reference": "Modals/DankColorPickerModal.qml:420",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2903,6 +2897,12 @@
|
|||||||
"reference": "Modules/Settings/DisplaysTab.qml:45",
|
"reference": "Modules/Settings/DisplaysTab.qml:45",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "RGB",
|
||||||
|
"context": "RGB",
|
||||||
|
"reference": "Modals/DankColorPickerModal.qml:522",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Rain Chance",
|
"term": "Rain Chance",
|
||||||
"context": "Rain Chance",
|
"context": "Rain Chance",
|
||||||
@@ -2924,7 +2924,7 @@
|
|||||||
{
|
{
|
||||||
"term": "Recent Colors",
|
"term": "Recent Colors",
|
||||||
"context": "Recent Colors",
|
"context": "Recent Colors",
|
||||||
"reference": "Modals/DankColorPickerModal.qml:363",
|
"reference": "Modals/DankColorPickerModal.qml:368",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3020,7 +3020,7 @@
|
|||||||
{
|
{
|
||||||
"term": "Save",
|
"term": "Save",
|
||||||
"context": "Save",
|
"context": "Save",
|
||||||
"reference": "Modals/FileBrowser/FileBrowserSaveRow.qml:55, Modules/Notepad/NotepadTextEditor.qml:511, Modules/Notepad/Notepad.qml:480",
|
"reference": "Modals/DankColorPickerModal.qml:630, Modals/FileBrowser/FileBrowserSaveRow.qml:55, Modules/Notepad/NotepadTextEditor.qml:511, Modules/Notepad/Notepad.qml:480",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3104,7 +3104,7 @@
|
|||||||
{
|
{
|
||||||
"term": "Select a color from the palette or use custom sliders",
|
"term": "Select a color from the palette or use custom sliders",
|
||||||
"context": "Select a color from the palette or use custom sliders",
|
"context": "Select a color from the palette or use custom sliders",
|
||||||
"reference": "Modals/DankColorPickerModal.qml:153",
|
"reference": "Modals/DankColorPickerModal.qml:158",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "Raggruppa molteplici finestre della stessa app con un indicatore del numero di finestre"
|
"Group multiple windows of the same app together with a window count indicator": "Raggruppa molteplici finestre della stessa app con un indicatore del numero di finestre"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "Salute"
|
"Health": "Salute"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "Altezza Gap Angolo (Zona Esclusa)"
|
"Height to Edge Gap (Exclusive Zone)": "Altezza Gap Angolo (Zona Esclusa)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "Hex:"
|
"Hex:": "Hex:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "Pannello scorrevole per la presa veloce di appunti"
|
"Quick note-taking slideout panel": "Pannello scorrevole per la presa veloce di appunti"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "Possibili Piogge"
|
"Rain Chance": "Possibili Piogge"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "同じアプリの複数のウィンドウをウィンドウ数インジケーターでグループ化します"
|
"Group multiple windows of the same app together with a window count indicator": "同じアプリの複数のウィンドウをウィンドウ数インジケーターでグループ化します"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "健康"
|
"Health": "健康"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "エッジギャップまでの高さ(排他ゾーン)"
|
"Height to Edge Gap (Exclusive Zone)": "エッジギャップまでの高さ(排他ゾーン)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "16進数:"
|
"Hex:": "16進数:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "クイックノート作成スライドアウトパネル"
|
"Quick note-taking slideout panel": "クイックノート作成スライドアウトパネル"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "降水確率"
|
"Rain Chance": "降水確率"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "Grupuj wiele okien tej samej aplikacji ze wskaźnikiem liczby okien"
|
"Group multiple windows of the same app together with a window count indicator": "Grupuj wiele okien tej samej aplikacji ze wskaźnikiem liczby okien"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "Zdrowie"
|
"Health": "Zdrowie"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "Odstęp od krawędzi (strefa wyłączności)"
|
"Height to Edge Gap (Exclusive Zone)": "Odstęp od krawędzi (strefa wyłączności)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "Hex:"
|
"Hex:": "Hex:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "Wysuwany panel szybkiego sporządzania notatek"
|
"Quick note-taking slideout panel": "Wysuwany panel szybkiego sporządzania notatek"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "Szansa na deszcz"
|
"Rain Chance": "Szansa na deszcz"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "Agrupar múltiplas janelas do mesmo app com um indicador de número de janelas"
|
"Group multiple windows of the same app together with a window count indicator": "Agrupar múltiplas janelas do mesmo app com um indicador de número de janelas"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "Saúde"
|
"Health": "Saúde"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "Distância da Borda (Zona Exclusiva)"
|
"Height to Edge Gap (Exclusive Zone)": "Distância da Borda (Zona Exclusiva)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "Hex:"
|
"Hex:": "Hex:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "Painel deslizante para anotações rápidas"
|
"Quick note-taking slideout panel": "Painel deslizante para anotações rápidas"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "Chance de Chuva"
|
"Rain Chance": "Chance de Chuva"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "Aynı uygulamanın birden fazla penceresini pencere sayısı göstergesi ile gruplayın"
|
"Group multiple windows of the same app together with a window count indicator": "Aynı uygulamanın birden fazla penceresini pencere sayısı göstergesi ile gruplayın"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "Sağlık"
|
"Health": "Sağlık"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "Kenar Boşluğu Yüksekliği (Özel Bölge)"
|
"Height to Edge Gap (Exclusive Zone)": "Kenar Boşluğu Yüksekliği (Özel Bölge)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "Hex:"
|
"Hex:": "Hex:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "Hızlı not alma sürgü paneli"
|
"Quick note-taking slideout panel": "Hızlı not alma sürgü paneli"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "Yağış İhtimali"
|
"Rain Chance": "Yağış İhtimali"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "将同一应用的多个窗口合并显示,并标注窗口数量"
|
"Group multiple windows of the same app together with a window count indicator": "将同一应用的多个窗口合并显示,并标注窗口数量"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "电池健康"
|
"Health": "电池健康"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "与屏幕边缘的间距(独占区)"
|
"Height to Edge Gap (Exclusive Zone)": "与屏幕边缘的间距(独占区)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "十六进制颜色码:"
|
"Hex:": "十六进制颜色码:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "便于快速记便签的侧边栏面板"
|
"Quick note-taking slideout panel": "便于快速记便签的侧边栏面板"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "降雨概率"
|
"Rain Chance": "降雨概率"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -875,12 +875,18 @@
|
|||||||
"Group multiple windows of the same app together with a window count indicator": {
|
"Group multiple windows of the same app together with a window count indicator": {
|
||||||
"Group multiple windows of the same app together with a window count indicator": "將同一應用程式的多個視窗匯集在一起,並附帶視窗數量指示器"
|
"Group multiple windows of the same app together with a window count indicator": "將同一應用程式的多個視窗匯集在一起,並附帶視窗數量指示器"
|
||||||
},
|
},
|
||||||
|
"HSV": {
|
||||||
|
"HSV": ""
|
||||||
|
},
|
||||||
"Health": {
|
"Health": {
|
||||||
"Health": "健康狀態"
|
"Health": "健康狀態"
|
||||||
},
|
},
|
||||||
"Height to Edge Gap (Exclusive Zone)": {
|
"Height to Edge Gap (Exclusive Zone)": {
|
||||||
"Height to Edge Gap (Exclusive Zone)": "邊緣間隙高度 (獨佔區域)"
|
"Height to Edge Gap (Exclusive Zone)": "邊緣間隙高度 (獨佔區域)"
|
||||||
},
|
},
|
||||||
|
"Hex": {
|
||||||
|
"Hex": ""
|
||||||
|
},
|
||||||
"Hex:": {
|
"Hex:": {
|
||||||
"Hex:": "色碼:"
|
"Hex:": "色碼:"
|
||||||
},
|
},
|
||||||
@@ -1481,6 +1487,9 @@
|
|||||||
"Quick note-taking slideout panel": {
|
"Quick note-taking slideout panel": {
|
||||||
"Quick note-taking slideout panel": "快速筆記滑出面板"
|
"Quick note-taking slideout panel": "快速筆記滑出面板"
|
||||||
},
|
},
|
||||||
|
"RGB": {
|
||||||
|
"RGB": ""
|
||||||
|
},
|
||||||
"Rain Chance": {
|
"Rain Chance": {
|
||||||
"Rain Chance": "降雨機率"
|
"Rain Chance": "降雨機率"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -209,13 +209,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Apply",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Apply GTK Colors",
|
"term": "Apply GTK Colors",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -1042,13 +1035,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Copy",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Copy PID",
|
"term": "Copy PID",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -2001,6 +1987,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "HSV",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Health",
|
"term": "Health",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -2016,7 +2009,7 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Hex:",
|
"term": "Hex",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -3387,6 +3380,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "RGB",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Rain Chance",
|
"term": "Rain Chance",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user