|
|
|
@ -393,6 +393,38 @@ void on_system_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean sort_bool(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b,gpointer col){
|
|
|
|
|
|
|
|
int val_a,val_b;
|
|
|
|
|
|
|
|
char *name_a="", *name_b="";
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,a,GPOINTER_TO_INT(col),&val_a,6,&name_a,-1);
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,b,GPOINTER_TO_INT(col),&val_b,6,&name_b,-1);
|
|
|
|
|
|
|
|
if (val_a==val_b){
|
|
|
|
|
|
|
|
gchar *key_a = g_utf8_collate_key(name_a, -1);
|
|
|
|
|
|
|
|
gchar *key_b = g_utf8_collate_key(name_b, -1);
|
|
|
|
|
|
|
|
gint result = strcmp(key_a, key_b);
|
|
|
|
|
|
|
|
g_free(key_a);
|
|
|
|
|
|
|
|
g_free(key_b);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return val_a ? -1 : 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean sort_string(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b,gpointer col){
|
|
|
|
|
|
|
|
char *name_a="", *name_b="";
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,a,GPOINTER_TO_INT(col),&name_a,-1);
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,b,GPOINTER_TO_INT(col),&name_b,-1);
|
|
|
|
|
|
|
|
if (!name_a) name_a="";
|
|
|
|
|
|
|
|
if (!name_b) name_b="";
|
|
|
|
|
|
|
|
gchar *key_a = g_utf8_collate_key(name_a, -1);
|
|
|
|
|
|
|
|
gchar *key_b = g_utf8_collate_key(name_b, -1);
|
|
|
|
|
|
|
|
gint result = strcmp(key_a, key_b);
|
|
|
|
|
|
|
|
g_free(key_a);
|
|
|
|
|
|
|
|
g_free(key_b);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gboolean yon_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets){
|
|
|
|
gboolean yon_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets){
|
|
|
|
gboolean autostart,autostop,masked,type,loaded,active;
|
|
|
|
gboolean autostart,autostop,masked,type,loaded,active;
|
|
|
|
char *name;
|
|
|
|
char *name;
|
|
|
|
@ -1149,14 +1181,14 @@ gboolean yon_interface_list_models_connect(main_window *widgets){
|
|
|
|
gboolean yon_system_set(struct system_services_data *data){
|
|
|
|
gboolean yon_system_set(struct system_services_data *data){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(data->widgets->SystemList,&iter);
|
|
|
|
gtk_list_store_append(data->widgets->SystemList,&iter);
|
|
|
|
gtk_list_store_set(data->widgets->SystemList,&iter,3,data->SystemAutostart,4,data->SystemLaunched,5,data->Name,6,data->Descr,7,data->Type,8,data->Loaded,9,data->Active,11,data->State,-1);
|
|
|
|
gtk_list_store_set(data->widgets->SystemList,&iter,3,data->SystemAutostart,4,data->SystemLaunched,5,data->Name,6,data->Descr,7,data->Type,8,data->Loaded,9,data->Active,11,_(data->State),13,data->State,-1);
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gboolean yon_user_set(struct system_user_data *data){
|
|
|
|
gboolean yon_user_set(struct system_user_data *data){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(data->widgets->UserList,&iter);
|
|
|
|
gtk_list_store_append(data->widgets->UserList,&iter);
|
|
|
|
gtk_list_store_set(data->widgets->UserList,&iter,3,data->SystemAutostart,4,data->SystemLaunched,5,data->Name,6,data->Descr,5,data->Name,6,data->Descr,7,data->Type,8,data->Loaded,9,data->Active,11,data->State,-1);
|
|
|
|
gtk_list_store_set(data->widgets->UserList,&iter,3,data->SystemAutostart,4,data->SystemLaunched,5,data->Name,6,data->Descr,5,data->Name,6,data->Descr,7,data->Type,8,data->Loaded,9,data->Active,11,_(data->State),13,data->State,-1);
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -1366,7 +1398,7 @@ void* yon_interface_update(main_window *widgets){
|
|
|
|
int active = !strcmp(parsed[2],"active");
|
|
|
|
int active = !strcmp(parsed[2],"active");
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(parsed[0]);
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(parsed[0]);
|
|
|
|
gtk_list_store_append(widgets->SystemList,&iter);
|
|
|
|
gtk_list_store_append(widgets->SystemList,&iter);
|
|
|
|
gtk_list_store_set(widgets->SystemList,&iter,3,loaded,4,active,5,parsed[0],6,parsed[4],7,type,8,active,9,1,11,_(parsed[3]),-1);
|
|
|
|
gtk_list_store_set(widgets->SystemList,&iter,3,loaded,4,active,5,parsed[0],6,parsed[4],7,type,8,active,9,1,11,_(parsed[3]),13,parsed[3],-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1376,7 +1408,7 @@ void* yon_interface_update(main_window *widgets){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(widgets->SystemList,&iter);
|
|
|
|
gtk_list_store_append(widgets->SystemList,&iter);
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(system_units[i]);
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(system_units[i]);
|
|
|
|
gtk_list_store_set(widgets->SystemList,&iter,0,0,1,0,2,0,3,0,4,0,5,system_units[i],6,"",7,type,8,0,9,0,10,0,11,_("disabled"),-1);
|
|
|
|
gtk_list_store_set(widgets->SystemList,&iter,0,0,1,0,2,0,3,0,4,0,5,system_units[i],6,"",7,type,8,0,9,0,10,0,11,_("disabled"),13,"disabled",-1);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1416,7 +1448,7 @@ void* yon_interface_update(main_window *widgets){
|
|
|
|
int active = !strcmp(parsed[2],"active");
|
|
|
|
int active = !strcmp(parsed[2],"active");
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(parsed[0]);
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(parsed[0]);
|
|
|
|
gtk_list_store_append(widgets->UserList,&iter);
|
|
|
|
gtk_list_store_append(widgets->UserList,&iter);
|
|
|
|
gtk_list_store_set(widgets->UserList,&iter,3,loaded,4,active,5,parsed[0],6,parsed[4],7,type,8,active,9,1,11,_(parsed[3]),-1);
|
|
|
|
gtk_list_store_set(widgets->UserList,&iter,3,loaded,4,active,5,parsed[0],6,parsed[4],7,type,8,active,9,1,11,_(parsed[3]),13,parsed[3],-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1426,7 +1458,7 @@ void* yon_interface_update(main_window *widgets){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(widgets->UserList,&iter);
|
|
|
|
gtk_list_store_append(widgets->UserList,&iter);
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(user_units[i]);
|
|
|
|
enum YON_UNIT_TYPE type = yon_get_unit_type(user_units[i]);
|
|
|
|
gtk_list_store_set(widgets->UserList,&iter,0,0,1,0,2,0,3,0,4,0,5,user_units[i],6,"",7,type,8,0,9,0,10,0,11,_("disabled"),-1);
|
|
|
|
gtk_list_store_set(widgets->UserList,&iter,0,0,1,0,2,0,3,0,4,0,5,user_units[i],6,"",7,type,8,0,9,0,10,0,11,_("disabled"),13,"disabled",-1);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -2042,6 +2074,11 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
|
|
|
|
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
|
|
|
|
gtk_tree_model_filter_set_visible_func(widgets->UserFilter,(GtkTreeModelFilterVisibleFunc)yon_filter,widgets,NULL);
|
|
|
|
gtk_tree_model_filter_set_visible_func(widgets->UserFilter,(GtkTreeModelFilterVisibleFunc)yon_filter,widgets,NULL);
|
|
|
|
gtk_tree_model_filter_set_visible_func(widgets->SystemFilter,(GtkTreeModelFilterVisibleFunc)yon_filter,widgets,NULL);
|
|
|
|
gtk_tree_model_filter_set_visible_func(widgets->SystemFilter,(GtkTreeModelFilterVisibleFunc)yon_filter,widgets,NULL);
|
|
|
|
|
|
|
|
for (int i=0;i<5;i++){
|
|
|
|
|
|
|
|
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(widgets->SystemSort),i,(GtkTreeIterCompareFunc)sort_bool,GINT_TO_POINTER(i),NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(widgets->SystemSort),5,(GtkTreeIterCompareFunc)sort_string,GINT_TO_POINTER(13),NULL);
|
|
|
|
|
|
|
|
gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(widgets->SystemSort),6,(GtkTreeIterCompareFunc)sort_string,GINT_TO_POINTER(6),NULL);
|
|
|
|
gtk_tree_view_set_search_column(GTK_TREE_VIEW(widgets->UserUnitsTree),5);
|
|
|
|
gtk_tree_view_set_search_column(GTK_TREE_VIEW(widgets->UserUnitsTree),5);
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|