master #105

Merged
asmeron merged 6 commits from YanTheKaller/ubl-settings-video:master into master 8 months ago

@ -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&&gtk_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;

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

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

@ -707,6 +707,7 @@
</child>
<child>
<object class="GtkButton" id="OptirunButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
@ -772,6 +773,7 @@
</child>
<child>
<object class="GtkButton" id="PrimusrunButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>

@ -368,7 +368,7 @@ msgid "More"
msgstr ""
#: source/ubl-strings.h:79
msgid "Configuration: Monitor"
msgid "Configuration:"
msgstr ""
#: source/ubl-strings.h:81

@ -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?"

Loading…
Cancel
Save