|
|
|
|
@ -548,13 +548,12 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){
|
|
|
|
|
if (pagen==1&&videoconfig.dblock==0){
|
|
|
|
|
void on_proprietary_get(GtkWidget *self, gpointer data){
|
|
|
|
|
if (videoconfig.dblock==0){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){
|
|
|
|
|
pthread_t tid;
|
|
|
|
|
pthread_create(&tid,NULL,(void*)yon_proprieary_get,NULL);
|
|
|
|
|
}
|
|
|
|
|
videoconfig.dblock=1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ -1079,33 +1078,44 @@ void on_config_fill_interface(widgets_dict *widgets)
|
|
|
|
|
dictionary *dict = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_proprietary_local_get(){
|
|
|
|
|
int drivers_size=0;
|
|
|
|
|
int size;
|
|
|
|
|
config_str rtn=NULL;
|
|
|
|
|
rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
|
|
|
|
|
config_str drivers=yon_config_load(get_proprietary_installed_command,&drivers_size);
|
|
|
|
|
for (int dr_desc=0;dr_desc<drivers_size;dr_desc++){
|
|
|
|
|
for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
|
|
|
|
|
drivers[dr_foun]=yon_char_divide_search(drivers[dr_foun],"\n",-1);
|
|
|
|
|
char *pack=yon_char_new(rtn[dr_desc]);
|
|
|
|
|
char *ubm=yon_char_divide_search(pack,";",-1);
|
|
|
|
|
pack=yon_char_divide_search(pack,";",-1);
|
|
|
|
|
if (strcmp(drivers[dr_foun],ubm)==0){
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
|
|
|
|
|
}
|
|
|
|
|
// else if (strcmp(pack,"")!=0&&!(yon_dictionary_find(!videoconfig.proprietary||&videoconfig.proprietary,pack))){
|
|
|
|
|
// yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (videoconfig.proprietary){
|
|
|
|
|
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
|
|
|
|
|
videoconfig.proprietary=NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**dictionary *yon_proprieary_get()
|
|
|
|
|
* [EN]
|
|
|
|
|
*/
|
|
|
|
|
dictionary *yon_proprieary_get(){
|
|
|
|
|
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
videoconfig.dblock=1;
|
|
|
|
|
videoconfig.proprietary=NULL;
|
|
|
|
|
int drivers_size=0;
|
|
|
|
|
int size=0;
|
|
|
|
|
config_str drivers=NULL;
|
|
|
|
|
config_str rtn=NULL;
|
|
|
|
|
rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
|
|
|
|
|
// drivers=yon_config_load(get_proprietary_installed_command,&drivers_size);
|
|
|
|
|
// for (int dr_desc=0;dr_desc<drivers_size;dr_desc++){
|
|
|
|
|
// for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
|
|
|
|
|
// drivers[dr_foun]=yon_char_divide_search(drivers[dr_foun],"\n",-1);
|
|
|
|
|
// char *pack=yon_char_new(rtn[dr_desc]);
|
|
|
|
|
// char *ubm=yon_char_divide_search(pack,";",-1);
|
|
|
|
|
// pack=yon_char_divide_search(pack,";",-1);
|
|
|
|
|
// if (strcmp(drivers[dr_foun],ubm)==0){
|
|
|
|
|
// yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
|
|
|
|
|
// }
|
|
|
|
|
// // else if (strcmp(pack,"")!=0&&!(yon_dictionary_find(!videoconfig.proprietary||&videoconfig.proprietary,pack))){
|
|
|
|
|
// // yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
|
|
|
|
|
// // }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
if (videoconfig.proprietary){
|
|
|
|
|
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
|
|
|
|
|
videoconfig.proprietary=NULL;
|
|
|
|
|
@ -1149,7 +1159,6 @@ dictionary *yon_proprieary_get(){
|
|
|
|
|
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 {
|
|
|
|
|
videoconfig.dblock=0;
|
|
|
|
|
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1612,6 +1621,8 @@ void yon_setup_widgets(widgets_dict *widgets)
|
|
|
|
|
widgets->TerminalOverlay = yon_gtk_builder_get_widget(widgets->builder, "TerminalOverlay");
|
|
|
|
|
widgets->MenusTab = yon_gtk_builder_get_widget(widgets->builder, "MenusTab");
|
|
|
|
|
widgets->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(widgets->builder, "driversTreeSelection"));
|
|
|
|
|
widgets->LoadDriversButton = yon_gtk_builder_get_widget(widgets->builder,"LoadDriversButton");
|
|
|
|
|
widgets->proprietaryNotebook = yon_gtk_builder_get_widget(widgets->builder,"notebook1");
|
|
|
|
|
|
|
|
|
|
widgets->proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "proprietartInstalledColumn"));
|
|
|
|
|
widgets->ProprietaryPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietaryPackageColumn"));
|
|
|
|
|
@ -1642,7 +1653,7 @@ void yon_setup_widgets(widgets_dict *widgets)
|
|
|
|
|
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->proprietaryTreeView),GTK_TREE_MODEL(videoconfig.list));
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->MenusTab), "switch-page", G_CALLBACK(on_proprietary_get), widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(on_proprietary_get), 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);
|
|
|
|
|
@ -1740,6 +1751,8 @@ void yon_setup_widgets(widgets_dict *widgets)
|
|
|
|
|
gtk_widget_set_sensitive(widgets->mainHeaderSaveLocalMenuItem,0);
|
|
|
|
|
if (videoconfig.lock_save_global==1||videoconfig.lock_save_local==1)
|
|
|
|
|
gtk_widget_set_sensitive(widgets->mainHeaderSaveGlobalLocalMenuItem,0);
|
|
|
|
|
|
|
|
|
|
gtk_notebook_set_action_widget(GTK_NOTEBOOK(widgets->proprietaryNotebook),widgets->LoadDriversButton,GTK_PACK_END);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
|
@ -1820,14 +1833,13 @@ int main(int argc, char *argv[])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (getuid()!=0){
|
|
|
|
|
char *args="";
|
|
|
|
|
for (int i=0;i<argc;i++)
|
|
|
|
|
args=yon_char_unite(args," ",argv[i],NULL);
|
|
|
|
|
if (system(yon_char_get_augumented("/usr/bin/pkexec ubl-settings-video ",args)));
|
|
|
|
|
return 0;
|
|
|
|
|
// char *args="";
|
|
|
|
|
// for (int i=0;i<argc;i++)
|
|
|
|
|
// args=yon_char_unite(args," ",argv[i],NULL);
|
|
|
|
|
// if (system(yon_char_get_augumented("/usr/bin/pkexec ubl-settings-video ",args)));
|
|
|
|
|
// return 0;
|
|
|
|
|
} else {
|
|
|
|
|
int ssize=0;
|
|
|
|
|
yon_launch_app("pacman -Sy >/dev/null");
|
|
|
|
|
gtk_init(&argc, &argv);
|
|
|
|
|
GError error;
|
|
|
|
|
yon_setup_config(load_drivers_local_command);
|
|
|
|
|
@ -1841,6 +1853,7 @@ int main(int argc, char *argv[])
|
|
|
|
|
yon_monitor_set_resolutions();
|
|
|
|
|
yon_adapter_window_setup(&widgets);
|
|
|
|
|
GtkCssProvider *css = gtk_css_provider_new();
|
|
|
|
|
yon_proprietary_local_get();
|
|
|
|
|
gtk_css_provider_load_from_resource(css, CssPath);
|
|
|
|
|
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
|
|
|
|
|
GTK_STYLE_PROVIDER(css),
|
|
|
|
|
|