Skip to content

Commit

Permalink
#75
Browse files Browse the repository at this point in the history
  • Loading branch information
parnold-x committed May 17, 2020
1 parent 4f0e870 commit 2d17224
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 11 deletions.
12 changes: 3 additions & 9 deletions src/Calculator.vala
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,12 @@ internal class CalculatorThread {
continue;
}

if (category == "Utilities" || category == "Trigonometry" || category == "Step Functions"
if (category == "Utilities" || category == "Step Functions"
|| category.contains ("Statistics/") || category.contains ("Economics/") || category.contains ("Geometry/")
|| category == "Combinatorics" || category == "Logical" || category == "Date & Time"
|| category == "Miscellaneous" || category == "Number Theory/Arithmetics" || category == "Number Theory/Integers"
|| category == "Number Theory/Number Bases" || category == "Number Theory/Polynomials") {
|| category == "Number Theory/Number Bases" || category == "Number Theory/Polynomials"
|| category == "Calculus/Named Integrals") {
advanced_functions.add (new NascFunction (i, category));
continue;
} else if (category == "Exponents & Logarithms") {
Expand All @@ -183,13 +184,6 @@ internal class CalculatorThread {
advanced_functions.add (new NascFunction (i, category));
continue;
}
} else if (category == "Calculus/Named Integrals"){
var func_name = QalculateNasc.get_function_name (i);

if (func_name == "fresnelc" || func_name == "fresnels" ) {
advanced_functions.add (new NascFunction (i, category));
continue;
}
}

functions.add (new NascFunction (i, category));
Expand Down
7 changes: 7 additions & 0 deletions src/Controller.vala
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,13 @@ public class Controller : Object {
input.skip_change = false;
});
this.calculator = new Calculator ();
this.input.get_functions.connect(()=>{
var list = new Gee.ArrayList<NascFunction>();
list.add_all(calculator.functions);
list.add_all(calculator.advanced_functions);
return list;
});

debug ("loading sheets");
/* ensure nasc.sheets exists */
var file = File.new_for_path (sheet_path);
Expand Down
35 changes: 33 additions & 2 deletions src/InputView.vala
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class InputView : Gtk.Box {
public signal void quit ();
public signal void cursor_line_change (int line);
public signal void copy_result_to_clipboard (int line);
public signal Gee.List<NascFunction> get_functions();

public InputView () {
try {
Expand Down Expand Up @@ -374,7 +375,39 @@ public class InputView : Gtk.Box {

return;
}
var functions = get_functions ();
if (functions != null){
foreach (var fct in functions) {
iter.assign (it);
iter2.assign (it);
if (check_pre_it (fct.name, iter, iter2)) {
skip_change = true;
iter.assign (it);
iter2.assign (it);
int offset = iter.get_offset () + 1;
/* to prevent errors, buffer delete makes the iter invalid which leads to errors */
GLib.Timeout.add (1, () => {
Gtk.TextIter iter3, iter4;
iter3 = Gtk.TextIter ();
iter4 = Gtk.TextIter ();
source_view.buffer.get_iter_at_offset (out iter3, offset);
source_view.buffer.get_iter_at_offset (out iter4, offset);

source_view.buffer.insert (ref iter4, "()", -1);

source_view.buffer.get_iter_at_offset (out iter4, offset+1);
source_view.buffer.place_cursor (iter4);
skip_change = false;
changed_line (line, -1, get_text_line_to_end (line));

return false;
});
return;
}
}
}
}


if (operators.contains (s)) {
source_view.buffer.get_iter_at_line_index (out iter2, it.get_line (), 0);
Expand Down Expand Up @@ -482,7 +515,6 @@ public class InputView : Gtk.Box {
if (iter.get_line_offset () == 0) {
return false;
}

for (int i = s.length - 1; i >= 0; i--) {
string s_char = s.substring (i, 1);
var iter_char = source_view.buffer.get_slice (iter, iter2, true);
Expand All @@ -494,7 +526,6 @@ public class InputView : Gtk.Box {
iter.backward_cursor_position ();
iter2.backward_cursor_position ();
}

/* if pre char is a letter character return false */
var iter_char = source_view.buffer.get_slice (iter, iter2, true);

Expand Down

0 comments on commit 2d17224

Please sign in to comment.