diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2023-03-06 21:23:45 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2023-03-07 08:20:17 +0100 |
commit | 3a928301b13fb86ad22a5299a636c9a3cfb2f893 (patch) | |
tree | 413ae0554addbea257930309db7d0920822ae487 | |
parent | dce70584699bb41699bb84a598dd6afdc7f2778f (diff) |
Rework the main window with Adwaita.
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | src/disfluid.ui | 87 | ||||
-rw-r--r-- | src/unit_tests_report.ui | 86 | ||||
-rw-r--r-- | src/vala/application-window.vala | 4 | ||||
-rw-r--r-- | src/vala/main.vala | 5 | ||||
-rw-r--r-- | src/vala/unit-tests-report.vala | 21 |
6 files changed, 133 insertions, 71 deletions
diff --git a/po/POTFILES.in b/po/POTFILES.in index 509ba58..d60f215 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -2,4 +2,5 @@ src/about.ui src/disfluid.ui src/unit_tests_report.ui +src/vala/about.c src/vala/application-window.c diff --git a/src/disfluid.ui b/src/disfluid.ui index 1a516c8..8d24cad 100644 --- a/src/disfluid.ui +++ b/src/disfluid.ui @@ -1,34 +1,73 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.40.0 --> <interface> - <template class="DisfluidWindow" parent="GtkApplicationWindow"> - <property name="can-focus">False</property> - <property name="titlebar"> - <object class="GtkHeaderBar"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="title-widget"> - <object class="GtkLabel"> - <property name="label" translatable="yes" context="gui-title" comments="Title of the main window.">Disfluid</property> - <property name="single-line-mode">True</property> - <property name="ellipsize">end</property> + <template class="DisfluidWindow" parent="AdwApplicationWindow"> + <property name="content"> + <object class="GtkBox"> + <property name="orientation">vertical</property> + <child> + <object class="AdwHeaderBar"> + <property name="centering-policy">strict</property> + <property name="title-widget"> + <object class="AdwViewSwitcherTitle" id="title"> + <property name="stack">stack</property> + <property name="title" translatable="yes">Disfluid</property> + </object> + </property> + <child> + <object class="GtkMenuButton" id="window_menu"> + <property name="icon-name">open-menu</property> + </object> + </child> </object> - </property> - <child type="end"> - <object class="GtkMenuButton" id="window_menu"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="focus-on-click">False</property> - <property name="receives-default">True</property> - <property name="icon-name">open-menu</property> + </child> + <child> + <object class="GtkBox"> + <property name="orientation">vertical</property> + <child> + <object class="AdwViewStack" id="stack"> + <child> + <object class="AdwViewStackPage"> + <property name="name">home</property> + <property name="title" translatable="yes" context="home-page">Home</property> + <property name="icon-name">go-home</property> + <property name="child"> + <object class="AdwStatusPage"> + <property name="title" translatable="yes">Nothing to see here.</property> + <property name="description" translatable="yes">Disfluid is not ready yet. Please come back later.</property> + <property name="icon-name">computer-fail</property> + </object> + </property> + </object> + </child> + <child> + <object class="AdwViewStackPage"> + <property name="name">settings</property> + <property name="title" translatable="yes" context="home-page">Settings</property> + <property name="icon-name">emblem-system</property> + <property name="child"> + <object class="GtkListBox"> + <property name="selection-mode">none</property> + <style> + <class name="boxed-list"/> + </style> + </object> + </property> + </object> + </child> + </object> + </child> + <child> + <object class="AdwViewSwitcherBar"> + <property name="stack">stack</property> + <binding name="reveal"> + <lookup name="title-visible">title</lookup> + </binding> + </object> + </child> </object> </child> </object> </property> - <child> - <object class="GtkLabel"> - <property name="label" translatable="yes" context="gui-hello">Hello, world!</property> - </object> - </child> </template> </interface> diff --git a/src/unit_tests_report.ui b/src/unit_tests_report.ui index 84ba121..daedc5c 100644 --- a/src/unit_tests_report.ui +++ b/src/unit_tests_report.ui @@ -1,43 +1,71 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.40.0 --> <interface> - <template class="DisfluidUnitTestsReport" parent="AdwBin"> - <child> - <object class="GtkStack" id="stack"> - <property name="transition-type">slide-left</property> + <template class="DisfluidUnitTestsReportDialog" parent="AdwApplicationWindow"> + <property name="content"> + <object class="GtkBox"> + <property name="orientation">vertical</property> <child> - <object class="AdwStatusPage" id="page_wait"> - <property name="title" translatable="yes">Running disfluid unit tests…</property> - <property name="description" translatable="yes">Please wait while disfluid is running the unit tests.</property> - </object> - </child> - <child> - <object class="AdwStatusPage" id="page_failure"> - <property name="title" translatable="yes">The unit tests failed.</property> - <property name="description" translatable="yes">Disfluid unit tests failed. Sorry for the inconvenience.</property> - <property name="icon-name">dialog-error</property> - <child> - <object class="GtkButton"> - <property name="label" translatable="yes">Retry</property> - <property name="action-name">app.run-unit-tests</property> + <object class="AdwHeaderBar"> + <property name="centering-policy">strict</property> + <property name="title-widget"> + <object class="AdwWindowTitle" id="title"> + <property name="title" translatable="yes">Disfluid</property> + <property name="subtitle" translatable="yes">Checking the Disfluid implementation</property> </object> - </child> + </property> </object> </child> <child> - <object class="AdwStatusPage" id="page_success"> - <property name="title" translatable="yes">The unit tests passed.</property> - <property name="description" translatable="yes">Disfluid unit tests passed. The application is functioning as expected.</property> - <property name="icon-name">dialog-information</property> - <child> - <object class="GtkButton"> - <property name="label" translatable="yes">Retry</property> - <property name="action-name">app.run-unit-tests</property> + <object class="AdwClamp"> + <property name="orientation">horizontal</property> + <property name="maximum-size">480</property> + <property name="tightening-threshold">320</property> + <property name="child"> + <object class="GtkStack" id="stack"> + <property name="valign">center</property> + <property name="vhomogeneous">true</property> + <property name="vexpand">true</property> + <property name="vexpand-set">true</property> + <property name="transition-type">slide-left</property> + <property name="interpolate-size">true</property> + <child> + <object class="AdwStatusPage" id="page_wait"> + <property name="title" translatable="yes">Running disfluid unit tests…</property> + <property name="description" translatable="yes">Please wait while disfluid is running the unit tests.</property> + </object> + </child> + <child> + <object class="AdwStatusPage" id="page_failure"> + <property name="title" translatable="yes">The unit tests failed.</property> + <property name="description" translatable="yes">Disfluid unit tests failed. Sorry for the inconvenience.</property> + <property name="icon-name">dialog-error</property> + <child> + <object class="GtkButton"> + <property name="label" translatable="yes">Retry</property> + <property name="action-name">win.rerun-unit-tests</property> + </object> + </child> + </object> + </child> + <child> + <object class="AdwStatusPage" id="page_success"> + <property name="title" translatable="yes">The unit tests passed.</property> + <property name="description" translatable="yes">Disfluid unit tests passed. The application is functioning as expected.</property> + <property name="icon-name">dialog-information</property> + <child> + <object class="GtkButton"> + <property name="label" translatable="yes">Retry</property> + <property name="action-name">win.rerun-unit-tests</property> + </object> + </child> + </object> + </child> </object> - </child> + </property> </object> </child> </object> - </child> + </property> </template> </interface> diff --git a/src/vala/application-window.vala b/src/vala/application-window.vala index 4ec76f6..3255d72 100644 --- a/src/vala/application-window.vala +++ b/src/vala/application-window.vala @@ -3,11 +3,11 @@ extern const string APPLICATION_WINDOW_VALA; namespace Disfluid { [GtkTemplate (ui = "/eu/planete_kraus/Disfluid/src/disfluid.ui")] - public class Window: Gtk.ApplicationWindow { + public class Window: Adw.ApplicationWindow { [GtkChild] private unowned Gtk.MenuButton window_menu; - public Window (Gtk.Application app) { + public Window (Adw.Application app) { this.application = app; var menu_model = new GLib.Menu (); menu_model.append(_ ("About disfluid"), "app.about"); diff --git a/src/vala/main.vala b/src/vala/main.vala index f37c261..f39a94b 100644 --- a/src/vala/main.vala +++ b/src/vala/main.vala @@ -20,12 +20,9 @@ namespace Disfluid { this.add_action (show_about_dialog); GLib.SimpleAction run_unit_tests = new GLib.SimpleAction ("run-unit-tests", null); - Disfluid.UnitTestsReportDialog? dialog = null; run_unit_tests.activate.connect (() => { this.hold (); - if (dialog == null) { - dialog = new Disfluid.UnitTestsReportDialog (this); - } + var dialog = new Disfluid.UnitTestsReportDialog (this); dialog.present (); this.release (); }); diff --git a/src/vala/unit-tests-report.vala b/src/vala/unit-tests-report.vala index a7bf63a..ec0d125 100644 --- a/src/vala/unit-tests-report.vala +++ b/src/vala/unit-tests-report.vala @@ -17,7 +17,7 @@ namespace Disfluid { } [GtkTemplate (ui = "/eu/planete_kraus/Disfluid/src/unit_tests_report.ui")] - public class UnitTestsReport: Adw.Bin { + public class UnitTestsReportDialog: Adw.ApplicationWindow { [GtkChild] private unowned Gtk.Stack stack; @@ -49,21 +49,18 @@ namespace Disfluid { }); } - public UnitTestsReport () { + public UnitTestsReportDialog (Gtk.Application app) { + this.application = app; var s = new Gtk.Spinner (); s.spinning = true; var spinner = new Gtk.WidgetPaintable (s); this.page_wait.paintable = spinner; - } - } - - public class UnitTestsReportDialog: Adw.ApplicationWindow { - private UnitTestsReport report = new UnitTestsReport (); - - public UnitTestsReportDialog (Gtk.Application app) { - this.application = app; - this.content = report; - this.report.start (); + this.start (); + GLib.SimpleAction rerun = new GLib.SimpleAction ("rerun-unit-tests", null); + rerun.activate.connect (() => { + this.start (); + }); + this.add_action (rerun); } } } |