Bug 470371 - Feature request: edit the formula on the fly and see result
Summary: Feature request: edit the formula on the fly and see result
Status: RESOLVED FIXED
Alias: None
Product: kcalc
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Other Other
: NOR normal
Target Milestone: ---
Assignee: Gabriel Barrantes
URL:
Keywords:
: 77158 175518 313854 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-05-28 16:30 UTC by Eugene Savitsky
Modified: 2024-01-25 17:28 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
GUI (3.09 KB, image/png)
2023-05-28 16:30 UTC, Eugene Savitsky
Details
GUI 2 (3.15 KB, image/png)
2023-05-28 16:31 UTC, Eugene Savitsky
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Savitsky 2023-05-28 16:30:56 UTC
Created attachment 159295 [details]
GUI

I'm trying to move to Linux and KDE. One of my wishes, the calculator could be same GUI, as one I use ion Windows.

It has a input bar, where I can enter my numbers and shows the result below the formula. I can easily change the values, since the input bar is editable, just put the cursor to wanted value/symbol and change it, the result changes accordingly.

It is very useful, when you have to see what would be the result with some other values.
Comment 1 Eugene Savitsky 2023-05-28 16:31:33 UTC
Created attachment 159296 [details]
GUI 2
Comment 2 Bug Janitor Service 2023-11-03 02:25:27 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/kcalc/-/merge_requests/67
Comment 3 Eugene Savitsky 2023-11-03 15:52:02 UTC
Is it possible to download and run the modified kcalc? I'm not a programmer... But I cat test and give feedback.
Comment 4 Gabriel Barrantes 2023-11-07 22:32:01 UTC
(In reply to ezh from comment #3)
> Is it possible to download and run the modified kcalc? I'm not a
> programmer... But I cat test and give feedback.

I am not sure if there is any way around setting up the developer environment...
Comment 5 Gabriel Barrantes 2023-11-09 01:48:05 UTC
*** Bug 175518 has been marked as a duplicate of this bug. ***
Comment 6 Gabriel Barrantes 2023-11-09 01:54:26 UTC
*** Bug 313854 has been marked as a duplicate of this bug. ***
Comment 7 Gabriel Barrantes 2023-11-09 01:55:53 UTC
*** Bug 77158 has been marked as a duplicate of this bug. ***
Comment 8 Eugene Savitsky 2023-11-09 12:33:47 UTC
I have donated to KDE 50 €. Looking for the change in KDE 6. Tnx a lot!
Comment 9 Carl Schwan 2024-01-25 17:28:03 UTC
Git commit c7864e9547b2ef2e9e318a88c78ba51f10fbc5e3 by Carl Schwan, on behalf of Gabriel Barrantes.
Committed on 25/01/2024 at 18:27.
Pushed by carlschwan into branch 'master'.

Add display for user's input

Add display to keep the user's entries visible during the whole calculation process, this allows editing the expression at any point to make any correction the user considers opportune. This display allows coping/pasting an expression to be calculated, that can also be edited as required.

All currently implemented functions are supported and also was added support for 0x, 0b and 0 as prefixes for hex, binary and octal numbers.

Before:![image.png](/uploads/bfd53d4ddb462c995181547c24f3ecbc/image.png){width="225" height="211"}

After:

![image.png](/uploads/0b1e83cff41409c5d925e8014cf6f988/image.png){width="258" height="258"}![image.png](/uploads/e6cb88f4492ca0b98f9ebb08e669bc9f/image.png){width=262 height=262}

New classes added:

* KCalcToken: contains a given valid token such as an operation (+, -, ...), a function (cos, ln, ...), a parenthesis or a number.
* KCalcParser: provides an API to convert a given string (for example "1+cos(4.5)") to a Queue of KCalcToken objects.
* KCalcInputDisplay: this is a customized QLineEdit widget, it holds the user's input.
* KCalcDisplayFrame: holds the input display, result display and some labels.
* CalcEngine_p: encapsulates the functionality that used to be available in CalcEngine class, to be only visible for KCalcToken objects.

Modified classes:

* CalcEngine: added the main algorithm to process the calculation, based on common Operator-precedence parsers.

@teams/qa @teams/vdg @teams/usability
Related: bug 461010, bug 470591, bug 142728, bug 459999, bug 443276, bug 447347, bug 454835

M  +17   -1    CMakeLists.txt
A  +20   -0    autotests/CMakeLists.txt
A  +239  -0    autotests/kcalc_parser_core_test.cpp     [License: GPL(v2.0+)]
M  +352  -363  kcalc.cpp
M  +39   -19   kcalc.h
M  +600  -300  kcalc.ui
M  +1    -19   kcalc_const_menu.cpp
M  +2    -1    kcalc_const_menu.h
M  +411  -828  kcalc_core.cpp
M  +24   -107  kcalc_core.h
A  +713  -0    kcalc_core_p.cpp     [License: GPL(v2.0+)]
A  +92   -0    kcalc_core_p.h     [License: GPL(v2.0+)]
A  +57   -0    kcalc_display_frame.cpp     [License: GPL(v2.0+)]
A  +24   -0    kcalc_display_frame.h     [License: GPL(v2.0+)]
A  +101  -0    kcalc_input_display.cpp     [License: GPL(v2.0+)]
A  +36   -0    kcalc_input_display.h     [License: GPL(v2.0+)]
A  +776  -0    kcalc_parser.cpp     [License: GPL(v2.0+)]
A  +155  -0    kcalc_parser.h     [License: GPL(v2.0+)]
A  +64   -0    kcalc_priority_levels_p.h     [License: GPL(v2.0+)]
A  +412  -0    kcalc_token.cpp     [License: GPL(v2.0+)]
A  +175  -0    kcalc_token.h     [License: GPL(v2.0+)]
M  +3    -72   kcalcdisplay.cpp
M  +0    -1    kcalcdisplay.h
M  +1    -42   kcalchistory.cpp
M  +0    -3    kcalchistory.h
M  +9    -1    knumber/knumber.cpp
M  +2    -0    knumber/knumber.h
M  +4    -4    scienceconstants.xml

https://invent.kde.org/utilities/kcalc/-/commit/c7864e9547b2ef2e9e318a88c78ba51f10fbc5e3