mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-28 23:42:51 -05:00
Add invert on mode change for launcher logo
This commit is contained in:
@@ -106,6 +106,7 @@ Singleton {
|
||||
property string launcherLogoMode: "apps"
|
||||
property string launcherLogoCustomPath: ""
|
||||
property string launcherLogoColorOverride: ""
|
||||
property bool launcherLogoColorInvertOnMode: false
|
||||
property real launcherLogoBrightness: 0.5
|
||||
property real launcherLogoContrast: 1
|
||||
property int launcherLogoSizeOffset: 0
|
||||
@@ -333,6 +334,7 @@ Singleton {
|
||||
launcherLogoMode = settings.launcherLogoMode !== undefined ? settings.launcherLogoMode : "apps"
|
||||
launcherLogoCustomPath = settings.launcherLogoCustomPath !== undefined ? settings.launcherLogoCustomPath : ""
|
||||
launcherLogoColorOverride = settings.launcherLogoColorOverride !== undefined ? settings.launcherLogoColorOverride : ""
|
||||
launcherLogoColorInvertOnMode = settings.launcherLogoColorInvertOnMode !== undefined ? settings.launcherLogoColorInvertOnMode : false
|
||||
launcherLogoBrightness = settings.launcherLogoBrightness !== undefined ? settings.launcherLogoBrightness : 0.5
|
||||
launcherLogoContrast = settings.launcherLogoContrast !== undefined ? settings.launcherLogoContrast : 1
|
||||
launcherLogoSizeOffset = settings.launcherLogoSizeOffset !== undefined ? settings.launcherLogoSizeOffset : 0
|
||||
@@ -459,6 +461,7 @@ Singleton {
|
||||
"launcherLogoMode": launcherLogoMode,
|
||||
"launcherLogoCustomPath": launcherLogoCustomPath,
|
||||
"launcherLogoColorOverride": launcherLogoColorOverride,
|
||||
"launcherLogoColorInvertOnMode": launcherLogoColorInvertOnMode,
|
||||
"launcherLogoBrightness": launcherLogoBrightness,
|
||||
"launcherLogoContrast": launcherLogoContrast,
|
||||
"launcherLogoSizeOffset": launcherLogoSizeOffset,
|
||||
@@ -977,6 +980,11 @@ Singleton {
|
||||
saveSettings()
|
||||
}
|
||||
|
||||
function setLauncherLogoColorInvertOnMode(invert) {
|
||||
launcherLogoColorInvertOnMode = invert
|
||||
saveSettings()
|
||||
}
|
||||
|
||||
function setLauncherLogoBrightness(brightness) {
|
||||
launcherLogoBrightness = brightness
|
||||
saveSettings()
|
||||
|
||||
@@ -694,6 +694,59 @@ Singleton {
|
||||
return Math.round(value * dpr) / dpr
|
||||
}
|
||||
|
||||
function invertHex(hex) {
|
||||
hex = hex.replace('#', '');
|
||||
|
||||
if (!/^[0-9A-Fa-f]{6}$/.test(hex)) {
|
||||
return hex;
|
||||
}
|
||||
|
||||
const r = parseInt(hex.substr(0, 2), 16);
|
||||
const g = parseInt(hex.substr(2, 2), 16);
|
||||
const b = parseInt(hex.substr(4, 2), 16);
|
||||
|
||||
const invR = (255 - r).toString(16).padStart(2, '0');
|
||||
const invG = (255 - g).toString(16).padStart(2, '0');
|
||||
const invB = (255 - b).toString(16).padStart(2, '0');
|
||||
|
||||
return `#${invR}${invG}${invB}`;
|
||||
}
|
||||
|
||||
property string baseLogoColor: ""
|
||||
property string effectiveLogoColor: {
|
||||
if (typeof SettingsData === "undefined") return ""
|
||||
|
||||
const colorOverride = SettingsData.launcherLogoColorOverride
|
||||
if (!colorOverride || colorOverride === "") return ""
|
||||
|
||||
if (!SettingsData.launcherLogoColorInvertOnMode) {
|
||||
return colorOverride
|
||||
}
|
||||
|
||||
if (baseLogoColor === "") {
|
||||
baseLogoColor = colorOverride
|
||||
}
|
||||
|
||||
if (typeof SessionData !== "undefined" && SessionData.isLightMode) {
|
||||
return invertHex(baseLogoColor)
|
||||
}
|
||||
|
||||
return baseLogoColor
|
||||
}
|
||||
|
||||
onIsLightModeChanged: {
|
||||
if (typeof SettingsData !== "undefined" && SettingsData.launcherLogoColorInvertOnMode && baseLogoColor === "") {
|
||||
baseLogoColor = SettingsData.launcherLogoColorOverride
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: typeof SettingsData !== "undefined" ? SettingsData : null
|
||||
function onLauncherLogoColorOverrideChanged() {
|
||||
baseLogoColor = SettingsData.launcherLogoColorOverride
|
||||
}
|
||||
}
|
||||
|
||||
Process {
|
||||
id: matugenCheck
|
||||
command: ["which", "matugen"]
|
||||
|
||||
Reference in New Issue
Block a user