[gnome-todo] task-row: improve alignment of labels
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] task-row: improve alignment of labels
- Date: Sun, 23 Apr 2017 17:16:30 +0000 (UTC)
commit 98ee5a2f2f5c88aed87f95b2bd004acbc3ae1096
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sat Apr 22 19:38:14 2017 -0300
task-row: improve alignment of labels
By sharing sizegroups for the due date label and the tasklist
name label, we can force them have the same size without having
to resort to the fixed width horror show.
data/ui/list-view.ui | 6 ++++++
data/ui/task-row.ui | 6 +++---
src/gtd-task-list-view.c | 15 ++++++++++++++-
src/gtd-task-row.c | 9 +++++++++
src/gtd-task-row.h | 4 ++++
5 files changed, 36 insertions(+), 4 deletions(-)
---
diff --git a/data/ui/list-view.ui b/data/ui/list-view.ui
index d9f63ba..2e7c35f 100644
--- a/data/ui/list-view.ui
+++ b/data/ui/list-view.ui
@@ -187,4 +187,10 @@
</object>
</child>
</template>
+ <object class="GtkSizeGroup" id="tasklist_name_sizegroup">
+ <property name="mode">horizontal</property>
+ </object>
+ <object class="GtkSizeGroup" id="due_date_sizegroup">
+ <property name="mode">horizontal</property>
+ </object>
</interface>
diff --git a/data/ui/task-row.ui b/data/ui/task-row.ui
index aa27886..9dbd998 100644
--- a/data/ui/task-row.ui
+++ b/data/ui/task-row.ui
@@ -151,7 +151,8 @@
<object class="GtkLabel" id="task_date_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">1</property>
+ <property name="xalign">0</property>
+ <property name="margin-end">6</property>
<style>
<class name="dim-label"/>
</style>
@@ -161,8 +162,7 @@
<object class="GtkLabel" id="task_list_label">
<property name="visible">False</property>
<property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="width_chars">18</property>
+ <property name="xalign">0</property>
<property name="max_width_chars">18</property>
<property name="ellipsize">middle</property>
<style>
diff --git a/src/gtd-task-list-view.c b/src/gtd-task-list-view.c
index ec90946..0e6b6a9 100644
--- a/src/gtd-task-list-view.c
+++ b/src/gtd-task-list-view.c
@@ -106,7 +106,9 @@ typedef struct
GtdTaskListViewSortFunc sort_func;
gpointer sort_user_data;
- GtkWidget *active_row;
+ GtkWidget *active_row;
+ GtkSizeGroup *due_date_sizegroup;
+ GtkSizeGroup *tasklist_name_sizegroup;
} GtdTaskListViewPrivate;
struct _GtdTaskListView
@@ -927,6 +929,15 @@ insert_task (GtdTaskListView *self,
gtk_list_box_insert (priv->listbox,
new_row,
0);
+
+ /*
+ * Setup a sizegroup to let all the tasklist labels have
+ * the same width.
+ */
+ gtd_task_row_set_sizegroups (GTD_TASK_ROW (new_row),
+ priv->tasklist_name_sizegroup,
+ priv->due_date_sizegroup);
+
gtd_task_row_reveal (GTD_TASK_ROW (new_row));
}
@@ -1631,6 +1642,7 @@ gtd_task_list_view_class_init (GtdTaskListViewClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, arrow_frame);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, dnd_row);
+ gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, due_date_sizegroup);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, edit_pane);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, edit_revealer);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, empty_box);
@@ -1639,6 +1651,7 @@ gtd_task_list_view_class_init (GtdTaskListViewClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, done_image);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, done_label);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, new_task_row);
+ gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, tasklist_name_sizegroup);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, viewport);
gtk_widget_class_bind_template_child_private (widget_class, GtdTaskListView, scrolled_window);
diff --git a/src/gtd-task-row.c b/src/gtd-task-row.c
index 471afe8..d9f3a15 100644
--- a/src/gtd-task-row.c
+++ b/src/gtd-task-row.c
@@ -832,3 +832,12 @@ gtd_task_row_set_active (GtdTaskRow *self,
gtk_stack_set_visible_child_name (self->task_stack, "label");
}
}
+
+void
+gtd_task_row_set_sizegroups (GtdTaskRow *self,
+ GtkSizeGroup *name_group,
+ GtkSizeGroup *date_group)
+{
+ gtk_size_group_add_widget (name_group, GTK_WIDGET (self->task_list_label));
+ gtk_size_group_add_widget (name_group, GTK_WIDGET (self->task_date_label));
+}
diff --git a/src/gtd-task-row.h b/src/gtd-task-row.h
index 4437ae8..3f43936 100644
--- a/src/gtd-task-row.h
+++ b/src/gtd-task-row.h
@@ -54,6 +54,10 @@ gboolean gtd_task_row_get_active (GtdTaskRow
void gtd_task_row_set_active (GtdTaskRow *self,
gboolean active);
+void gtd_task_row_set_sizegroups (GtdTaskRow *self,
+ GtkSizeGroup *name_group,
+ GtkSizeGroup *date_group);
+
G_END_DECLS
#endif /* GTD_TASK_ROW_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]