about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/gtk/history_box.ui68
-rwxr-xr-xsrc/gtk/window.ui95
-rwxr-xr-xsrc/ui/history_box.rs17
-rwxr-xr-xsrc/ui/window.rs15
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 {