Update UI to use country/city chooser

This commit is contained in:
Gergely Polonkai 2014-08-17 11:45:34 +02:00
parent 4e93781bb9
commit 86414b37df
2 changed files with 69 additions and 2 deletions

View File

@ -24,6 +24,8 @@ struct _AgWindowPrivate {
GtkWidget *selection_toolbar; GtkWidget *selection_toolbar;
GtkWidget *stack; GtkWidget *stack;
GtkWidget *name; GtkWidget *name;
GtkWidget *country;
GtkWidget *city;
GtkWidget *north_lat; GtkWidget *north_lat;
GtkWidget *south_lat; GtkWidget *south_lat;
GtkWidget *latitude; GtkWidget *latitude;
@ -55,6 +57,8 @@ struct _AgWindowPrivate {
GtkListStore *house_system_model; GtkListStore *house_system_model;
GtkListStore *db_chart_data; GtkListStore *db_chart_data;
AgDbSave *saved_data; AgDbSave *saved_data;
GtkEntryCompletion *country_comp;
GtkEntryCompletion *city_comp;
}; };
G_DEFINE_QUARK(ag_window_error_quark, ag_window_error); G_DEFINE_QUARK(ag_window_error_quark, ag_window_error);
@ -1387,6 +1391,15 @@ ag_window_list_selection_changed_cb(GdMainView *view, AgWindow *window)
// Here it is possible to set button sensitivity later // Here it is possible to set button sensitivity later
} }
gboolean
ag_window_country_selected_callback(GtkEntryCompletion *country_comp,
GtkTreeModel *list,
GtkTreeIter *iter,
AgWindow *window)
{
return FALSE;
}
static void static void
ag_window_init(AgWindow *window) ag_window_init(AgWindow *window)
{ {
@ -1414,6 +1427,15 @@ ag_window_init(AgWindow *window)
window window
); );
gtk_entry_completion_set_model(priv->country_comp, country_list);
gtk_entry_completion_set_text_column(priv->country_comp, AG_COUNTRY_NAME);
gtk_entry_set_completion(GTK_ENTRY(priv->country), priv->country_comp);
gtk_entry_completion_set_model(priv->city_comp, city_list);
gtk_entry_completion_set_text_column(priv->city_comp, AG_CITY_NAME);
gtk_entry_completion_set_minimum_key_length(priv->city_comp, 3);
gtk_entry_set_completion(GTK_ENTRY(priv->city), priv->city_comp);
house_system_list = gswe_all_house_systems(); house_system_list = gswe_all_house_systems();
g_list_foreach(house_system_list, (GFunc)ag_window_add_house_system, priv); g_list_foreach(house_system_list, (GFunc)ag_window_add_house_system, priv);
g_list_free(house_system_list); g_list_free(house_system_list);
@ -1506,6 +1528,16 @@ ag_window_name_changed_cb(GtkEntry *name_entry, AgWindow *window)
gtk_header_bar_set_subtitle(GTK_HEADER_BAR(priv->header_bar), name); gtk_header_bar_set_subtitle(GTK_HEADER_BAR(priv->header_bar), name);
} }
static void
ag_window_country_changed_callback(GtkSearchEntry *country, AgWindow *window)
{
}
static void
ag_window_city_changed_callback(GtkSearchEntry *city, AgWindow *window)
{
}
static void static void
ag_window_class_init(AgWindowClass *klass) ag_window_class_init(AgWindowClass *klass)
{ {
@ -1544,6 +1576,22 @@ ag_window_class_init(AgWindowClass *klass)
tab_edit tab_edit
); );
gtk_widget_class_bind_template_child_private(widget_class, AgWindow, name); gtk_widget_class_bind_template_child_private(widget_class, AgWindow, name);
gtk_widget_class_bind_template_child_private(
widget_class,
AgWindow,
country
);
gtk_widget_class_bind_template_child_private(
widget_class,
AgWindow,
country_comp
);
gtk_widget_class_bind_template_child_private(widget_class, AgWindow, city);
gtk_widget_class_bind_template_child_private(
widget_class,
AgWindow,
city_comp
);
gtk_widget_class_bind_template_child_private(widget_class, AgWindow, year); gtk_widget_class_bind_template_child_private(widget_class, AgWindow, year);
gtk_widget_class_bind_template_child_private(widget_class, AgWindow, month); gtk_widget_class_bind_template_child_private(widget_class, AgWindow, month);
gtk_widget_class_bind_template_child_private(widget_class, AgWindow, day); gtk_widget_class_bind_template_child_private(widget_class, AgWindow, day);
@ -1642,6 +1690,18 @@ ag_window_class_init(AgWindowClass *klass)
widget_class, widget_class,
ag_window_name_changed_cb ag_window_name_changed_cb
); );
gtk_widget_class_bind_template_callback(
widget_class,
ag_window_country_selected_callback
);
gtk_widget_class_bind_template_callback(
widget_class,
ag_window_country_changed_callback
);
gtk_widget_class_bind_template_callback(
widget_class,
ag_window_city_changed_callback
);
} }
gboolean gboolean

View File

@ -136,6 +136,11 @@
<column type="guint"/> <column type="guint"/>
</columns> </columns>
</object> </object>
<object class="GtkEntryCompletion" id="country_comp">
<signal name="match-selected" handler="ag_window_country_selected_callback" swapped="no"/>
</object>
<object class="GtkEntryCompletion" id="city_comp">
</object>
<template class="AgWindow" parent="GtkApplicationWindow"> <template class="AgWindow" parent="GtkApplicationWindow">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="has_focus">False</property> <property name="has_focus">False</property>
@ -394,10 +399,11 @@
<property name="primary_icon_name">edit-find-symbolic</property> <property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property> <property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property> <property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="ag_window_country_changed_callback" swapped="no"/>
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">2</property> <property name="top_attach">1</property>
<property name="width">3</property> <property name="width">3</property>
</packing> </packing>
</child> </child>
@ -419,10 +425,11 @@
<property name="primary_icon_name">edit-find-symbolic</property> <property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property> <property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property> <property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="ag_window_city_changed_callback" swapped="no"/>
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="top_attach">1</property> <property name="top_attach">2</property>
<property name="width">3</property> <property name="width">3</property>
</packing> </packing>
</child> </child>