Install button isn't sensetive while installed driver is selected; Uninstall button isn't sensetive while uninstalled driver is selected

pull/28/head
parent d980a48061
commit e44119bd19

@ -195,6 +195,43 @@ void on_driver_pack_delete(GtkWidget *self,widgets_dict *widgets){
} }
} }
void on_driver_pack_selection_change(GtkWidget *self, widgets_dict *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
int installed=0;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->proprietaryTreeView)),&iter,0,&installed,-1);
if (installed==1){
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,1);
} else {
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,1);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
}
}
}
void on_driver_selection_change(GtkWidget *self, widgets_dict *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
int installed=0;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->driversTreeView)),&iter,0,&installed,-1);
if (installed==1){
gtk_widget_set_sensitive(widgets->driversInstallButton,0);
gtk_widget_set_sensitive(widgets->driversDeleteButton,1);
} else {
gtk_widget_set_sensitive(widgets->driversInstallButton,1);
gtk_widget_set_sensitive(widgets->driversDeleteButton,0);
}
}
}
void on_driver_delete(GtkWidget *self,widgets_dict *widgets){ void on_driver_delete(GtkWidget *self,widgets_dict *widgets){
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_DELETING_IN_PROGRESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_DELETING_IN_PROGRESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
GtkTreeIter iter; GtkTreeIter iter;
@ -994,9 +1031,32 @@ dictionary *yon_proprieary_get(){
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
videoconfig.proprietary=NULL; videoconfig.proprietary=NULL;
int drivers_size=0; int drivers_size=0;
config_str drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size);
int size=0; int size=0;
char **rtn = yon_config_load(get_proprietary_drivers_info_command,&size); config_str drivers=NULL;
config_str rtn=NULL;
drivers=yon_config_load(get_proprietary_drivers_local_command,&drivers_size);
if (drivers){
printf("%s\n",drivers[0]);
for (int drivers_found=0;drivers_found<drivers_size;drivers_found++){
drivers[drivers_found]=yon_char_divide_search(drivers[drivers_found],"\n",-1);
for (int i=0;i<size;i++){
rtn[i] = yon_char_divide_search(rtn[i],"\n",-1);
char *key=yon_char_new(rtn[i]);
if (key[0]==';')
yon_char_divide_search(key,";",-1);
key = yon_char_divide_search(key,";",-1);
char *driver_name=yon_char_divide_search(yon_char_new(drivers[drivers_found])," ",-1);
if (strcmp(key,driver_name)==0)
if (i==0) videoconfig.proprietary=yon_dictionary_create_with_data(drivers[drivers_found],rtn[i]);
else videoconfig.proprietary=yon_dictionary_create_with_data_connected(videoconfig.proprietary,drivers[drivers_found],rtn[i]);
}
}
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
// yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}
drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size);
rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
for (int dr_desc=0;dr_desc<size;dr_desc++){ for (int dr_desc=0;dr_desc<size;dr_desc++){
for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){ for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
@ -1013,49 +1073,12 @@ dictionary *yon_proprieary_get(){
} }
} }
// for (int drivers_found=0;drivers_found<drivers_size;drivers_found++){
// drivers[drivers_found]=yon_char_divide_search(drivers[drivers_found],"\n",-1);
// for (int i=0;i<size;i++){
// rtn[i] = yon_char_divide_search(rtn[i],"\n",-1);
// char *keyp=yon_char_new(rtn[i]);
// if (keyp[0]==';')
// yon_char_divide_search(keyp,";",-1);
// char *key = yon_char_divide_search(keyp,";",-1);
// keyp = yon_char_divide_search(keyp,";",-1);
// char *driver_name=yon_char_divide_search(yon_char_new(drivers[drivers_found])," ",-1);
// if (strcmp(key,driver_name)==0||keyp&&strcmp(keyp,"")!=0&&!yon_dictionary_find(&videoconfig.proprietary,drivers[drivers_found]))
// if (i==0) videoconfig.proprietary=yon_dictionary_create_with_data(yon_char_new(drivers[drivers_found]),rtn[i]);
// else videoconfig.proprietary=yon_dictionary_create_with_data_connected(videoconfig.proprietary,yon_char_new(drivers[drivers_found]),rtn[i]);
// }
// }
if (videoconfig.proprietary){ if (videoconfig.proprietary){
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_OPETAION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_OPETAION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else { } else {
drivers=yon_config_load(get_proprietary_drivers_local_command,&drivers_size);
if (drivers){
printf("%s\n",drivers[0]);
for (int drivers_found=0;drivers_found<drivers_size;drivers_found++){
drivers[drivers_found]=yon_char_divide_search(drivers[drivers_found],"\n",-1);
for (int i=0;i<size;i++){
rtn[i] = yon_char_divide_search(rtn[i],"\n",-1);
char *key=yon_char_new(rtn[i]);
if (key[0]==';')
yon_char_divide_search(key,";",-1);
key = yon_char_divide_search(key,";",-1);
char *driver_name=yon_char_divide_search(yon_char_new(drivers[drivers_found])," ",-1);
if (strcmp(key,driver_name)==0)
if (i==0) videoconfig.proprietary=yon_dictionary_create_with_data(drivers[drivers_found],rtn[i]);
else videoconfig.proprietary=yon_dictionary_create_with_data_connected(videoconfig.proprietary,drivers[drivers_found],rtn[i]);
}
}
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else
{
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
} }
} }
@ -1542,6 +1565,8 @@ void yon_setup_widgets(widgets_dict *widgets)
g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryTreeView), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), widgets);
g_signal_connect(G_OBJECT(widgets->driversTreeView), "cursor-changed", G_CALLBACK(on_driver_selection_change), widgets);
g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets); g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets);
g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets); g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets);

Loading…
Cancel
Save