Fixed unchanged parameters saving

pull/37/head
parent 6f00fe3319
commit ee57c32861

@ -27,118 +27,130 @@ void on_save_done(main_window *, config_str output, int size){
}
void yon_save_interface( main_window *widgets){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoUpdateCheck))){
yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"enable");
} else {
yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"disable");
}
int save_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateModeCombo));
switch (save_mode){
case 0: yon_config_remove_by_key(AUTOUPDATE_mode);
break;
case 1:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modsys");
break;
case 2:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modules");
break;
case 3:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"system");
break;
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck))){
yon_config_remove_by_key(AUTOUPDATE_interval);
} else {
char *int_str = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin)));
char *interval = "";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->BootCheck))) interval = "boot";
switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo))){
case 0: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"min",NULL);
void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){
if (self == widgets->AutoUpdateCheck){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoUpdateCheck))){
yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"enable");
} else {
yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"disable");
}
} else if (self == widgets->UpdateModeCombo){
int save_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateModeCombo));
switch (save_mode){
case 0: yon_config_remove_by_key(AUTOUPDATE_mode);
break;
case 1: interval = yon_char_unite(int_str,"h",NULL);
case 1:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modsys");
break;
case 2: interval = yon_char_unite(int_str,"d",NULL);
case 2:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modules");
break;
case 3: interval = yon_char_unite(int_str,"M",NULL);
case 3:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"system");
break;
}
yon_config_register(AUTOUPDATE_interval,AUTOUPDATE_interval_command,interval);
} else if (self == widgets->UpdateIntervalDefaultCheck){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck))){
yon_config_remove_by_key(AUTOUPDATE_interval);
} else {
char *int_str = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin)));
char *interval = "";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->BootCheck))) interval = "boot";
switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo))){
case 0: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"min",NULL);
break;
case 1: interval = yon_char_unite(int_str,"h",NULL);
break;
case 2: interval = yon_char_unite(int_str,"d",NULL);
break;
case 3: interval = yon_char_unite(int_str,"M",NULL);
break;
}
yon_config_register(AUTOUPDATE_interval,AUTOUPDATE_interval_command,interval);
}
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateRepoListCheck))){
yon_config_remove_by_key(AUTOUPDATE_repos);
} else {
char *repos = "";
GtkTreeIter iter;
for_iter(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter){
char *target;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter,0,&status,1,&target,-1);
if (status){
char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL);
if (!yon_char_is_empty(repos)) free(repos);
repos = temp;
}
}
yon_config_register(AUTOUPDATE_repos,AUTOUPDATE_repos_command,repos);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck))){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck))){
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only");
} else if (self == widgets->UpdateRepoListCheck){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateRepoListCheck))){
yon_config_remove_by_key(AUTOUPDATE_repos);
} else {
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable");
}
} else {
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"disable");
}
char *repo_net = "";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationConnectPublicCheck))){
repo_net = NULL;
repo_net = "enable";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){
if (!repo_net) repo_net = ",db";
else repo_net = yon_char_unite(repo_net,",","db",NULL);
}else {
repo_net = yon_char_unite(repo_net,",",NULL);
char *repos = "";
GtkTreeIter iter;
for_iter(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter){
char *target;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter,0,&status,1,&target,-1);
if (status){
char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL);
if (!yon_char_is_empty(repos)) free(repos);
repos = temp;
}
}
yon_config_register(AUTOUPDATE_repos,AUTOUPDATE_repos_command,repos);
}
} else {
repo_net = "disable";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){
if (!repo_net) repo_net = ",db";
else repo_net = yon_char_unite(repo_net,",","db",NULL);
} else if (self == widgets->RepositoriesRepoListConfigurationCheck||self == widgets->RepositoriesDisableSystemReposCheck){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck))){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck))){
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only");
} else {
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable");
}
} else {
repo_net = yon_char_unite(repo_net,",",NULL);
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"disable");
}
}
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationCheck))){
yon_config_remove_by_key(REPOPUBLIC_NET_parameter);
} else {
char *repos = "";
GtkTreeIter iter;
for_iter(GTK_TREE_MODEL(widgets->PublicationList),&iter){
char *target;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PublicationList),&iter,0,&status,1,&target,-1);
if (status){
char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL);
if (!yon_char_is_empty(repos)) free(repos);
repos = temp;
} else if (self == widgets->PublicationConnectPublicCheck||self == widgets->RecieveDBFromNetCheck){
char *repo_net = "";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationConnectPublicCheck))){
repo_net = NULL;
repo_net = "enable";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){
if (!repo_net) repo_net = ",db";
else repo_net = yon_char_unite(repo_net,",","db",NULL);
}else {
repo_net = yon_char_unite(repo_net,",",NULL);
}
} else {
repo_net = "disable";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){
if (!repo_net) repo_net = ",db";
else repo_net = yon_char_unite(repo_net,",","db",NULL);
} else {
repo_net = yon_char_unite(repo_net,",",NULL);
}
}
if (!yon_char_is_empty(repos)){
repo_net = yon_char_unite(repo_net,",",repos,NULL);
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationCheck))){
yon_config_remove_by_key(REPOPUBLIC_NET_parameter);
} else {
char *repos = "";
GtkTreeIter iter;
for_iter(GTK_TREE_MODEL(widgets->PublicationList),&iter){
char *target;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PublicationList),&iter,0,&status,1,&target,-1);
if (status){
char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL);
if (!yon_char_is_empty(repos)) free(repos);
repos = temp;
}
}
if (!yon_char_is_empty(repos)){
repo_net = yon_char_unite(repo_net,",",repos,NULL);
}
}
}
yon_config_register(REPOPUBLIC_NET_parameter,REPOPUBLIC_NET_parameter_command,repo_net);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MirrorPublicCheck))){
yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"enable");
} else {
yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"disable");
}
yon_config_register(REPOPUBLIC_NET_parameter,REPOPUBLIC_NET_parameter_command,repo_net);
} else if (self == widgets->MirrorPublicCheck){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MirrorPublicCheck))){
yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"enable");
} else {
yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"disable");
}
}
}
void yon_load_proceed(YON_CONFIG_TYPE type){
@ -439,30 +451,26 @@ void on_web_user_check(GtkToggleButton *self, web_publication_add_window *window
gtk_widget_set_sensitive(window->UserPasswordEntry,(status&&status2));
}
void on_config_save(GtkWidget *, main_window *widgets){
void on_config_save(GtkWidget *, main_window *){
main_config.save_config=2;
yon_save_interface(widgets);
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_BOTH,yon_config_get_custom_command("global"),NULL);
if (window){};
}
void on_config_global_save(GtkWidget *, main_window *widgets){
void on_config_global_save(GtkWidget *, main_window *){
main_config.save_config=0;
yon_save_interface(widgets);
template_saving_window *window = yon_save_proceed("global",YON_CONFIG_GLOBAL,yon_config_get_custom_command("global"),NULL);
if (window){};
}
void on_config_local_save(GtkWidget *, main_window *widgets){
void on_config_local_save(GtkWidget *, main_window *){
main_config.save_config=1;
yon_save_interface(widgets);
template_saving_window *window = yon_save_proceed("system",YON_CONFIG_LOCAL,yon_config_get_custom_command("system"),NULL);
if (window){};
}
void on_config_custom_save(GtkWidget *, main_window *widgets){
void on_config_custom_save(GtkWidget *, main_window *){
main_config.save_config=1;
yon_save_interface(widgets);
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,yon_config_get_custom_command("system"),NULL);
if (window){};
}
@ -1604,6 +1612,16 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->UpdateIntervalSpin);
g_signal_connect(G_OBJECT(widgets->AutoUpdateCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->UpdateModeCombo),"changed",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->UpdateRepoListCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->RepositoriesRepoListConfigurationCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->RepositoriesDisableSystemReposCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->PublicationConnectPublicCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->RecieveDBFromNetCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->MirrorPublicCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets);
GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->WebPublicationTree));
for (unsigned int i=0;i<g_list_length(list);i++){
g_signal_connect_after(G_OBJECT(g_list_nth_data(list,i)),"notify::width",G_CALLBACK(on_column_resize),widgets);

@ -278,7 +278,7 @@ typedef struct {
void on_save_done(main_window *, config_str output, int size);
void yon_save_interface(main_window *widgets);
void on_toggle_button_toggled(GtkWidget *self, main_window *widgets);
void on_config_save(GtkWidget *self, main_window *widgets);
void on_config_global_save(GtkWidget *self, main_window *widgets);
void on_config_local_save(GtkWidget *self, main_window *widgets);

@ -12,4 +12,4 @@ Icon=com.ublinux.ubl-settings-update
Terminal=false
X-XfcePluggable=true
X-UBLPluggable=true
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-SystemSettings;

Loading…
Cancel
Save