diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 4b25d88..7b132cd 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -660,7 +660,6 @@ void on_scrolled_window_size_allocate(GtkWidget *, GdkRectangle *allocation, rep void on_repo_add(GtkWidget *, main_window *widgets){ gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MirrorTree))); repo_add_window *window = yon_repo_add_window_new(); - g_signal_connect(G_OBJECT(window->RepoSourceCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),window->RepoSourceButton); yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),ADD_REPO_LABEL,icon_path,"add_repo_window"); dictionary *dict = NULL; @@ -1525,6 +1524,15 @@ void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window){ } +void on_repo_source_changed(GtkComboBox *self, repo_add_window *window){ + int active = gtk_combo_box_get_active(self); + if (active ==0 || active == 4){ + gtk_widget_set_sensitive(window->RepoSourceButton,1); + } else { + gtk_widget_set_sensitive(window->RepoSourceButton,0); + } +} + repo_add_window *yon_repo_add_window_new(){ GtkBuilder *builder = gtk_builder_new_from_resource(glade_repo_add_path); repo_add_window *window = malloc(sizeof(repo_add_window)); @@ -1568,6 +1576,7 @@ repo_add_window *yon_repo_add_window_new(){ yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->RepoSourceEntry)); g_signal_connect(G_OBJECT(window->SignDefaultCheck),"toggled",G_CALLBACK(on_sign_check_toggled),window); g_signal_connect(G_OBJECT(window->SignCell),"toggled",G_CALLBACK(on_sign_cell_toggled),window); + g_signal_connect(G_OBJECT(window->RepoSourceCombo),"changed",G_CALLBACK(on_repo_source_changed),window); // g_signal_connect(G_OBJECT(window->SourceListBox),"size-allocate",G_CALLBACK(on_scrolled_window_size_allocate),window); gtk_widget_show(window->Window); @@ -1659,6 +1668,17 @@ mirror_configure_window *yon_mirror_configure_window_new(){ return window; } +void on_mirror_type_changed(GtkComboBox *self, mirror_add_window *window){ + int active = gtk_combo_box_get_active(self); + if (active == 2){ + gtk_widget_set_sensitive(window->AddButton,1); + gtk_widget_set_sensitive(window->TypeButton,1); + } else { + gtk_widget_set_sensitive(window->AddButton,0); + gtk_widget_set_sensitive(window->TypeButton,0); + } +} + mirror_add_window *yon_mirror_add_window_new(){ GtkBuilder *builder = gtk_builder_new_from_resource(glade_mirror_add_path); mirror_add_window *window = malloc(sizeof(mirror_add_window)); @@ -1682,6 +1702,7 @@ mirror_add_window *yon_mirror_add_window_new(){ g_signal_connect(G_OBJECT(window->TypeButton),"clicked",G_CALLBACK(on_file_chooser_open),window->TypeEntry); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_mirror_path_add),window); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + g_signal_connect(G_OBJECT(window->TypeCombo),"changed",G_CALLBACK(on_mirror_type_changed),window); gtk_widget_show(window->Window); return window; diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index 3608cc8..ad51efc 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -330,6 +330,8 @@ void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window); void on_password_encryption_changed(GtkComboBox *self, password_window *dialog); +void on_mirror_type_changed(GtkComboBox *self, mirror_add_window *window); +void on_repo_source_changed(GtkComboBox *self, repo_add_window *window); password_window *yon_password_window_new(); repo_add_window *yon_repo_add_window_new(); web_publication_add_window *yon_web_publication_add_window_new();