diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-07-27 23:57:01 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-07-28 00:02:57 +0800 |
| commit | eb23db9e822f5951780d00d016c157fcb6435cab (patch) | |
| tree | 8c9737823a3c18a8b5ae55d795b263ccd00aaab1 | |
| parent | 16ca38e414a22f6ca97f9799496df45783978baa (diff) | |
Launcher(calc&ISmartCalc): cleanup and better display
| -rw-r--r-- | config/Launcher.qml | 3 | ||||
| -rw-r--r-- | popups/launcher/components/Calc.qml | 126 | ||||
| -rw-r--r-- | popups/launcher/components/Currency.qml | 7 | ||||
| -rw-r--r-- | popups/launcher/components/ISmartCalc.qml | 2 |
4 files changed, 135 insertions, 3 deletions
diff --git a/config/Launcher.qml b/config/Launcher.qml index 11a2b6e..9c94a67 100644 --- a/config/Launcher.qml +++ b/config/Launcher.qml @@ -54,6 +54,9 @@ Singleton { Unit {} }, Component { + Currency {} + }, + Component { App {} }, ] diff --git a/popups/launcher/components/Calc.qml b/popups/launcher/components/Calc.qml index 4cc45a7..6a88c9f 100644 --- a/popups/launcher/components/Calc.qml +++ b/popups/launcher/components/Calc.qml @@ -21,7 +21,68 @@ IComponent { process: function () { MathCalc.query(input); const valid = MathCalc.result && MathCalc.result.length > 0; - const answer = MathCalc.result; + const answer = MathCalc.result ? MathCalc.result + // 1. Calculus & Summations (Case insensitive) + .replace(/\bint(?:egral)?\b/gi, "∫") + .replace(/\bsum\b/gi, "∑") + + // 2. Constants & Symbols (Case insensitive) + .replace(/\bpi\b/gi, "π") + .replace(/\btau\b/gi, "τ") + .replace(/\binf(?:inity)?\b/gi, "∞") + .replace(/\bdeg\b/gi, "°") + + // 3. Roots & Exponentials (Case insensitive) + .replace(/\bsqrt\b/gi, "√") + .replace(/\bcbrt\b/gi, "∛") + + // 4. Rounding & Absolute Value (Case insensitive) + .replace(/\bceil\(([^\)]+)\)/gi, "⌈$1⌉") + .replace(/\bfloor\(([^\)]+)\)/gi, "⌊$1⌋") + .replace(/\bround\b/gi, " ≈ ") + + // 5. Comparison & Equality + .replace(/\s*<=\s*/g, " ≤ ") + .replace(/\s*>=\s*/g, " ≥ ") + .replace(/\s*!=\s*/g, " ≠ ") + .replace(/\s*==\s*/g, " = ") + + // 6. Exponents to Unicode Superscripts FIRST (Case insensitive for ^n, ^x, ^y) + .replace(/\^0/g, "⁰") + .replace(/\^1/g, "¹") + .replace(/\^2/g, "²") + .replace(/\^3/g, "³") + .replace(/\^4/g, "⁴") + .replace(/\^5/g, "⁵") + .replace(/\^6/g, "⁶") + .replace(/\^7/g, "⁷") + .replace(/\^8/g, "⁸") + .replace(/\^9/g, "⁹") + .replace(/\^\+/g, "⁺") + .replace(/\^-/g, "⁻") + .replace(/\^n/gi, "ⁿ") + .replace(/\^x/gi, "ˣ") + .replace(/\^y/gi, "ʸ") + + // 7. Kalk Number Bases + .replace(/_0/g, "₀") + .replace(/_10/g, "₁₀") + .replace(/_16/g, "₁₆") + .replace(/_1/g, "₁") + .replace(/_2/g, "₂") + .replace(/_3/g, "₃") + .replace(/_4/g, "₄") + .replace(/_5/g, "₅") + .replace(/_6/g, "₆") + .replace(/_7/g, "₇") + .replace(/_8/g, "₈") + .replace(/_9/g, "₉") + + // 8. Arithmetic Operators + .replace(/\s*\*\s*/g, " × ") + .replace(/\s*\/\s*/g, " ÷ ") + .replace(/\s*-\s*/g, " − ") + .replace(/\s*\+\s*/g, " + ") : "" return { valid, priority: valid, @@ -50,7 +111,68 @@ IComponent { clip: true renderType: Text.CurveRendering visible: valid - text: input.replace(/ /g, "").replace(/\+/g, " + ").replace(/-/g, " - ").replace(/\*/g, " × ").replace(/\//g, " ÷ ").replace(/%/g, " % ").replace(/\(/g, " ( ").replace(/\)/g, " ) ") + text: input + // 1. Calculus & Summations (Case insensitive) + .replace(/\bint(?:egral)?\b/gi, "∫") + .replace(/\bsum\b/gi, "∑") + + // 2. Constants & Symbols (Case insensitive) + .replace(/\bpi\b/gi, "π") + .replace(/\btau\b/gi, "τ") + .replace(/\binf(?:inity)?\b/gi, "∞") + .replace(/\bdeg\b/gi, "°") + + // 3. Roots & Exponentials (Case insensitive) + .replace(/\bsqrt\b/gi, "√") + .replace(/\bcbrt\b/gi, "∛") + + // 4. Rounding & Absolute Value (Case insensitive) + .replace(/\bceil\(([^\)]+)\)/gi, "⌈$1⌉") + .replace(/\bfloor\(([^\)]+)\)/gi, "⌊$1⌋") + .replace(/\bround\b/gi, " ≈ ") + + // 5. Comparison & Equality + .replace(/\s*<=\s*/g, " ≤ ") + .replace(/\s*>=\s*/g, " ≥ ") + .replace(/\s*!=\s*/g, " ≠ ") + .replace(/\s*==\s*/g, " = ") + + // 6. Exponents to Unicode Superscripts FIRST (Case insensitive for ^n, ^x, ^y) + .replace(/\^0/g, "⁰") + .replace(/\^1/g, "¹") + .replace(/\^2/g, "²") + .replace(/\^3/g, "³") + .replace(/\^4/g, "⁴") + .replace(/\^5/g, "⁵") + .replace(/\^6/g, "⁶") + .replace(/\^7/g, "⁷") + .replace(/\^8/g, "⁸") + .replace(/\^9/g, "⁹") + .replace(/\^\+/g, "⁺") + .replace(/\^-/g, "⁻") + .replace(/\^n/gi, "ⁿ") + .replace(/\^x/gi, "ˣ") + .replace(/\^y/gi, "ʸ") + + // 7. Kalk Number Bases + .replace(/_0/g, "₀") + .replace(/_10/g, "₁₀") + .replace(/_16/g, "₁₆") + .replace(/_1/g, "₁") + .replace(/_2/g, "₂") + .replace(/_3/g, "₃") + .replace(/_4/g, "₄") + .replace(/_5/g, "₅") + .replace(/_6/g, "₆") + .replace(/_7/g, "₇") + .replace(/_8/g, "₈") + .replace(/_9/g, "₉") + + // 8. Arithmetic Operators + .replace(/\s*\*\s*/g, " × ") + .replace(/\s*\/\s*/g, " ÷ ") + .replace(/\s*-\s*/g, " − ") + .replace(/\s*\+\s*/g, " + ") font { pixelSize: Launcher.widgetFontSize bold: true diff --git a/popups/launcher/components/Currency.qml b/popups/launcher/components/Currency.qml new file mode 100644 index 0000000..28bef3e --- /dev/null +++ b/popups/launcher/components/Currency.qml @@ -0,0 +1,7 @@ +import core + +ISmartCalc { + symbol: "💱" + category: SmartCalc.result_type == SmartCalc.Currency || SmartCalc.result_type == SmartCalc.Crypto + predictiveText: '→' +} diff --git a/popups/launcher/components/ISmartCalc.qml b/popups/launcher/components/ISmartCalc.qml index 5474cc5..02b234a 100644 --- a/popups/launcher/components/ISmartCalc.qml +++ b/popups/launcher/components/ISmartCalc.qml @@ -53,7 +53,7 @@ IComponent { clip: true renderType: Text.CurveRendering visible: valid - text: input.replace(/ /g, "").replace(/\+/g, " + ").replace(/-/g, " - ").replace(/\*/g, " × ").replace(/\//g, " ÷ ").replace(/%/g, " % ").replace(/\(/g, " ( ").replace(/\)/g, " ) ") + text: input font { pixelSize: Launcher.widgetFontSize bold: true |
