diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index fba9f26..977e06a 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -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;isize;i++){ - // char *check_line; for (int j=1;jline[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;iPortCombo,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)); @@ -953,19 +904,28 @@ void on_monitor_configure(GtkWidget *,monitor_data *window){ monitors->ParameterLineEntry = GTK_WIDGET(gtk_builder_get_object(builder, "ParameterLineEntry")); 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;iMainWindow); } @@ -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; diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 507648d..66d480f 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -394,4 +394,5 @@ void on_gapfix_changed(GtkWidget*self, main_window *widgets); gboolean yon_proprietary_disconnect(main_window *widgets); gboolean yon_proprietary_connect(main_window *widgets); +void on_app_chooser_open(GtkWidget *self, main_window *widgets); #endif \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 86d75c6..f972bee 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -27,6 +27,7 @@ #define MONITOR_NO_ROTATION_LABEL _("No rotation") #define MONITOR_SAVE_LABEL _("Save") #define MONITOR_CANCEL_LABEL _("Cancel") +#define MONITOR_TITLE_LABEL(target) yon_char_unite(_("Configuration:")," ","Monitor(",target,")",NULL) #define MONITOR_CHOOSE_PORT_LABEL _("Choose port to configure") #define GAP_FIX_1_LABEL _("1st variant. May cause perfomance drops in video games") #define GAP_FIX_2_LABEL _("2nd variant. May not work on specific video cards") diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index fa6b607..3b9652a 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -707,6 +707,7 @@ + True True True image1 @@ -772,6 +773,7 @@ + True True True image2 diff --git a/ubl-settings-video.pot b/ubl-settings-video.pot index 99b92f9..e338e0c 100644 --- a/ubl-settings-video.pot +++ b/ubl-settings-video.pot @@ -368,7 +368,7 @@ msgid "More" msgstr "" #: source/ubl-strings.h:79 -msgid "Configuration: Monitor" +msgid "Configuration:" msgstr "" #: source/ubl-strings.h:81 diff --git a/ubl-settings-video_ru.po b/ubl-settings-video_ru.po index a0e5019..b229b13 100644 --- a/ubl-settings-video_ru.po +++ b/ubl-settings-video_ru.po @@ -372,8 +372,8 @@ msgid "More" msgstr "Подробнее" #: source/ubl-strings.h:79 -msgid "Configuration: Monitor" -msgstr "Настройка: монитор" +msgid "Configuration:" +msgstr "Настройка:" #: source/ubl-strings.h:81 msgid "Would you like to read documentation in the Web?"