Added loading to custom location

pull/28/head
parent 7f2753d726
commit 955950a126

@ -10,17 +10,34 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
if (type==YON_CONFIG_GLOBAL){
yon_config_load_config(type,config_get_global_command,NULL);
}
if (type==YON_CONFIG_LOCAL){
} else if (type==YON_CONFIG_LOCAL){
yon_config_load_config(type,config_get_local_command,NULL);
}
} else if (type==YON_CONFIG_CUSTOM){
char *path="";
GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
GtkFileFilter *filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(filter,"*.ini");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter);
gtk_widget_show(dialog);
int response = gtk_dialog_run(GTK_DIALOG(dialog));
if (response == GTK_RESPONSE_ACCEPT){
char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
if (!yon_char_is_empty(file)){
path=file;
}
gtk_widget_destroy(dialog);
} else {
gtk_widget_destroy(dialog);
}
char *command = yon_config_get_custom_command(path);
yon_config_load_config(type,command,NULL);
}
}
void on_config_local_load(GtkWidget *self,main_window *widgets){
if (self){}
if (!main_config.update_thread_active){
main_config.update_thread_active=1;
if (self){};
yon_load_proceed(YON_CONFIG_LOCAL);
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
gdk_threads_add_idle((GSourceFunc)((gboolean*)(void*)yon_interface_update),widgets);
@ -29,9 +46,9 @@ void on_config_local_load(GtkWidget *self,main_window *widgets){
}
void on_config_global_load(GtkWidget *self,main_window *widgets){
if (self){}
if (!main_config.update_thread_active){
main_config.update_thread_active=1;
if (self){};
yon_load_proceed(YON_CONFIG_GLOBAL);
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
gdk_threads_add_idle((GSourceFunc)((gboolean*)(void*)yon_interface_update),widgets);
@ -40,6 +57,16 @@ void on_config_global_load(GtkWidget *self,main_window *widgets){
}
void on_config_custom_load(GtkWidget *self,main_window *widgets){
if (self){}
yon_load_proceed(YON_CONFIG_CUSTOM);
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
main_config.load_mode=3;
yon_interface_update(widgets);
}
// functions
void on_service_constant_update(){
@ -60,6 +87,12 @@ void on_config_global_save(){
}
void on_config_custom_save(GtkWidget *self, main_window *widgets){
if (self&&widgets){}
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL);
if (window){};
}
void on_activate(GtkTreeView *self, main_window *widgets){
if (self&&widgets){};
}
@ -781,6 +814,11 @@ gboolean yon_interface_update(main_window *widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),NULL);
gtk_list_store_clear(widgets->SystemList);
gtk_list_store_clear(widgets->UserList);
gtk_list_store_clear(widgets->ConfigList);
gtk_list_store_clear(widgets->SessionsList);
gtk_list_store_clear(widgets->TimersList);
int system_size;
config_str system_services = yon_config_load(load_services_command,&system_size);
int user_size;
@ -790,7 +828,7 @@ gboolean yon_interface_update(main_window *widgets){
int sessions_size;
config_str sessions = yon_config_load(list_of_session_command,&sessions_size);
int timers_size;
config_str timers = yon_config_load(get_timers_command,&timers_size);
config_str timers = yon_config_load(get_timers_command,&timers_size);
struct json_object *jsobject = json_tokener_parse(timers[0]);
for (int i=0; i<system_size;i++){
GtkTreeIter iter;
@ -1035,6 +1073,7 @@ gboolean yon_interface_update(main_window *widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),GTK_TREE_MODEL(widgets->ConfigList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),GTK_TREE_MODEL(widgets->SessionsList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),GTK_TREE_MODEL(widgets->TimersList));
main_config.update_thread_active=0;
return 0;
}
@ -1186,8 +1225,14 @@ void yon_main_window_complete(main_window *widgets){
END_SESSION_LABEL,stop_icon_path,on_session_end,NULL,
BLOCK_SESSION_LABEL,block_icon_path,on_session_block,NULL,
NULL);
widgets->SystemServiceLabel=yon_gtk_builder_get_widget(builder,"SystemServiceLabel");
{
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->SystemMenu->menu));
gtk_style_context_add_class(gtk_widget_get_style_context(g_list_nth_data(list,3)),"separatorBottom");
gtk_style_context_add_class(gtk_widget_get_style_context(g_list_nth_data(list,8)),"separatorTop");
gtk_style_context_add_class(gtk_widget_get_style_context(g_list_nth_data(list,6)),"separatorBottom");
g_list_free(list);
}
widgets->SystemServiceLabel=yon_gtk_builder_get_widget(builder,"SystemServiceLabel");
widgets->SystemDescriptionLabel=yon_gtk_builder_get_widget(builder,"SystemDescriptionLabel");
}
widgets->TimersMainTree=yon_gtk_builder_get_widget(builder,"TimersMainTree");
@ -1230,57 +1275,36 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->TimersStatusListMenuItem),"activate",G_CALLBACK(on_timers_list_status),widgets);
// g_signal_connect(G_OBJECT(widgets->SystemUnitsTree),"button-press-event",G_CALLBACK(on_context_menu_open),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,0)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,1)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,2)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,3)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,4)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,5)),"notify::width",G_CALLBACK(on_column_resize),widgets);
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("SystemUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->UserUnitsTree));
g_signal_connect(G_OBJECT(g_list_nth_data(list,0)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,1)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,2)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,3)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,4)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,5)),"notify::width",G_CALLBACK(on_column_resize),widgets);
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("UserUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->ConfigMainTree));
g_signal_connect(G_OBJECT(g_list_nth_data(list,0)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,1)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,2)),"notify::width",G_CALLBACK(on_column_resize),widgets);
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("ConfigUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->SessionMainTree));
g_signal_connect(G_OBJECT(g_list_nth_data(list,0)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,1)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,2)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,3)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,4)),"notify::width",G_CALLBACK(on_column_resize),widgets);
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("SessionsUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->TimersMainTree));
g_signal_connect(G_OBJECT(g_list_nth_data(list,0)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,1)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,2)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,3)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,4)),"notify::width",G_CALLBACK(on_column_resize),widgets);
g_signal_connect(G_OBJECT(g_list_nth_data(list,5)),"notify::width",G_CALLBACK(on_column_resize),widgets);
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);
yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("TimersUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT);
}
g_list_free(list);
@ -1288,10 +1312,12 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_global_local_save),NULL);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),NULL);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),NULL);
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),NULL);
g_signal_connect(G_OBJECT(widgets->SystemUnitsTree),"cursor-changed",G_CALLBACK(on_tree_selection_changed),widgets);
gtk_tree_view_set_search_entry(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_ENTRY(widgets->SystemSearchEntry));
yon_load_proceed(YON_CONFIG_LOCAL);

@ -73,6 +73,7 @@
#define config_get_command(target) yon_char_append("cat ",target)
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK",NULL)
#define config_get_local_command "ubconfig --source system get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK"
#define config_get_global_command yon_char_new("ubconfig --source global get system SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK")
#define config_get_default_command ""
@ -234,12 +235,16 @@ void on_config_local_load(GtkWidget *self,main_window *widgets);
void on_config_global_load(GtkWidget *self,main_window *widgets);
void on_config_custom_load(GtkWidget *self,main_window *widgets);
void on_config_global_local_save();
void on_config_local_save();
void on_config_global_save();
void on_config_custom_save(GtkWidget *self, main_window *widgets);
void on_service_constant_update();
log_window *yon_log_window_new();

@ -118,12 +118,16 @@ background:transparent;
border-style:solid;
}
.separator_menu_item{
.separatorTop{
border-color: darker (@theme_bg_color);
border-top-width:1px;
border-style:solid;
margin:0px;
padding:0px;
}
.separatorBottom{
border-color: darker (@theme_bg_color);
border-bottom-width:1px;
border-style:solid;
}
.marginright image{

Loading…
Cancel
Save