Added loading spinners; load mode changes

pull/93/head
parent a176e5c5fc
commit 58ed2dd0af

@ -74,7 +74,7 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
yon_load_proceed(YON_CONFIG_LOCAL);
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
g_thread_new("update",(GThreadFunc)yon_interface_update,widgets);
main_config.load_mode=1;
main_config.load_mode=YON_CONFIG_LOCAL;
}
}
@ -84,7 +84,7 @@ void on_config_global_load(GtkWidget *,main_window *widgets){
yon_load_proceed(YON_CONFIG_GLOBAL);
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
g_thread_new("update",(GThreadFunc)yon_interface_update,widgets);
main_config.load_mode=0;
main_config.load_mode=YON_CONFIG_GLOBAL;
}
}
@ -94,7 +94,7 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
main_config.load_mode=3;
main_config.load_mode=YON_CONFIG_CUSTOM;
g_thread_new("update",(GThreadFunc)yon_interface_update,widgets);
}
@ -1157,6 +1157,11 @@ gboolean yon_interface_list_models_disconnect(main_window *widgets){
gtk_list_store_clear(widgets->UserList);
gtk_list_store_clear(widgets->ConfigList);
gtk_list_store_clear(widgets->TimersList);
gtk_spinner_start(GTK_SPINNER(widgets->SystemLoadingSpinner));
gtk_spinner_start(GTK_SPINNER(widgets->UserLoadingSpinner));
gtk_spinner_start(GTK_SPINNER(widgets->ConfigLoadingSpinner));
gtk_spinner_start(GTK_SPINNER(widgets->SessionsLoadingSpinner));
gtk_spinner_start(GTK_SPINNER(widgets->TimersLoadingSpinner));
g_signal_handlers_block_by_func(G_OBJECT(widgets->UserFiltersCombo),G_CALLBACK(on_filter_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->UserSearchEntry),G_CALLBACK(on_filter_changed),widgets);
@ -1178,6 +1183,11 @@ gboolean yon_interface_list_models_connect(main_window *widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserSort));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),GTK_TREE_MODEL(widgets->ConfigList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),GTK_TREE_MODEL(widgets->TimersList));
gtk_spinner_stop(GTK_SPINNER(widgets->SystemLoadingSpinner));
gtk_spinner_stop(GTK_SPINNER(widgets->UserLoadingSpinner));
gtk_spinner_stop(GTK_SPINNER(widgets->ConfigLoadingSpinner));
gtk_spinner_stop(GTK_SPINNER(widgets->SessionsLoadingSpinner));
gtk_spinner_stop(GTK_SPINNER(widgets->TimersLoadingSpinner));
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->UserFiltersCombo),G_CALLBACK(on_filter_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->UserSearchEntry),G_CALLBACK(on_filter_changed),widgets);
@ -1344,7 +1354,7 @@ gboolean yon_interface_update_finish(main_window *widgets){
}
}
main_config.update_thread_active=0;
char *final = yon_char_unite(yon_char_get_localised_from_lib(SUCCESS_LABEL),". ",main_config.load_mode==0?yon_char_get_localised_from_lib(GLOBAL_LOAD_SUCCESS_LABEL):yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL),NULL);
char *final = yon_char_unite(yon_char_get_localised_from_lib(SUCCESS_LABEL),". ",main_config.load_mode==YON_CONFIG_GLOBAL?yon_char_get_localised_from_lib(GLOBAL_LOAD_SUCCESS_LABEL):yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL),NULL);
yon_ubl_status_box_render(final,BACKGROUND_IMAGE_SUCCESS_TYPE);
free(final);
return G_SOURCE_REMOVE;
@ -1716,7 +1726,7 @@ void config_init(){
main_config.lock_load_global=0;
main_config.lock_save_global=0;
main_config.lock_save_local=0;
main_config.load_mode=1;
main_config.load_mode=YON_CONFIG_LOCAL;
main_config.update_thread_active=0;
main_config.launch_arguments=NULL;
main_config.launch_size=0;
@ -1902,6 +1912,17 @@ void yon_main_window_complete(main_window *widgets){
widgets->SystemUnitsTree=yon_gtk_builder_get_widget(builder,"SystemUnitsTree");
widgets->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
widgets->SystemLoadingOverlay=yon_gtk_builder_get_widget(builder,"SystemLoadingOverlay");
widgets->SystemLoadingSpinner=yon_gtk_builder_get_widget(builder,"SystemLoadingSpinner");
widgets->UserLoadingOverlay=yon_gtk_builder_get_widget(builder,"UserLoadingOverlay");
widgets->UserLoadingSpinner=yon_gtk_builder_get_widget(builder,"UserLoadingSpinner");
widgets->ConfigLoadingOverlay=yon_gtk_builder_get_widget(builder,"ConfigLoadingOverlay");
widgets->ConfigLoadingSpinner=yon_gtk_builder_get_widget(builder,"ConfigLoadingSpinner");
widgets->SessionsLoadingOverlay=yon_gtk_builder_get_widget(builder,"SessionsLoadingOverlay");
widgets->SessionsLoadingSpinner=yon_gtk_builder_get_widget(builder,"SessionsLoadingSpinner");
widgets->TimersLoadingOverlay=yon_gtk_builder_get_widget(builder,"TiemrsLoadingOverlay");
widgets->TimersLoadingSpinner=yon_gtk_builder_get_widget(builder,"TimersLoadingSpinner");
widgets->TooltipBox=yon_gtk_builder_get_widget(builder,"TooltipBox");
widgets->NameLabel=yon_gtk_builder_get_widget(builder,"NameLabel");
widgets->DescriptionLabel=yon_gtk_builder_get_widget(builder,"DescriptionLabel");
@ -2100,6 +2121,11 @@ void yon_main_window_complete(main_window *widgets){
gtk_widget_set_sensitive(widgets->SystemUpdateButton,0);
gtk_widget_set_sensitive(widgets->SystemPrevButton,0);
}
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->SystemLoadingOverlay),widgets->SystemLoadingSpinner);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->UserLoadingOverlay),widgets->UserLoadingSpinner);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->ConfigLoadingOverlay),widgets->ConfigLoadingSpinner);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->SessionsLoadingOverlay),widgets->SessionsLoadingSpinner);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->TimersLoadingOverlay),widgets->TimersLoadingSpinner);
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->UserUnitsTree));
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->SystemUnitsTree));
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->ConfigMainTree));

@ -241,6 +241,16 @@ typedef struct {
rmb_menu_window *SystemMenu;
GtkWidget *SystemServiceLabel;
GtkWidget *SystemDescriptionLabel;
GtkWidget *SystemLoadingOverlay;
GtkWidget *SystemLoadingSpinner;
GtkWidget *UserLoadingOverlay;
GtkWidget *UserLoadingSpinner;
GtkWidget *ConfigLoadingOverlay;
GtkWidget *ConfigLoadingSpinner;
GtkWidget *SessionsLoadingOverlay;
GtkWidget *SessionsLoadingSpinner;
GtkWidget *TimersLoadingOverlay;
GtkWidget *TimersLoadingSpinner;
GtkWidget *UserSearchEntry;
GtkWidget *UserFiltersCombo;

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-services">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-services.css -->
@ -13,6 +13,14 @@
<column type="gchararray"/>
</columns>
</object>
<object class="GtkSpinner" id="ConfigLoadingSpinner">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<object class="GtkSpinner" id="SessionLoadingSpinner">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<object class="GtkListStore" id="SessionsList">
<columns>
<!-- column-name Id -->
@ -69,6 +77,10 @@
<object class="GtkTreeModelSort" id="SystemSort">
<property name="model">SystemFilter</property>
</object>
<object class="GtkSpinner" id="SystemLoadingSpinner">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<object class="GtkListStore" id="TimersList">
<columns>
<!-- column-name gchararray1 -->
@ -85,6 +97,10 @@
<column type="gchararray"/>
</columns>
</object>
<object class="GtkSpinner" id="TimersLoadingSpinner">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<object class="GtkBox" id="TooltipBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -371,6 +387,10 @@
<object class="GtkTreeModelSort" id="UserSort">
<property name="model">UserFilter</property>
</object>
<object class="GtkSpinner" id="UserLoadingSpinner">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -906,6 +926,10 @@
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkOverlay" id="SystemLoadingOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
@ -917,9 +941,6 @@
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<property name="enable-grid-lines">vertical</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">fixed</property>
@ -959,9 +980,6 @@
<property name="search-column">5</property>
<property name="enable-grid-lines">both</property>
<property name="tooltip-column">12</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
@ -1084,6 +1102,11 @@
</packing>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
@ -1527,6 +1550,10 @@
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkOverlay" id="UserLoadingOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
@ -1537,9 +1564,6 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Configure in configuration</property>
@ -1576,9 +1600,6 @@
<property name="search-column">5</property>
<property name="enable-grid-lines">both</property>
<property name="tooltip-column">12</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
@ -1702,6 +1723,11 @@
</packing>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
@ -1888,6 +1914,10 @@
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkOverlay" id="ConfigLoadingOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
@ -1898,9 +1928,6 @@
<property name="can-focus">True</property>
<property name="model">ConfigList</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
@ -1948,6 +1975,11 @@
</object>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
@ -2103,6 +2135,10 @@
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkOverlay" id="SessionsLoadingOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
@ -2113,9 +2149,6 @@
<property name="can-focus">True</property>
<property name="model">SessionsList</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
@ -2205,6 +2238,11 @@
</object>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
@ -2277,6 +2315,10 @@
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkOverlay" id="TimersLoadingOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
@ -2287,9 +2329,6 @@
<property name="can-focus">True</property>
<property name="model">TimersList</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
@ -2382,6 +2421,11 @@
</object>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>

Loading…
Cancel
Save