Fixed configuration loading bugs, changed wiki links

pull/9/head^2
parent 0a07cc4088
commit 60a7245d5c

@ -288,7 +288,7 @@ void on_sensitive_change_reversed(GtkWidget *self, GtkWidget *toggle)
void on_auto_choose_drivers(GtkWidget *self, widgets_dict *widgets)
{
int state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self));
videoconfig.autoChooseDrivers=state;
gtk_widget_set_sensitive(widgets->mainDriverFailsafeNvidiaLabel, !state);
gtk_widget_set_sensitive(widgets->mainDriverFailsafeAMDCombo, !state);
gtk_widget_set_sensitive(widgets->mainDriverFailsafeAMDLabel, !state);
@ -303,21 +303,34 @@ char *yon_configuration_get_save_command(char *command){
if (videoconfig.autoChooseDrivers==0){
if (strcmp(videoconfig.failsafenVidia, dntus)!=0)
str = yon_char_get_augumented(str, yon_char_get_augumented(" FAILSAFENVIDIA=", videoconfig.failsafenVidia));
else
str = yon_char_get_augumented(str," FAILSAFENVIDIA=\"\"");
if (strcmp(videoconfig.failsafeATI, dntus)!=0)
str = yon_char_get_augumented(str, yon_char_get_augumented(" FAILSAFEATI=", videoconfig.failsafeATI));
else
str = yon_char_get_augumented(str," FAILSAFEATI=\"\"");
str=yon_char_get_augumented(str," VGADRV_AUTO=NO");
} else {
str = yon_char_unite(str, " FAILSAFENVIDIA=\"\" FAILSAFEATI=\"\" VGADRV_AUTO=YES", NULL);
}
if (strcmp(videoconfig.optirun, dntus)!=0&&strcmp(videoconfig.optirun, "")!=0)
str = yon_char_get_augumented(str, yon_char_unite(" OPTIRUN=","\"",videoconfig.optirun,"\"",NULL));
else
str = yon_char_get_augumented(str, yon_char_unite(" OPTIRUN=\"\"",NULL));
if (strcmp(videoconfig.primusrun, dntus)!=0&&strcmp(videoconfig.primusrun, "")!=0)
str = yon_char_get_augumented(str, yon_char_unite(" PRIMUSRUN=","\"", videoconfig.primusrun,"\"",NULL));
else
str = yon_char_get_augumented(str, yon_char_unite(" PRIMUSRUN=\"\"",NULL));
dictionary *dict=NULL;
for (int i=0;i<videoconfig.portssize;i++)
str=yon_char_unite(str," XORG_MONITOR[",videoconfig.ports[i],"]=\"\"", NULL);
if(videoconfig.monitors)
for_dictionaries(dict,videoconfig.monitors){
if (yon_dictionary_get_data(dict,monitorconfig*)->stringparameters){
str=yon_char_unite(str," XORG_MONITOR[",dict->key,"]=\"",yon_dictionary_get_data(dict,monitorconfig*)->stringparameters,"\"", NULL);
}
}
}
if (strcmp(str,command)!=0)
@ -348,8 +361,8 @@ char *yon_configuration_get_remove_command(char *command){
str = yon_char_get_augumented(str, " OPTIRUN");
str = yon_char_get_augumented(str, " PRIMUSRUN");
dictionary *dict=NULL;
for_dictionaries(dict,videoconfig.monitors){
str = yon_char_get_augumented(str, yon_char_get_augumented(" ",XORG_MONITOR(dict->key)));
for(int i=0;i<videoconfig.portssize;i++){
str = yon_char_get_augumented(str, yon_char_get_augumented(" ",XORG_MONITOR(videoconfig.ports[i])));
}
if (strcmp(str,command)!=0)
return str;
@ -364,9 +377,11 @@ void on_configuration_save_local(GtkWidget *self, widgets_dict *widgets)
str=yon_configuration_get_save_command(save_drivers_local_command);
delstr=yon_configuration_get_remove_command(remove_drivers_local_command);
if (delstr){
printf("%s\n\n",delstr);
yon_config_save(delstr);
}
if (str){
printf("%s\n\n",str);
yon_config_save(str);
videoconfig.status_render.text_to_render=LOCAL_SAVE_SUCCESS;
@ -456,9 +471,9 @@ void on_monitor_delete(GtkWidget *self,monitor_view windowd){
monitor_window *window = yon_dictionary_get_data(windowd,monitor_window*);
if(window&&window->config){
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(window->templateMonitorscreenOverlay)),window->templateMonitorscreenOverlay);
yon_dictionary_rip(windowd);
videoconfig.monitor_visuals = yon_dictionary_rip(windowd);
gtk_widget_destroy(window->templateMonitorscreenOverlay);
yon_dictionary_rip(window->config);
videoconfig.monitors = yon_dictionary_rip(window->config);
free(window);
}
}
@ -898,7 +913,7 @@ void on_config_fill_interface(widgets_dict *widgets)
str = videoconfig.failsafenVidia;
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), DONT_USE_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeNvidiaCombo), FBDEV_LABEL);
if (str)
if (str&&videoconfig.autoChooseDrivers==0)
{
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainDriverFailsafeNvidiaCombo), 1);
}
@ -909,12 +924,15 @@ void on_config_fill_interface(widgets_dict *widgets)
str = videoconfig.failsafeATI;
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), DONT_USE_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), FBDEV_LABEL);
if (str)
if (str&&videoconfig.autoChooseDrivers==0)
{
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainDriverFailsafeAMDCombo), 1);
}
else
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainDriverFailsafeAMDCombo), 0);
if (videoconfig.autoChooseDrivers==1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->mainDriverAutomaticallyChooseCheck),1);
}
dictionary *dict = NULL;
}
@ -943,6 +961,7 @@ dictionary *yon_proprieary_get(){
}
}
/**void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list)
* [EN]
*/
@ -989,15 +1008,24 @@ void yon_setup_config(char *configcommand)
videoconfig.configsize=0;
videoconfig.loaded_config = yon_ubl_load_global_config(command, &videoconfig.configsize);
char *param = NULL;
param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"VGADRV_AUTO");
if (param){
yon_char_divide_search(param,"=",-1);
if (strcmp(param,"")!=0)
videoconfig.autoChooseDrivers=1;
}
param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"FAILSAFENVIDIA");
if (param){
yon_char_divide_search(param,"=",-1);
if (strcmp(param,"")!=0)
videoconfig.failsafenVidia=yon_char_new(param);
}
param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"FAILSAFEATI");
if (param){
yon_char_divide_search(param,"=",-1);
if (strcmp(param,"")!=0)
videoconfig.failsafeATI=yon_char_new(param);
}
@ -1005,18 +1033,22 @@ void yon_setup_config(char *configcommand)
if (param){
yon_char_divide_search(param,"=",-1);
videoconfig.optirun=yon_char_remove_brackets(yon_char_new(param));
if (strcmp(videoconfig.optirun,"")==0) videoconfig.optirun=NULL;
}
param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,"PRIMUSRUN");
if (param){
yon_char_divide_search(param,"=",-1);
videoconfig.primusrun=yon_char_remove_brackets(yon_char_new(param));
if (strcmp(videoconfig.primusrun,"")==0) videoconfig.primusrun=NULL;
}
for (int i=0;i<videoconfig.portssize;i++){
videoconfig.ports[i] = yon_char_divide_search(videoconfig.ports[i],"\n",-1);
param=yon_config_get_parameter(videoconfig.loaded_config,videoconfig.configsize,XORG_MONITOR(videoconfig.ports[i]));
if (param){
char *leftover=yon_char_new(param);
yon_char_divide_search(leftover,"=",-1);
if (param&&strcmp(leftover,"")!=0){
videoconfig.monitors = yon_monitor_config_new(videoconfig.ports[i]);
yon_char_divide_search(param,"=",-1);
yon_monitor_config_update(yon_dictionary_get_data(videoconfig.monitors,monitorconfig*),videoconfig.ports[i],param);
@ -1218,7 +1250,7 @@ void yon_adapter_window_setup(widgets_dict *widgets){
yon_char_divide_search(driver_use,"=",-1);
char *driver_all = yon_config_get_parameter(rtn,size,"Kernel_modules");
yon_char_divide_search(driver_all,"=",-1);
char *final_text = yon_char_unite("<span size=\"15pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc),
char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc),
"\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor,
"\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product,
"\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use,
@ -1448,6 +1480,7 @@ int main(int argc, char *argv[])
widgets_dict widgets;
yon_setup_widgets(&widgets);
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
yon_gtk_list_store_fill_with_proprietaries(videoconfig.modulelist);
gtk_widget_show(widgets.MainWindow);
// yon_fill_ui(&widgets);
videoconfig.status_render.text_to_render=LOCAL_LOAD_SUCCESS;

@ -41,11 +41,11 @@
#define load_drivers_command "/usr/bin/ubconfig --default --source "
#define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN VGADRV_AUTO "
#define save_drivers_global_command "/usr/bin/ubconfig --target global set video "
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN VGADRV_AUTO "
#define save_drivers_local_command "pkexec /usr/bin/ubconfig --target system set video "
@ -63,6 +63,8 @@
#define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}-nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'"
#define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'"
#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ]{1,}\"|sed 's/: /=/g'|sed 's/ /_/g'"
#define XORG_MONITOR(port) yon_char_get_augumented(" XORG_MONITOR[",yon_char_get_augumented(port,"] "))
@ -103,6 +105,7 @@ typedef struct
proprietary_config proprietary;
dictionary *supported_resolutions;
GtkListStore *list;
GtkListStore *modulelist;
char *failsafenVidia;
char *failsafeATI;
int descreteOnly;

@ -266,7 +266,8 @@ dictionary *yon_dictionary_find(dictionary **dict, char *key)
dictionary *yon_dictionary_rip(dictionary *dict)
{
if (!dict->next)
if (!dict->next&&!dict->prev) return NULL;
else if (!dict->next)
{
dictionary *prev = dict->prev;
if (prev)

@ -174,7 +174,7 @@
<property name="version">1.2</property>
<property name="copyright" translatable="yes">Copyright © 2023 - UBSoft Software LLC</property>
<property name="comments" translatable="yes">Settings for video output</property>
<property name="website">https://ublinux.ru/</property>
<property name="website">https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-video</property>
<property name="website-label" translatable="yes">Project Home Page</property>
<property name="license" translatable="yes">Это приложение распространяется без каких-либо гарантий.
Подробнее в &lt;a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"&gt;GNU General Public License, версии 2 или позднее&lt;/a&gt;.</property>
@ -1532,7 +1532,7 @@
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">12</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
@ -1545,7 +1545,6 @@
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="margin-left">5</property>
<property name="margin-start">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
@ -1586,7 +1585,7 @@
<property name="can-focus">False</property>
<property name="top-padding">5</property>
<property name="bottom-padding">5</property>
<property name="left-padding">12</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">

Loading…
Cancel
Save