Skip to content

Commit

Permalink
Chain calculation parsing mode (issue Qalculate#210); RPN syntax as p…
Browse files Browse the repository at this point in the history
…arsing mode; Use slider (GtkScale) for max plot time; Configurable calculate-as-you-type add to history delay; Move RPN keyboard keys and caret as xor to numbers and operators preferences page; The latest version of libqalculate is now required
  • Loading branch information
hanna-kn committed Dec 11, 2020
1 parent 1208bae commit fd2454f
Show file tree
Hide file tree
Showing 12 changed files with 6,545 additions and 6,283 deletions.
7 changes: 7 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2020-12-11 Hanna Knutsson <hanna.knutsson@protonmail.com>

* Chain calculation parsing mode
* RPN syntax as parsing mode
* Use slider for max plot time
* Configurable calculate-as-you-type add to history delay

2020-12-07 Hanna Knutsson <hanna.knutsson@protonmail.com>

* Use system tray icon (hide the application when the main window is closed) and hide on startup options on Windows
Expand Down
117 changes: 80 additions & 37 deletions data/main.ui
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.1 -->
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<object class="GtkWindow" id="completionwindow">
Expand Down Expand Up @@ -2208,10 +2208,10 @@ On: 1/2*pi = 0.5 pi</property>
<object class="GtkRadioMenuItem" id="menu_item_adaptive_parsing">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">1/2x = 1/(2*x)
1/2 x = (1/2)*x
<property name="tooltip-text">1/2x = 1/(2 × x)
1/2 x = (1/2) × x
1 m / 1 m/s = (1 m)/(1 m/s)</property>
<property name="label" translatable="yes">Adaptive parsing</property>
<property name="label" translatable="yes">Adaptive Parsing</property>
<property name="active">True</property>
<signal name="activate" handler="on_menu_item_adaptive_parsing_activate" swapped="no"/>
</object>
Expand All @@ -2220,7 +2220,7 @@ On: 1/2*pi = 0.5 pi</property>
<object class="GtkRadioMenuItem" id="menu_item_ignore_whitespace">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">1/2 x = 1/(2*x)</property>
<property name="tooltip-text">1/2 x = 1/(2 × x)</property>
<property name="label" translatable="yes">Parse Implicit Multiplication First</property>
<property name="group">menu_item_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_ignore_whitespace_activate" swapped="no"/>
Expand All @@ -2230,12 +2230,34 @@ On: 1/2*pi = 0.5 pi</property>
<object class="GtkRadioMenuItem" id="menu_item_no_special_implicit_multiplication">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">1/2x = 1/2*x</property>
<property name="tooltip-text">1/2x = 1/2 × x</property>
<property name="label" translatable="yes">Conventional Parsing</property>
<property name="group">menu_item_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_no_special_implicit_multiplication_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_chain_calculation">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text">1 + 2 × 3 = (1 + 2) × 3 = 9</property>
<property name="label" translatable="yes">Chain Calculation</property>
<property name="use-underline">True</property>
<property name="draw-as-radio">True</property>
<property name="group">menu_item_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_chain_calculation_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_rpn_syntax">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text">1 2 3 × + = 1 + (2 × 3)= 7</property>
<property name="label" translatable="yes">RPN Syntax</property>
<property name="group">menu_item_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_rpn_syntax_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separator_parse_mode">
<property name="visible">True</property>
Expand Down Expand Up @@ -2270,14 +2292,6 @@ On: 1.1 * 1.1 ≈ 1.2</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkCheckMenuItem" id="menu_item_rpn_syntax">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">RPN Syntax</property>
<signal name="activate" handler="on_menu_item_rpn_syntax_activate" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
Expand Down Expand Up @@ -2625,9 +2639,6 @@ On: 1.1 * 1.1 ≈ 1.2</property>
<property name="pixel-size">16</property>
<property name="icon-name">equals-symbolic</property>
</object>
<packing>
<property name="name">page0</property>
</packing>
</child>
<child>
<object class="GtkImage" id="expression_button_clear">
Expand All @@ -2639,7 +2650,6 @@ On: 1.1 * 1.1 ≈ 1.2</property>
<property name="icon-name">edit-clear-symbolic</property>
</object>
<packing>
<property name="name">page1</property>
<property name="position">1</property>
</packing>
</child>
Expand All @@ -2653,7 +2663,6 @@ On: 1.1 * 1.1 ≈ 1.2</property>
<property name="icon-name">dialog-warning</property>
</object>
<packing>
<property name="name">page2</property>
<property name="position">2</property>
</packing>
</child>
Expand All @@ -2667,7 +2676,6 @@ On: 1.1 * 1.1 ≈ 1.2</property>
<property name="icon-name">process-stop</property>
</object>
<packing>
<property name="name">page4</property>
<property name="position">3</property>
</packing>
</child>
Expand Down Expand Up @@ -4275,9 +4283,6 @@ This can be overridden by prepending the unit expression with "?" or "0".</prope
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label_result_bases">
Expand All @@ -4288,7 +4293,6 @@ This can be overridden by prepending the unit expression with "?" or "0".</prope
<property name="ellipsize">start</property>
</object>
<packing>
<property name="name">page1</property>
<property name="position">1</property>
</packing>
</child>
Expand Down Expand Up @@ -6813,19 +6817,13 @@ This can be overridden by prepending the unit expression with "?" or "0".</prope
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label_move">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="name">page1</property>
<property name="title" translatable="yes">page1</property>
<property name="position">1</property>
</packing>
</child>
Expand Down Expand Up @@ -6916,19 +6914,13 @@ This can be overridden by prepending the unit expression with "?" or "0".</prope
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">page0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label_move2">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="name">page1</property>
<property name="title" translatable="yes">page1</property>
<property name="position">1</property>
</packing>
</child>
Expand Down Expand Up @@ -8494,11 +8486,62 @@ This can be overridden by prepending the unit expression with "?" or "0".</prope
</object>
</child>
<child>
<object class="GtkCheckMenuItem" id="menu_item_status_rpn_syntax">
<object class="GtkSeparatorMenuItem" id="separator200">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_status_adaptive_parsing">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Adaptive Parsing</property>
<property name="use-underline">True</property>
<property name="draw-as-radio">True</property>
<signal name="activate" handler="on_menu_item_status_adaptive_parsing_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_status_ignore_whitespace">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Parse Implicit Multiplication First</property>
<property name="use-underline">True</property>
<property name="draw-as-radio">True</property>
<property name="group">menu_item_status_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_status_ignore_whitespace_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_status_no_special_implicit_multiplication">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Conventional Parsing</property>
<property name="use-underline">True</property>
<property name="draw-as-radio">True</property>
<property name="group">menu_item_status_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_status_no_special_implicit_multiplication_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_status_chain_calculation">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Chain Calculation</property>
<property name="use-underline">True</property>
<property name="draw-as-radio">True</property>
<property name="group">menu_item_status_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_status_chain_calculation_activate" swapped="no"/>
</object>
</child>
<child>
<object class="GtkRadioMenuItem" id="menu_item_status_rpn_syntax">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">RPN Syntax</property>
<property name="use-underline">True</property>
<property name="draw-as-radio">True</property>
<property name="group">menu_item_status_adaptive_parsing</property>
<signal name="activate" handler="on_menu_item_status_rpn_syntax_activate" swapped="no"/>
</object>
</child>
Expand Down
Loading

0 comments on commit fd2454f

Please sign in to comment.