Merge pull request 'Fixed main window position and size loading' (#164) from YanTheKaller/ubl-settings-video:master into master

Reviewed-on: #164
master v2.42
Dmitry Razumov 2 months ago
commit c2c472d908

@ -452,11 +452,38 @@ void on_app_chooser_open(GtkWidget *self, main_window *widgets){
} }
} }
void yon_adapter_window_setup(main_window *widgets){ void yon_adapter_update(struct adapter_struct *adapter){
if (!adapter->vendor){
gtk_widget_hide(adapter->widgets->InformationOverlay2);
return;
}
gtk_label_set_markup(GTK_LABEL(adapter->widgets->InformationLabel),adapter->adapter_text);
if (strstr(adapter->vendor,"Intel")){
gtk_image_set_from_icon_name(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),"com.ublinux.ubl-settings-video.intel-logo",GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),64);
}
else if (strstr(adapter->vendor,"NVIDIA")){
gtk_image_set_from_icon_name(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),"com.ublinux.ubl-settings-video.nvidia-logo",GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),64);
}
else if (strstr(adapter->vendor,"AMD")||strstr(adapter->vendor,"Advanced Micro Devices")){
gtk_image_set_from_icon_name(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),"com.ublinux.ubl-settings-video.amd-logo",GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),64);
}
else if (strstr(adapter->vendor,"VMware")){
gtk_image_set_from_icon_name(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),"com.ublinux.ubl-settings-video.vmware-logo",GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(adapter->widgets->InformationCompanyLogoImage),64);
}
else {
gtk_widget_destroy(adapter->widgets->InformationCompanyLogoImage);
}
}
void *yon_load_adapter(main_window *widgets){
int size=0; int size=0;
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay),widgets->InformationCompanyLogoImage);
config_str rtn = yon_config_load(get_adapter_info_json,&size); config_str rtn = yon_config_load(get_adapter_info_json,&size);
struct json_object *jsobject = json_tokener_parse(yon_char_parsed_to_string(rtn,size,""));{ struct json_object *jsobject = json_tokener_parse(yon_char_parsed_to_string(rtn,size,""));
{
struct json_object *item_obj = json_object_array_get_idx(jsobject, 0); struct json_object *item_obj = json_object_array_get_idx(jsobject, 0);
struct json_object *unit_obj; struct json_object *unit_obj;
const char *desc=""; const char *desc="";
@ -493,28 +520,14 @@ void yon_adapter_window_setup(main_window *widgets){
"\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product, "\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product,
"\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use, "\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use,
"\n<span weight='bold' color='#1a5fb4'>",AVALIABLE_KERNEL_DRIVERS_LABEL,":</span> ",driver_all,"</span>",NULL); "\n<span weight='bold' color='#1a5fb4'>",AVALIABLE_KERNEL_DRIVERS_LABEL,":</span> ",driver_all,"</span>",NULL);
gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel),final_text); struct adapter_struct *adapter_info = malloc(sizeof(struct adapter_struct));
if (strstr(vendor,"Intel")){ memset(adapter_info,0,sizeof(struct adapter_struct));
GtkIconTheme *icthm=gtk_icon_theme_get_default(); adapter_info->widgets = widgets;
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); adapter_info->vendor=yon_char_new(vendor);
} adapter_info->adapter_text = yon_char_new(final_text);
else if (strstr(vendor,"NVIDIA")){ g_idle_add_once((GSourceOnceFunc)yon_adapter_update,adapter_info);
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else if (strstr(vendor,"AMD")||strstr(vendor,"Advanced Micro Devices")){
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else if (strstr(vendor,"VMware")){
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.vmware-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else {
gtk_widget_destroy(widgets->InformationCompanyLogoImage);
} }
} {
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay2),widgets->InformationCompanyLogoImage2);
struct json_object *item_obj = json_object_array_get_idx(jsobject, 1); struct json_object *item_obj = json_object_array_get_idx(jsobject, 1);
if (item_obj){ if (item_obj){
struct json_object *unit_obj; struct json_object *unit_obj;
@ -552,29 +565,28 @@ void yon_adapter_window_setup(main_window *widgets){
"\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product, "\n<span weight='bold' color='#1a5fb4'>",MODEL_LABEL,":</span> ",product,
"\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use, "\n<span weight='bold' color='#1a5fb4'>",USED_KERNEL_DRIVER_LABEL,":</span> ",driver_use,
"\n<span weight='bold' color='#1a5fb4'>",AVALIABLE_KERNEL_DRIVERS_LABEL,":</span> ",driver_all,"</span>",NULL); "\n<span weight='bold' color='#1a5fb4'>",AVALIABLE_KERNEL_DRIVERS_LABEL,":</span> ",driver_all,"</span>",NULL);
gtk_label_set_markup(GTK_LABEL(widgets->InformationLabel2),final_text);
if (strstr(vendor,"Intel")){ struct adapter_struct *adapter_info = malloc(sizeof(struct adapter_struct));
GtkIconTheme *icthm=gtk_icon_theme_get_default(); memset(adapter_info,0,sizeof(struct adapter_struct));
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); adapter_info->widgets = widgets;
} adapter_info->vendor=yon_char_new(vendor);
else if (strstr(vendor,"NVIDIA")){ adapter_info->adapter_text = yon_char_new(final_text);
GtkIconTheme *icthm=gtk_icon_theme_get_default(); g_idle_add_once((GSourceOnceFunc)yon_adapter_update,adapter_info);
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else if (strstr(vendor,"AMD")&&strstr(vendor,"Advanced Micro Devices")){
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else if (strstr(vendor,"VMware")){
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.vmware-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else {
gtk_widget_destroy(widgets->InformationCompanyLogoImage2);
}
} else { } else {
gtk_widget_hide(widgets->InformationOverlay2); struct adapter_struct *adapter_info = malloc(sizeof(struct adapter_struct));
memset(adapter_info,0,sizeof(struct adapter_struct));
adapter_info->widgets = widgets;
g_idle_add_once((GSourceOnceFunc)yon_adapter_update,adapter_info);
} }
}
g_thread_exit(NULL);
}
void yon_adapter_window_setup(main_window *widgets){
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay),widgets->InformationCompanyLogoImage);
g_thread_new("adapter_thread",(GThreadFunc)yon_load_adapter,widgets);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay2),widgets->InformationCompanyLogoImage2);
} }
void yon_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target){ void yon_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target){
@ -967,8 +979,12 @@ int main(int argc, char *argv[]){
template_main_window *widgets = yon_ubl_window_setup(); template_main_window *widgets = yon_ubl_window_setup();
config_init(); config_init();
widgets = yon_main_window_complete((main_window*)widgets); widgets = yon_main_window_complete((main_window*)widgets);
yon_packages_init(); yon_window_config_setup(GTK_WINDOW(widgets->Window));
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);
yon_root_button_setup(widgets,argv,argc); yon_root_button_setup(widgets,argv,argc);
yon_packages_init();
if (system(yon_check_database_command)){ if (system(yon_check_database_command)){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
@ -982,10 +998,6 @@ int main(int argc, char *argv[]){
} else { } else {
yon_proprietary_get_thread(NULL,(main_window*)widgets); yon_proprietary_get_thread(NULL,(main_window*)widgets);
} }
yon_window_config_setup(GTK_WINDOW(widgets->Window));
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);
gtk_main(); gtk_main();
yon_packages_finish(); yon_packages_finish();
return 0; return 0;

@ -392,6 +392,12 @@ struct proprietary_kernel_append_struct {
char *kernel; char *kernel;
}; };
struct adapter_struct {
main_window *widgets;
char *adapter_text;
char *vendor;
};
monitor_data *yon_monitor_new(main_window *widgets,int dull); monitor_data *yon_monitor_new(main_window *widgets,int dull);
void yon_launch_with_output(char *command); void yon_launch_with_output(char *command);
void yon_monitor_view_update(); void yon_monitor_view_update();
@ -476,5 +482,7 @@ char *yon_char_extend(char *target, char symbol, size_t length);
void on_driver_child_ready(VteTerminal *terminal, GPid pid, GError *, gpointer ); void on_driver_child_ready(VteTerminal *terminal, GPid pid, GError *, gpointer );
void on_paned_position_changed(GtkWidget *, GdkEvent*,main_window *widgets); void on_paned_position_changed(GtkWidget *, GdkEvent*,main_window *widgets);
gboolean on_db_update_done(GtkWidget *,gint ,main_window *widgets); gboolean on_db_update_done(GtkWidget *,gint ,main_window *widgets);
void yon_adapter_update(struct adapter_struct *adapter);
void *yon_load_adapter(main_window *widgets);
#endif #endif
Loading…
Cancel
Save