Uncheck all check buttons improvements

pull/398/head
parent d74a14e427
commit 2966985532

@ -1,50 +1,53 @@
#include "ubinstall-gtk.h" #include "ubinstall-gtk.h"
void on_os_components_uncheck_all(GtkWidget *,main_window *widgets){
int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck));
switch(active){
case 1:{
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
GList *iter;
for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row");
int sensitive = gtk_widget_get_sensitive(row->InstallCheck);
if (sensitive){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0);
}
}
} break;
}
gtk_widget_hide(widgets->OSSoftwareUncheckAllCheck);
g_signal_handlers_block_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck),0);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets);
}
// void on_os_components_uncheck_all(GtkWidget *,main_window *widgets){ // void on_os_components_uncheck_all(GtkWidget *,main_window *widgets){
// int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck)); // int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck));
// switch(active){
// case 1:{
// GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); // GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
// GList *iter; // GList *iter;
// for(iter = list;iter;iter=iter->next){ // for(iter = list;iter;iter=iter->next){
// os_row *row = g_object_get_data(iter->data,"kernel_row"); // os_row *row = g_object_get_data(iter->data,"kernel_row");
// int sensitive = gtk_widget_get_sensitive(row->InstallCheck); // int sensitive = gtk_widget_get_sensitive(row->InstallCheck);
// if (sensitive){ // if (sensitive){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),!active); // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0);
// } // }
// } // }
// switch(active){ // } break;
// case 0: gtk_button_set_label(GTK_BUTTON(widgets->OSSoftwareUncheckAllCheck),UNCHECK_ALL_LABEL);
// break;
// case 1: gtk_button_set_label(GTK_BUTTON(widgets->OSSoftwareUncheckAllCheck),CHECK_ALL_LABEL);
// } // }
// gtk_widget_hide(widgets->OSSoftwareUncheckAllCheck);
// g_signal_handlers_block_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets); // g_signal_handlers_block_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets);
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck),0); // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck),0);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets); // g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets);
// } // }
void on_os_components_switch_all(GtkWidget *self,main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_os_components_switch_all),widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self),0);
g_signal_handlers_unblock_by_func(G_OBJECT(self),G_CALLBACK(on_os_components_switch_all),widgets);
int active = !!g_object_get_data(G_OBJECT(self),"uncheck");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
GList *iter;
for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row");
int sensitive = gtk_widget_get_sensitive(row->InstallCheck);
if (sensitive){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),!active);
}
}
switch(active){
case 0: gtk_button_set_label(GTK_BUTTON(self),UNCHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(self),"uncheck",widgets);
break;
case 1: gtk_button_set_label(GTK_BUTTON(self),CHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(self),"uncheck",NULL);
}
}
int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){ int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){
long pacman_size = 0; long pacman_size = 0;
{ {
int active = 1;
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
GList *listiter; GList *listiter;
for (listiter=list;listiter;listiter=listiter->next){ for (listiter=list;listiter;listiter=listiter->next){
@ -53,15 +56,17 @@ int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){
long cur_size = row->size_raw; long cur_size = row->size_raw;
pacman_size += cur_size; pacman_size += cur_size;
if (gtk_widget_get_sensitive(row->InstallCheck)){ if (gtk_widget_get_sensitive(row->InstallCheck)){
gtk_widget_show(widgets->OSSoftwareUncheckAllCheck); // gtk_widget_show(widgets->OSSoftwareUncheckAllCheck);
// gtk_button_set_label(GTK_BUTTON(widgets->OSSoftwareUncheckAllCheck),UNCHECK_ALL_LABEL); active = 0;
}
} }
// } else {
// gtk_button_set_label(GTK_BUTTON(widgets->OSSoftwareUncheckAllCheck),CHECK_ALL_LABEL);
// g_signal_handlers_block_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets);
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck),1);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets);
} }
switch(active){
case 0: gtk_button_set_label(GTK_BUTTON(widgets->OSSoftwareUncheckAllCheck),UNCHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),"uncheck",widgets);
break;
case 1: gtk_button_set_label(GTK_BUTTON(widgets->OSSoftwareUncheckAllCheck),CHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),"uncheck",NULL);
} }
} }
{ {
@ -299,12 +304,9 @@ void yon_os_components_init(main_window *widgets){
if (!main_config.configure_mode){ if (!main_config.configure_mode){
yon_config_update_by_args(main_config.config_load_path, modules_parameter,NULL); yon_config_update_by_args(main_config.config_load_path, modules_parameter,NULL);
} }
// int size = 0;
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
GList *iter; GList *iter;
for (iter=list;iter;iter=iter->next){ for (iter=list;iter;iter=iter->next){
// os_row *row = g_object_get_data(iter->data,"kernel_row");
// free(row);
gtk_widget_destroy(GTK_WIDGET(iter->data)); gtk_widget_destroy(GTK_WIDGET(iter->data));
} }
if (!gtk_widget_get_parent(widgets->OSSpinner)) if (!gtk_widget_get_parent(widgets->OSSpinner))
@ -315,25 +317,48 @@ void yon_os_components_init(main_window *widgets){
while(gtk_events_pending()) gtk_main_iteration(); while(gtk_events_pending()) gtk_main_iteration();
} }
void on_software_uncheck_all(GtkWidget *, main_window *widgets){ // void on_software_uncheck_all(GtkWidget *, main_window *widgets){
int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AdditionalComponentsUncheckAllCheck)); // int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AdditionalComponentsUncheckAllCheck));
switch(active){ // switch(active){
case 1:{ // case 1:{
// GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList));
// GList *iter;
// for(iter = list;iter;iter=iter->next){
// os_row *row = g_object_get_data(iter->data,"kernel_row");
// int sensitive = gtk_widget_get_sensitive(row->InstallCheck);
// if (sensitive){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0);
// }
// }
// } break;
// }
// gtk_widget_hide(widgets->AdditionalComponentsUncheckAllCheck);
// g_signal_handlers_block_by_func(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),on_software_switch_all,widgets);
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AdditionalComponentsUncheckAllCheck),0);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),on_software_switch_all,widgets);
// }
void on_software_switch_all(GtkWidget *self,main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_software_switch_all),widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self),0);
g_signal_handlers_unblock_by_func(G_OBJECT(self),G_CALLBACK(on_software_switch_all),widgets);
int active = !!g_object_get_data(G_OBJECT(self),"uncheck");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList));
GList *iter; GList *iter;
for(iter = list;iter;iter=iter->next){ for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row"); os_row *row = g_object_get_data(iter->data,"kernel_row");
int sensitive = gtk_widget_get_sensitive(row->InstallCheck); int sensitive = gtk_widget_get_sensitive(row->InstallCheck);
if (sensitive){ if (sensitive){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),!active);
} }
} }
} break; switch(active){
case 0: gtk_button_set_label(GTK_BUTTON(self),UNCHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(self),"uncheck",widgets);
break;
case 1: gtk_button_set_label(GTK_BUTTON(self),CHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(self),"uncheck",NULL);
} }
gtk_widget_hide(widgets->AdditionalComponentsUncheckAllCheck);
g_signal_handlers_block_by_func(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),on_software_uncheck_all,widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AdditionalComponentsUncheckAllCheck),0);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),on_software_uncheck_all,widgets);
} }
int yon_software_save(main_window *widgets){ int yon_software_save(main_window *widgets){
@ -378,6 +403,7 @@ int yon_software_save(main_window *widgets){
int yon_software_check_packages_size(GtkWidget *, main_window *widgets){ int yon_software_check_packages_size(GtkWidget *, main_window *widgets){
long pacman_size = 0; long pacman_size = 0;
{ {
int active = 1;
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionalComponentsList));
GList *listiter; GList *listiter;
for (listiter=list;listiter;listiter=listiter->next){ for (listiter=list;listiter;listiter=listiter->next){
@ -386,9 +412,17 @@ int yon_software_check_packages_size(GtkWidget *, main_window *widgets){
long cur_size = row->size_raw; long cur_size = row->size_raw;
pacman_size += cur_size; pacman_size += cur_size;
if (gtk_widget_get_sensitive(row->InstallCheck)){ if (gtk_widget_get_sensitive(row->InstallCheck)){
gtk_widget_show(widgets->AdditionalComponentsUncheckAllCheck); // gtk_widget_show(widgets->AdditionalComponentsUncheckAllCheck);
active = 0;
}
} }
} }
switch(active){
case 0: gtk_button_set_label(GTK_BUTTON(widgets->AdditionalComponentsUncheckAllCheck),UNCHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),"uncheck",widgets);
break;
case 1: gtk_button_set_label(GTK_BUTTON(widgets->AdditionalComponentsUncheckAllCheck),CHECK_ALL_LABEL);
g_object_set_data(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),"uncheck",NULL);
} }
} }
{ {

@ -830,8 +830,8 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),"toggled",G_CALLBACK(on_os_components_uncheck_all),widgets); g_signal_connect(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),"toggled",G_CALLBACK(on_os_components_switch_all),widgets);
g_signal_connect(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),"toggled",G_CALLBACK(on_software_uncheck_all),widgets); g_signal_connect(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),"toggled",G_CALLBACK(on_software_switch_all),widgets);
g_signal_connect(G_OBJECT(widgets->NextInstallationSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets); g_signal_connect(G_OBJECT(widgets->NextInstallationSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets);
g_signal_connect(G_OBJECT(widgets->UserdataFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets); g_signal_connect(G_OBJECT(widgets->UserdataFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets);
g_signal_connect(G_OBJECT(widgets->OSFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets); g_signal_connect(G_OBJECT(widgets->OSFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets);

@ -1616,11 +1616,11 @@ void yon_gtk_widget_set_translation(GtkWidget *target);
void on_bootloader_user_edit(GtkWidget *, main_window *widgets); void on_bootloader_user_edit(GtkWidget *, main_window *widgets);
void on_bootloader_admin_toggled(GtkWidget *, char *path, main_window *widgets); void on_bootloader_admin_toggled(GtkWidget *, char *path, main_window *widgets);
void on_bootloader_user_remove(GtkWidget *, main_window *widgets); void on_bootloader_user_remove(GtkWidget *, main_window *widgets);
void on_software_uncheck_all(GtkWidget *, main_window *widgets); void on_software_switch_all(GtkWidget *, main_window *widgets);
gboolean on_kernel_enabled_toggled(GtkWidget *self, GdkEventButton *, kernel_row *row); gboolean on_kernel_enabled_toggled(GtkWidget *self, GdkEventButton *, kernel_row *row);
void on_status_update(GtkWidget *,main_window *widgets); void on_status_update(GtkWidget *,main_window *widgets);
gboolean on_kernel_addon_menu_block(GObject *self, GdkEventButton *event); gboolean on_kernel_addon_menu_block(GObject *self, GdkEventButton *event);
void on_os_components_uncheck_all(GtkWidget *,main_window *widgets); void on_os_components_switch_all(GtkWidget *,main_window *widgets);
gboolean yon_os_components_load(main_window *widgets); gboolean yon_os_components_load(main_window *widgets);
gboolean on_user_autoloin_switch(GtkWidget *, int status, main_window *); gboolean on_user_autoloin_switch(GtkWidget *, int status, main_window *);
void on_locale_selected(GtkTreeView *self,main_window *widgets); void on_locale_selected(GtkTreeView *self,main_window *widgets);

@ -3539,6 +3539,7 @@ Select a different installation sources.</property>
<child> <child>
<object class="GtkCheckButton" id="AdditionalComponentsUncheckAllCheck"> <object class="GtkCheckButton" id="AdditionalComponentsUncheckAllCheck">
<property name="label" translatable="yes">Uncheck all</property> <property name="label" translatable="yes">Uncheck all</property>
<property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>

Loading…
Cancel
Save