|
|
|
|
@ -128,12 +128,11 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
|
|
|
|
|
g_mutex_lock(&main_config.progress_mutex);
|
|
|
|
|
main_config.progress_active=1;
|
|
|
|
|
g_mutex_unlock(&main_config.progress_mutex);
|
|
|
|
|
// g_idle_add((GSourceFunc)on_terminal_check_progress,widgets);
|
|
|
|
|
g_idle_add((GSourceFunc)on_terminal_check_progress,widgets);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_driver_pack_selection_change(GtkWidget *, main_window *widgets){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
// char *name;
|
|
|
|
|
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
|
|
|
|
|
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
|
|
|
|
|
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
|
|
|
|
|
@ -148,10 +147,6 @@ void on_driver_pack_selection_change(GtkWidget *, main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_driver_pack_info(GtkWidget *, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
pthread_attr_t attr;
|
|
|
|
|
pthread_t tid;
|
|
|
|
|
pthread_attr_init(&attr);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
char *module, *package;
|
|
|
|
|
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
|
|
|
|
|
@ -159,8 +154,8 @@ void on_driver_pack_info(GtkWidget *, main_window *widgets){
|
|
|
|
|
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
|
|
|
|
|
gtk_tree_model_get(list_s,&iter,7,&module,8,&package,-1);
|
|
|
|
|
char *command = get_info_proprietary_command(yon_char_is_empty(module)?package:module);
|
|
|
|
|
pthread_create(&tid,&attr,(void*)yon_launch,command);
|
|
|
|
|
yon_ubl_status_box_render(INFO_PROCESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
|
|
|
|
|
yon_launch_app_with_arguments(command,"");
|
|
|
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_INFO_TYPE);
|
|
|
|
|
} else {
|
|
|
|
|
yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
@ -183,10 +178,8 @@ void on_pack_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *w
|
|
|
|
|
int installed;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(model),&iter,1,&installed,8,&package,-1);
|
|
|
|
|
if (!installed){
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
|
|
|
|
data->action_text=yon_char_unite(INSTALL_CONFIRMATION_LABEL(package),"\n",INSTALL_ATTENTION_LABEL,NULL);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
|
|
|
|
|
if (!yon_char_is_empty(package)){
|
|
|
|
|
char *command = install_proprietary_command(package);
|
|
|
|
|
@ -195,10 +188,8 @@ void on_pack_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *w
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
} else {
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
|
|
|
|
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
|
|
|
|
|
if (!yon_char_is_empty(package)){
|
|
|
|
|
char *command = delete_proprietary_command(package);
|
|
|
|
|
@ -223,10 +214,8 @@ void on_module_install_activate(GtkCellRendererToggle* ,gchar* path,main_window
|
|
|
|
|
int installed;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.list),&iter,1,&installed,7,&package,-1);
|
|
|
|
|
if (!installed){
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
|
|
|
|
data->action_text=INSTALL_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
|
|
|
|
|
if (!yon_char_is_empty(package)){
|
|
|
|
|
char *command = install_proprietary_command(package);
|
|
|
|
|
@ -235,10 +224,8 @@ void on_module_install_activate(GtkCellRendererToggle* ,gchar* path,main_window
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
} else {
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
|
|
|
|
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
|
|
|
|
|
if (!yon_char_is_empty(package)){
|
|
|
|
|
char *command = delete_proprietary_command(package);
|
|
|
|
|
@ -293,7 +280,6 @@ void on_port_chosen_changed(GtkWidget *, monitor_edit_window *window){
|
|
|
|
|
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->PositionPortCombo),PARAMETER_DEFAULT_LABEL);
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PositionPortCombo),0);
|
|
|
|
|
char *port_name = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->PortCombo));
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->MainWindow),PORT_EDIT_LABEL(port_name));
|
|
|
|
|
dict=yon_dictionary_get(&main_config.supported_resolutions,port_name);
|
|
|
|
|
if (dict){
|
|
|
|
|
int size;
|
|
|
|
|
@ -303,10 +289,8 @@ void on_port_chosen_changed(GtkWidget *, monitor_edit_window *window){
|
|
|
|
|
yon_char_remove_last_symbol(resolutions[i],'\n');
|
|
|
|
|
}
|
|
|
|
|
resolution_supported *res = yon_dictionary_get_data(dict,resolution_supported*);
|
|
|
|
|
// int found_size=0;
|
|
|
|
|
int found = -1;
|
|
|
|
|
for (int i=0;i<res->size;i++){
|
|
|
|
|
// char *check_line;
|
|
|
|
|
for (int j=1;j<size;j++){
|
|
|
|
|
if (strstr(resolutions[j],res->line[i])){
|
|
|
|
|
found = j;
|
|
|
|
|
@ -350,10 +334,6 @@ void on_auto_choose_drivers(GtkWidget *self, main_window *)
|
|
|
|
|
{
|
|
|
|
|
int state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self));
|
|
|
|
|
main_config.autoChooseDrivers=state;
|
|
|
|
|
// gtk_widget_set_sensitive(widgets->mainDriverFailsafeNvidiaLabel, !state);
|
|
|
|
|
// gtk_widget_set_sensitive(widgets->mainDriverFailsafeAMDCombo, !state);
|
|
|
|
|
// gtk_widget_set_sensitive(widgets->mainDriverFailsafeAMDLabel, !state);
|
|
|
|
|
// gtk_widget_set_sensitive(widgets->mainDriverFailsafeNvidiaCombo, !state);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window *window){
|
|
|
|
|
@ -364,7 +344,6 @@ void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window
|
|
|
|
|
if (gtk_toggle_button_get_active(self)){
|
|
|
|
|
int size;
|
|
|
|
|
config_str resolutions = yon_file_open(get_resolutions_supportable_command,&size);
|
|
|
|
|
// yon_gtk_combo_box_text_fill(window->ResolutionCombo,main_config.resolutions,main_config.resolutionssize);
|
|
|
|
|
for (int i=1;i<size;i++){
|
|
|
|
|
yon_char_remove_last_symbol(resolutions[i],'\n');
|
|
|
|
|
int parsed_size;
|
|
|
|
|
@ -375,7 +354,6 @@ void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window
|
|
|
|
|
yon_char_parsed_free(resolutions,size);
|
|
|
|
|
} else {
|
|
|
|
|
on_port_chosen_changed(window->PortCombo,window);
|
|
|
|
|
// yon_gtk_combo_box_text_fill(window->ResolutionCombo,((monitorconfig*)window->config->data)->resolutionCapabilities,((monitorconfig*)window->config->data)->resolution_size);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -403,15 +381,7 @@ void on_save_done(main_window *, config_str output, int size){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_interface_save(){
|
|
|
|
|
|
|
|
|
|
// char *autodrivers = NULL;
|
|
|
|
|
// char *freedrivers = NULL;
|
|
|
|
|
// char *dpms= NULL;
|
|
|
|
|
char *dpi = NULL;
|
|
|
|
|
// char *failsafenvidia = NULL;
|
|
|
|
|
// char *failsafeati = NULL;
|
|
|
|
|
// char *optirun = NULL;
|
|
|
|
|
// char *primusrun = NULL;
|
|
|
|
|
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->AutoDriverCombo))){
|
|
|
|
|
case 0: yon_config_remove_by_key(VGADRV_AUTO);
|
|
|
|
|
break;
|
|
|
|
|
@ -486,23 +456,6 @@ void yon_interface_save(){
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
// switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo))){
|
|
|
|
|
// case 0: yon_config_remove_by_key(GL_YIELD);
|
|
|
|
|
// yon_config_remove_by_key(KWIN_TRIPLE_BUFFER);
|
|
|
|
|
// yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
|
|
|
|
|
// yon_config_set_status(GL_YIELD,-2);
|
|
|
|
|
// break;
|
|
|
|
|
// case 2: yon_config_register(GL_YIELD,GL_YIELD_command,"USLEEP");
|
|
|
|
|
// yon_config_remove_by_key(KWIN_TRIPLE_BUFFER);
|
|
|
|
|
// yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
|
|
|
|
|
// yon_config_set_status(GL_YIELD,-2);
|
|
|
|
|
// break;
|
|
|
|
|
// case 3: yon_config_register(KWIN_TRIPLE_BUFFER,KWIN_TRIPLE_BUFFER_command,"1");
|
|
|
|
|
// yon_config_remove_by_key(GL_YIELD);
|
|
|
|
|
// yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
|
|
|
|
|
// yon_config_set_status(GL_YIELD,-2);
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->DisplayDiscreteOnly))){
|
|
|
|
|
case 0:
|
|
|
|
|
yon_config_remove_by_key(INTEGRATEDVGA);
|
|
|
|
|
@ -777,7 +730,6 @@ void on_monitor_config_save(GtkWidget *, monitor_edit_window *window){
|
|
|
|
|
const char *frequency = NULL;
|
|
|
|
|
char *rotate = NULL;
|
|
|
|
|
char *position = NULL;
|
|
|
|
|
// int switch_off=0;
|
|
|
|
|
int modeline_cvt = 0;
|
|
|
|
|
int cvt_reduced = 0;
|
|
|
|
|
int modeline_gtf = 0;
|
|
|
|
|
@ -797,7 +749,6 @@ void on_monitor_config_save(GtkWidget *, monitor_edit_window *window){
|
|
|
|
|
if (pos&>k_combo_box_get_active(GTK_COMBO_BOX(window->PositionPortCombo))){
|
|
|
|
|
position = yon_char_append(pos==1?"lo:":pos==2?"ro:":pos==3?"ab:":"be:",gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->PositionPortCombo)));
|
|
|
|
|
}
|
|
|
|
|
// switch_off = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DoNotSwitchOffCheck));
|
|
|
|
|
modeline_cvt = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ModelineCVTCheck));
|
|
|
|
|
cvt_reduced = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UseCVTReducedCheck));
|
|
|
|
|
modeline_gtf = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ModelineGTFCheck));
|
|
|
|
|
@ -954,18 +905,27 @@ void on_monitor_configure(GtkWidget *,monitor_data *window){
|
|
|
|
|
monitors->CancelButton = GTK_WIDGET(gtk_builder_get_object(builder, "CancelButton"));
|
|
|
|
|
monitors->SaveButton = GTK_WIDGET(gtk_builder_get_object(builder, "SaveButton"));
|
|
|
|
|
|
|
|
|
|
char *title;
|
|
|
|
|
char *cur_port = (char*)gtk_label_get_text(GTK_LABEL(window->NameLabel));
|
|
|
|
|
if (!yon_char_is_empty(cur_port)){
|
|
|
|
|
title = MONITOR_TITLE_LABEL(cur_port);
|
|
|
|
|
} else {
|
|
|
|
|
title=TITLE_LABEL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(monitors->HeadLabel),title);
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(monitors->CancelButton), "clicked", G_CALLBACK(on_subwindow_close), NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(monitors->SaveButton), "clicked", G_CALLBACK(on_monitor_config_save), monitors);
|
|
|
|
|
g_signal_connect(G_OBJECT(monitors->ParameterLineCheck), "toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed), monitors->InterfaceConfigurationBox);
|
|
|
|
|
g_signal_connect(G_OBJECT(monitors->ParameterLineCheck), "toggled", G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button), monitors->ParameterLineEntry);
|
|
|
|
|
g_signal_connect(G_OBJECT(monitors->UnsupportedCheck), "toggled", G_CALLBACK(on_resolutions_unsupported_show),monitors);
|
|
|
|
|
g_signal_connect(G_OBJECT(monitors->PortCombo), "changed", G_CALLBACK(on_port_chosen_changed),monitors);
|
|
|
|
|
yon_gtk_window_setup(GTK_WINDOW(monitors->MainWindow),GTK_WINDOW(main_config.widgets->Window),TITLE_LABEL,"com.ublinux.ubl-settings-video","VieoConfigWindow");
|
|
|
|
|
yon_gtk_window_setup(GTK_WINDOW(monitors->MainWindow),GTK_WINDOW(main_config.widgets->Window),title,"com.ublinux.ubl-settings-video","VieoConfigWindow");
|
|
|
|
|
|
|
|
|
|
char *target = (char*)gtk_label_get_text(GTK_LABEL(window->NameLabel));
|
|
|
|
|
|
|
|
|
|
monitors->curport=NULL;
|
|
|
|
|
// dictionary *dict=NULL;
|
|
|
|
|
int config_size;
|
|
|
|
|
config_str config_ports = yon_config_get_all_by_key(XORG_PARAMETER,&config_size);
|
|
|
|
|
for (int i=0;i<config_size;i++){
|
|
|
|
|
@ -1001,7 +961,6 @@ void on_monitor_configure(GtkWidget *,monitor_data *window){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// yon_monitor_data_update(monitors);
|
|
|
|
|
|
|
|
|
|
gtk_widget_show(monitors->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
@ -1217,6 +1176,19 @@ void yon_monitor_set_resolutions(){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_app_chooser_open(GtkWidget *self, main_window *widgets){
|
|
|
|
|
yon_app_chooser_window *window = yon_app_chooser_window_new(1);
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = yon_app_chooser_window_run(window,&size);
|
|
|
|
|
|
|
|
|
|
char *string = yon_char_parsed_to_string(parsed,size,",");
|
|
|
|
|
if (self==widgets->OptirunButton){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->OptirunEntry),string);
|
|
|
|
|
} else if (self == widgets->PrimusrunButton){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->PrimusrunEntry),string);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_adapter_window_setup(main_window *widgets){
|
|
|
|
|
int size=0;
|
|
|
|
|
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay),widgets->InformationCompanyLogoImage);
|
|
|
|
|
@ -1339,7 +1311,6 @@ void yon_adapter_window_setup(main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
gtk_widget_hide(widgets->InformationOverlay2);
|
|
|
|
|
// gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(widgets->builder,"InformationLabel2")));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1407,8 +1378,6 @@ template_main_window *yon_main_window_complete(main_window *widgets){
|
|
|
|
|
|
|
|
|
|
widgets->DriversTree = yon_gtk_builder_get_widget(builder, "DriversTree");
|
|
|
|
|
widgets->InfoButton = yon_gtk_builder_get_widget(builder, "InfoButton");
|
|
|
|
|
// widgets->DeleteButton = yon_gtk_builder_get_widget(builder, "DeleteButton");
|
|
|
|
|
// widgets->InstallButton = yon_gtk_builder_get_widget(builder, "InstallButton");
|
|
|
|
|
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay");
|
|
|
|
|
widgets->MenusTab = yon_gtk_builder_get_widget(builder, "MenusTab");
|
|
|
|
|
widgets->LoadDriversButton = yon_gtk_builder_get_widget(builder,"LoadDriversButton");
|
|
|
|
|
@ -1457,12 +1426,8 @@ template_main_window *yon_main_window_complete(main_window *widgets){
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->KernelsCombo),"changed",G_CALLBACK(on_kernel_filter_changed),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->FrameGapCombo),"changed",G_CALLBACK(on_gapfix_changed),widgets);
|
|
|
|
|
|
|
|
|
|
// yon_gtk_tree_view_column_minimal_fixed_size_set(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),0));
|
|
|
|
|
// yon_gtk_tree_view_column_minimal_fixed_size_set(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),1));
|
|
|
|
|
|
|
|
|
|
// gtk_tree_view_column_set_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->TopTree),0),gtk_tree_view_column_get_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),0))+gtk_tree_view_column_get_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),1)));
|
|
|
|
|
// yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->OptirunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->PrimusrunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets);
|
|
|
|
|
{
|
|
|
|
|
int size;
|
|
|
|
|
config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(VGADRV_AUTO_command,"default",NULL,NULL),&size);
|
|
|
|
|
@ -1636,7 +1601,7 @@ int main(int argc, char *argv[]){
|
|
|
|
|
yon_root_button_setup(widgets,argv,argc);
|
|
|
|
|
|
|
|
|
|
if (system(yon_check_database_command)){
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
|
|
|
|
|
data->action_text=DATABASE_UNACCESSIBLE_LABEL;
|
|
|
|
|
data->function = on_database_update;
|
|
|
|
|
data->data = widgets;
|
|
|
|
|
|