diff options
Diffstat (limited to 'popups/launcher/components/Calc.qml')
| -rw-r--r-- | popups/launcher/components/Calc.qml | 180 |
1 files changed, 52 insertions, 128 deletions
diff --git a/popups/launcher/components/Calc.qml b/popups/launcher/components/Calc.qml index 64cde8c..dee1668 100644 --- a/popups/launcher/components/Calc.qml +++ b/popups/launcher/components/Calc.qml @@ -19,74 +19,36 @@ IComponent { } onInputChanged: { - MathCalc.reset_result(); + MathCalc.reset_result(); } process: function () { - MathCalc.query(input); - const valid = MathCalc.result && MathCalc.result.length > 0; + MathCalc.query(input); + const valid = MathCalc.result && MathCalc.result.length > 0; 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, " + ") : "" + // 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, @@ -116,70 +78,32 @@ IComponent { renderType: Text.CurveRendering visible: valid 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, " + ") + // 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 + bold: isSelectedPriority() } } } @@ -188,7 +112,7 @@ IComponent { visible: valid text: "→" font.pixelSize: Launcher.widgetFontSize - font.bold: true + font.bold: isSelectedPriority() } Item { @@ -202,7 +126,7 @@ IComponent { text: valid ? answer : '' font { pixelSize: Launcher.widgetFontSize - bold: true + bold: isSelectedPriority() } } } |
