diff options
author | Ricky Kresslein <rk@lakoliu.com> | 2022-06-10 15:35:12 +0300 |
---|---|---|
committer | Ricky Kresslein <rk@lakoliu.com> | 2022-06-10 15:35:12 +0300 |
commit | b9453ffad7590080ed67898062babd97bbea46af (patch) | |
tree | 2487ac15721a12081a1e8e5fdbc17639e054d081 | |
parent | d7099a4d98744481e8f7ecce4e9233e66af1fd44 (diff) | |
download | Furtherance-b9453ffad7590080ed67898062babd97bbea46af.tar.zst |
Center timer on empty (Issue #1)
-rwxr-xr-x | src/gtk/history_box.ui | 68 | ||||
-rwxr-xr-x | src/gtk/window.ui | 95 | ||||
-rwxr-xr-x | src/ui/history_box.rs | 17 | ||||
-rwxr-xr-x | src/ui/window.rs | 15 |
4 files changed, 64 insertions, 131 deletions
diff --git a/src/gtk/history_box.ui b/src/gtk/history_box.ui index b5c9a34..89a44a7 100755 --- a/src/gtk/history_box.ui +++ b/src/gtk/history_box.ui @@ -21,73 +21,7 @@ <object class="GtkStackPage"> <property name="name">empty</property> <property name="child"> - <object class="AdwStatusPage" id="welcome_page"> - <property name="title" translatable="yes">Start Tracking</property> - <property name="icon_name">com.lakoliu.Furtherance</property> - <property name="child"> - <object class="GtkGrid"> - <property name="halign">center</property> - <property name="row_spacing">12</property> - <property name="column_spacing">12</property> - <child> - <object class="GtkImage"> - <property name="icon_name">input-keyboard-symbolic</property> - <layout> - <property name="column">0</property> - <property name="row">0</property> - </layout> - </object> - </child> - <child> - <object class="GtkLabel"> - <property name="halign">start</property> - <property name="label" translatable="yes">Type your task and press start</property> - <layout> - <property name="column">1</property> - <property name="row">0</property> - </layout> - </object> - </child> - <child> - <object class="GtkImage"> - <property name="icon_name">accessories-text-editor-symbolic</property> - <layout> - <property name="column">0</property> - <property name="row">1</property> - </layout> - </object> - </child> - <child> - <object class="GtkLabel"> - <property name="halign">start</property> - <property name="label" translatable="yes">Prior tasks will show up here</property> - <layout> - <property name="column">1</property> - <property name="row">1</property> - </layout> - </object> - </child> - <child> - <object class="GtkImage"> - <property name="icon_name">input-mouse-symbolic</property> - <layout> - <property name="column">0</property> - <property name="row">2</property> - </layout> - </object> - </child> - <child> - <object class="GtkLabel"> - <property name="halign">start</property> - <property name="label" translatable="yes">Right-click a task to duplicate it</property> - <layout> - <property name="column">1</property> - <property name="row">2</property> - </layout> - </object> - </child> - </object> - </property> + <object class="AdwStatusPage"> </object> </property> </object> diff --git a/src/gtk/window.ui b/src/gtk/window.ui index 25b81ca..20ac46e 100755 --- a/src/gtk/window.ui +++ b/src/gtk/window.ui @@ -34,53 +34,54 @@ </object> </child> <child> - <object class="GtkBox" id="win_box"> - <property name="orientation">vertical</property> - <property name="spacing">10</property> - <property name="halign">center</property> - <property name="width_request">400</property> - <property name="vexpand">True</property> - <child> - <object class="GtkLabel" id="watch"> - <property name="label">00:00:00</property> - <property name="margin_start">12</property> - <property name="margin_end">12</property> - <attributes> - <attribute name="weight" value="bold"/> - <attribute name="scale" value="5"/> - </attributes> - <style> - <class name="numeric"/> - </style> - </object> - </child> - <child> - <object class="GtkBox"> - <property name="spacing">5</property> - <property name="margin_start">12</property> - <property name="margin_end">8</property> - <child> - <object class="GtkEntry" id="task_input"> - <property name="placeholder-text" translatable="yes">Task Name #tags</property> - <property name="hexpand">True</property> - <property name="hexpand-set">True</property> - </object> - </child> - <child> - <object class="GtkButton" id="start_button"> - <property name="icon-name">media-playback-start-symbolic</property> - <style> - <class name="circular"/> - </style> - </object> - </child> - </object> - </child> - <child> - <object class="FurHistoryBox" id="history_box" /> - </child> - </object> - </child> + <object class="GtkBox" id="win_box"> + <property name="orientation">vertical</property> + <property name="spacing">10</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="width_request">400</property> + <property name="vexpand">True</property> + <child> + <object class="GtkLabel" id="watch"> + <property name="label">00:00:00</property> + <property name="margin_start">12</property> + <property name="margin_end">12</property> + <attributes> + <attribute name="weight" value="bold"/> + <attribute name="scale" value="5"/> + </attributes> + <style> + <class name="numeric"/> + </style> + </object> + </child> + <child> + <object class="GtkBox"> + <property name="spacing">5</property> + <property name="margin_start">12</property> + <property name="margin_end">8</property> + <child> + <object class="GtkEntry" id="task_input"> + <property name="placeholder-text" translatable="yes">Task Name #tags</property> + <property name="hexpand">True</property> + <property name="hexpand-set">True</property> + </object> + </child> + <child> + <object class="GtkButton" id="start_button"> + <property name="icon-name">media-playback-start-symbolic</property> + <style> + <class name="circular"/> + </style> + </object> + </child> + </object> + </child> + <child> + <object class="FurHistoryBox" id="history_box" /> + </child> + </object> + </child> </object> </property> </object> diff --git a/src/ui/history_box.rs b/src/ui/history_box.rs index 9d2f59f..445d796 100755 --- a/src/ui/history_box.rs +++ b/src/ui/history_box.rs @@ -19,7 +19,6 @@ use gtk::prelude::*; use gtk::subclass::prelude::*; use gtk::{glib, CompositeTemplate}; -use crate::config; use crate::database; use crate::ui::{FurTasksPage, FurtheranceWindow}; use crate::FurtheranceApplication; @@ -42,8 +41,6 @@ mod imp { #[template_child] pub spinner: TemplateChild<gtk::Spinner>, #[template_child] - pub welcome_page: TemplateChild<adw::StatusPage>, - #[template_child] pub tasks_page: TemplateChild<FurTasksPage>, } @@ -90,13 +87,6 @@ impl FurHistoryBox { } else { self.set_view(View::Empty); } - - // Change "empty" page icon for development mode - let imp = imp::FurHistoryBox::from_instance(self); - if config::PROFILE == "development" { - imp.welcome_page - .set_icon_name(Some("com.lakoliu.Furtherance.Devel")); - } } fn set_view(&self, view: View) { @@ -129,19 +119,20 @@ impl FurHistoryBox { Err(_) => false, }; if is_saved_task { + window.vertical_align(gtk::Align::Start); self.set_view(View::Loading); imp.tasks_page.build_task_list(); self.set_view(View::Tasks); - window.set_height_request(300); } else { self.set_view(View::Empty); - window.set_height_request(390); + window.vertical_align(gtk::Align::Center); } } pub fn empty_view(&self) { self.set_view(View::Empty); let window = FurtheranceWindow::default(); - window.set_height_request(390); + window.vertical_align(gtk::Align::Center); } } + diff --git a/src/ui/window.rs b/src/ui/window.rs index d02d1b5..5670696 100755 --- a/src/ui/window.rs +++ b/src/ui/window.rs @@ -52,6 +52,9 @@ mod imp { pub header_bar: TemplateChild<adw::HeaderBar>, #[template_child] pub add_task: TemplateChild<gtk::Button>, + + #[template_child] + pub win_box: TemplateChild<gtk::Box>, #[template_child] pub watch: TemplateChild<gtk::Label>, #[template_child] @@ -162,15 +165,13 @@ impl FurtheranceWindow { fn setup_widgets(&self) { let imp = imp::FurtheranceWindow::from_instance(self); - // Set initial minimum height + // Set initial minimum height and alignment let is_saved_task: bool = match database::check_for_tasks() { Ok(_) => true, Err(_) => false, }; if is_saved_task { - self.set_height_request(300); - } else { - self.set_height_request(390); + self.vertical_align(gtk::Align::Start); } // Development mode @@ -910,6 +911,12 @@ impl FurtheranceWindow { dialog.show() } + + pub fn vertical_align(&self, align: gtk::Align) { + let imp = imp::FurtheranceWindow::from_instance(self); + imp.win_box.set_valign(align); + } + } impl Default for FurtheranceWindow { |