diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..e46e081 --- /dev/null +++ b/.pylintrc @@ -0,0 +1,2 @@ +[MESSAGES CONTROL] +disable=import-error diff --git a/com.github.subhadeepjasu.pebbles.yml b/com.github.subhadeepjasu.pebbles.yml new file mode 100644 index 0000000..1c8fc85 --- /dev/null +++ b/com.github.subhadeepjasu.pebbles.yml @@ -0,0 +1,17 @@ +app-id: com.github.subhadeepjasu.pebbles +runtime: io.elementary.Platform +runtime-version: '8' +sdk: io.elementary.Sdk +command: com.github.subhadeepjasu.pebbles +finish-args: + - '--share=ipc' + - '--socket=fallback-x11' + - '--socket=wayland' + - '--share=network' + - '--metadata=X-DConf=migrate-path=/com/github/subhadeepjasu/pebbles' +modules: + - name: pebbles + buildsystem: meson + sources: + - type: dir + path: . diff --git a/data/ui/window.blp b/data/ui/window.blp index bc06aba..17598f7 100644 --- a/data/ui/window.blp +++ b/data/ui/window.blp @@ -280,7 +280,7 @@ template $PebblesWindow: Adw.ApplicationWindow { orientation: horizontal; $PebblesStyledButton angle_mode { - label_text: _("DEG"); + label_text: "DEG"; tooltip_desc: _("Switch angle mode"); accel_markup: "F8"; width-request: 64; diff --git a/src/shell/ScientificDisplay.vala b/src/shell/ScientificDisplay.vala index 7187a18..e35a802 100644 --- a/src/shell/ScientificDisplay.vala +++ b/src/shell/ScientificDisplay.vala @@ -51,29 +51,14 @@ namespace Pebbles { return false; }, Priority.LOW); + // TODO: Do token check before inserting any character main_entry.get_delegate ().insert_text.connect_after ((ch, length) => { + var text = main_entry.text; Idle.add (() => { - if (main_entry.text.has_prefix ("0") && main_entry.text != null) { - if (main_entry.text_length > 1) { - main_entry.text = main_entry.text.slice (1, main_entry.text_length); - main_entry.set_position ((int) main_entry.text_length); - } - } - - if (main_entry.text.contains ("*")) { - Idle.add (() => { - main_entry.text = main_entry.text.replace ("*", " × "); - main_entry.set_position ((int) main_entry.text_length); - return false; - }); - } - - if (main_entry.text.contains ("/")) { - Idle.add (() => { - main_entry.text = main_entry.text.replace ("/", " ÷ "); - main_entry.set_position ((int) main_entry.text_length); - return false; - }); + if (text.length > 1 && text.has_prefix ("0")) { + main_entry.text = text.substring (1); + main_entry.set_position (1); + return false; } if (length > 1) { @@ -100,24 +85,30 @@ namespace Pebbles { settings = Pebbles.Settings.get_default (); settings.changed["global-angle-unit"].connect ((key) => { - switch (settings.global_angle_unit) { - case DEG: - deg_label.opacity = 1; - rad_label.opacity = 0.2; - grad_label.opacity = 0.2; - break; - case RAD: - deg_label.opacity = 0.2; - rad_label.opacity = 1; - grad_label.opacity = 0.2; - break; - case GRAD: - deg_label.opacity = 0.2; - rad_label.opacity = 0.2; - grad_label.opacity = 1; - break; - } + set_angle_unit (settings.global_angle_unit); }); + + set_angle_unit (settings.global_angle_unit); + } + + public void set_angle_unit (GlobalAngleUnit unit) { + switch (unit) { + case DEG: + deg_label.opacity = 1; + rad_label.opacity = 0.2; + grad_label.opacity = 0.2; + break; + case RAD: + deg_label.opacity = 0.2; + rad_label.opacity = 1; + grad_label.opacity = 0.2; + break; + case GRAD: + deg_label.opacity = 0.2; + rad_label.opacity = 0.2; + grad_label.opacity = 1; + break; + } } [GtkCallback] diff --git a/src/shell/Window.vala b/src/shell/Window.vala index b7d7493..21a4325 100644 --- a/src/shell/Window.vala +++ b/src/shell/Window.vala @@ -51,6 +51,7 @@ namespace Pebbles { setup_evaluators (); setup_key_events (); setup_memory_events (); + load_settings (); } private void setup_theme () { @@ -166,6 +167,20 @@ namespace Pebbles { }); } + private void load_settings () { + switch (settings.global_angle_unit) { + case DEG: + angle_mode.label_text = "DEG"; + break; + case RAD: + angle_mode.label_text = "RAD"; + break; + case GRAD: + angle_mode.label_text = "GRA"; + break; + } + } + protected void on_evaluation_completed (string data) { Idle.add (() => { var parser = new Json.Parser ();