|
|
|
@ -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);
|
|
|
|
|