From 4fa3f86bb05478ef45564daac8715878dbc29f54 Mon Sep 17 00:00:00 2001 From: YanTheKaller Date: Fri, 27 Jan 2023 08:05:02 +0000 Subject: [PATCH] Fixed second theme not hiding --- ubl-settings-manager.c | 88 +++++++++++++++-------------------- ubl-settings-manager.h | 4 +- ui/ubl-settings-manager.glade | 2 +- 3 files changed, 41 insertions(+), 53 deletions(-) diff --git a/ubl-settings-manager.c b/ubl-settings-manager.c index 9431df3..400b561 100644 --- a/ubl-settings-manager.c +++ b/ubl-settings-manager.c @@ -150,8 +150,10 @@ void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder){ gtk_widget_hide(window); }; -int on_settings_accept(GtkWidget *button, dictionary *widgetsD){ - //printf("Saving config...\n"); +int on_settings_accept(GtkWidget *button, dictionary **widgetsDs){ + dictionary *widgetsD=*widgetsDs; + printf("Saving config...\n"); + actionWidgets *widgets=(actionWidgets*)widgetsD->data; gtk_window_get_size(GTK_WINDOW(widgets->window),&main_config.windowWidth,&main_config.windowHeight); gtk_window_get_position(GTK_WINDOW(widgets->window),&main_config.windowPosX,&main_config.windowPosY); @@ -172,9 +174,11 @@ int on_settings_accept(GtkWidget *button, dictionary *widgetsD){ gtk_window_present(GTK_WINDOW(widgets->SettingsWindow)); gtk_widget_hide(widgets->window); if (yon_dictionary_find(&widgetsD,main_config.curThemeName)==NULL){ - widgetsD->next=yon_theme_new(yon_dictionary_create_empty(),widgets->builder,main_config.curThemeName,widgets->applist,widgets->appssize); + dictionary *DCT=yon_dictionary_create_empty(); + widgetsD->next=yon_theme_new(&DCT,widgets->builder,main_config.curThemeName,widgets->applist,widgets->appssize); widgetsD->next->prev=widgetsD; - yon_switch_theme(&widgetsD,yon_dictionary_find(&widgetsD,main_config.curThemeName)); + + yon_switch_theme(widgetsDs,yon_dictionary_find(&widgetsD,main_config.curThemeName)); widgets=(actionWidgets*)widgetsD->data; widgets->ICSys=yon_create_icon_section_list(main_config.sections); for (dictionary *cur=widgets->ICSys->first; cur!=NULL;cur=cur->next){ @@ -183,8 +187,10 @@ int on_settings_accept(GtkWidget *button, dictionary *widgetsD){ yon_show_icon_views(widgets->ICSys,widgets); } - yon_switch_theme(&widgetsD,yon_dictionary_find(&widgetsD,main_config.curThemeName)); + yon_switch_theme(widgetsDs,yon_dictionary_find(&widgetsD,main_config.curThemeName)); if (widgets!=(actionWidgets*)widgetsD->data) widgets=(actionWidgets*)widgetsD->data; + gtk_window_resize(GTK_WINDOW(widgets->window),main_config.windowWidth,main_config.windowHeight); + gtk_window_move(GTK_WINDOW(widgets->window),main_config.windowPosX,main_config.windowPosY); gtk_widget_show(widgets->window); gtk_widget_hide(loaderWindow); main_config.WindowTheme=theme; @@ -564,35 +570,14 @@ void on_resized (GtkWidget *window, GdkEventConfigure *event, dictionary *widget if (main_config.WindowTheme!=0) if (x<1024&&y<720){ actionWidgets *widgets=(actionWidgets*)widgetsD->data; - main_config.WindowTheme=0; + //main_config.WindowTheme=0; main_config.iconsize=24; - gtk_combo_box_set_active (widgets->settingsThemeChooser,0); - on_settings_accept(window,widgetsD); - // main_config.curThemeName="Main"; - // GtkWidget *loaderWindow=GTK_WIDGET(gtk_builder_get_object(widgets->builder,"LoaderWindow")); - // gtk_window_resize(GTK_WINDOW(loaderWindow),main_config.windowWidth,main_config.windowHeight); - // gtk_window_move(GTK_WINDOW(loaderWindow),main_config.windowPosX,main_config.windowPosY); - - // gtk_widget_show(loaderWindow); - // gtk_window_present(GTK_WINDOW(widgets->SettingsWindow)); - // gtk_widget_hide(widgets->window); - // if (yon_dictionary_find(&widgetsD,main_config.curThemeName)==NULL){ - // widgetsD->next=yon_theme_new(yon_dictionary_create_empty(),widgets->builder,main_config.curThemeName,widgets->applist,widgets->appssize); - // widgetsD->next->prev=widgetsD; - // yon_switch_theme(&widgetsD,yon_dictionary_find(&widgetsD,main_config.curThemeName)); - // widgets=(actionWidgets*)widgetsD->data; - // widgets->ICSys=yon_create_icon_section_list(main_config.sections); - // for (dictionary *cur=widgets->ICSys->first; cur!=NULL;cur=cur->next){ - // load_apps((IVGraphicals*)cur->data,widgets->applist,widgets->appssize); - // } - // yon_show_icon_views(widgets->ICSys,widgets); - - // } - // yon_switch_theme(&widgetsD,yon_dictionary_find(&widgetsD,main_config.curThemeName)); - // if (widgets!=(actionWidgets*)widgetsD->data) widgets=(actionWidgets*)widgetsD->data; - // gtk_widget_show(widgets->window); - // gtk_widget_hide(loaderWindow); - + gtk_combo_box_set_active (GTK_COMBO_BOX(widgets->settingsThemeChooser),0); + if (widgetsD->next==NULL) + widgetsD=widgetsD->prev; + else + widgetsD=widgetsD->next; + on_settings_accept(window,&widgetsD); } } void launch_app_with_arguments(char *name, char *args){ @@ -1313,9 +1298,11 @@ void yon_dictionary_make_first(dictionary *dict){ } -dictionary *yon_theme_new(dictionary *widgets, GtkBuilder *builder, char *theme_id, apps *applist, int appsize){ +dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *theme_id, apps *applist, int appsize){ + + dictionary *widgets=*widgetss; actionWidgets *curWidgets=(actionWidgets*)widgets->data; - if (!curWidgets) { + if (curWidgets==NULL) { curWidgets=malloc(sizeof(actionWidgets)); widgets->data=curWidgets; } @@ -1430,20 +1417,21 @@ dictionary *yon_theme_new(dictionary *widgets, GtkBuilder *builder, char *theme_ gtk_window_set_icon_from_file(GTK_WINDOW(curWidgets->SectionSettingsWindow),AppIconPath,NULL); // hide_if_unfound(GTK_TREE_MODEL(curWidgets); - - g_signal_connect(G_OBJECT(curWidgets->MenuItemDocumentation), "activate", G_CALLBACK(on_ButtonOpenHelp_activated), curWidgets->builder); - g_signal_connect(G_OBJECT(curWidgets->CancelHelpButton), "clicked", G_CALLBACK(on_CancelHelpButton_activated), curWidgets->builder); - g_signal_connect(G_OBJECT(curWidgets->ReadHelpButton), "clicked", G_CALLBACK(on_ReadHelpButton_activated), curWidgets->builder); - g_signal_connect(G_OBJECT(curWidgets->MenuItemSettings), "activate", G_CALLBACK(on_settingsOpen), curWidgets); - g_signal_connect(G_OBJECT(curWidgets->settingsSizeSlider), "value-changed", G_CALLBACK(on_settings_icon_size_changed), curWidgets); - g_signal_connect(G_OBJECT(curWidgets->settingsCancel), "clicked", G_CALLBACK(on_settings_cancel), curWidgets); - g_signal_connect(G_OBJECT(curWidgets->settingsAccept), "clicked", G_CALLBACK(on_settings_accept), widgets); - g_signal_connect(G_OBJECT(curWidgets->settingsSectionsSettingsButton), "clicked", G_CALLBACK(on_section_settings_open), widgets); - g_signal_connect(G_OBJECT(curWidgets->SectionSettingAddButton), "clicked", G_CALLBACK(on_sections_add), curWidgets); - g_signal_connect(G_OBJECT(curWidgets->SectionSettingsClearEntryButton), "clicked", G_CALLBACK(on_sections_new_clear), curWidgets); - g_signal_connect(G_OBJECT(curWidgets->SectionSettingsCloseButton), "clicked", G_CALLBACK(on_sections_close), curWidgets); - g_signal_connect(G_OBJECT(curWidgets->SectionSettingsSaveButton), "clicked", G_CALLBACK(on_sections_save), curWidgets); - // сделать функцию для сигналов окна секций, секции для настроек в словарь + if (gnld==0){ + gnld=1; + g_signal_connect(G_OBJECT(curWidgets->MenuItemDocumentation), "activate", G_CALLBACK(on_ButtonOpenHelp_activated), curWidgets->builder); + g_signal_connect(G_OBJECT(curWidgets->CancelHelpButton), "clicked", G_CALLBACK(on_CancelHelpButton_activated), curWidgets->builder); + g_signal_connect(G_OBJECT(curWidgets->ReadHelpButton), "clicked", G_CALLBACK(on_ReadHelpButton_activated), curWidgets->builder); + g_signal_connect(G_OBJECT(curWidgets->MenuItemSettings), "activate", G_CALLBACK(on_settingsOpen), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->settingsSizeSlider), "value-changed", G_CALLBACK(on_settings_icon_size_changed), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->settingsCancel), "clicked", G_CALLBACK(on_settings_cancel), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->settingsAccept), "clicked", G_CALLBACK(on_settings_accept), widgetss); + g_signal_connect(G_OBJECT(curWidgets->settingsSectionsSettingsButton), "clicked", G_CALLBACK(on_section_settings_open), widgets); + g_signal_connect(G_OBJECT(curWidgets->SectionSettingAddButton), "clicked", G_CALLBACK(on_sections_add), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->SectionSettingsClearEntryButton), "clicked", G_CALLBACK(on_sections_new_clear), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->SectionSettingsCloseButton), "clicked", G_CALLBACK(on_sections_close), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->SectionSettingsSaveButton), "clicked", G_CALLBACK(on_sections_save), curWidgets); + }// сделать функцию для сигналов окна секций, секции для настроек в словарь gtk_label_set_text(GTK_LABEL(curWidgets->LabelTitle),_("UBLinux Settings Manager")); gtk_label_set_text(GTK_LABEL(curWidgets->settingsSubmenuLabelSize),_("Icon size")); gtk_label_set_text(GTK_LABEL(curWidgets->settingsSubmenuLabelTheme),_("Window theme")); @@ -1480,7 +1468,7 @@ int main(int argc, char *argv[]){ if (main_config.WindowTheme==0) theme="Main"; else if (main_config.WindowTheme==1) theme="Gnome"; else theme="Main"; - yon_theme_new(widgets->first, builder,theme,applist,*size); + yon_theme_new(&widgets->first, builder,theme,applist,*size); widg->applist=applist; widg->appssize=*size; widg->ICSys=yon_create_icon_section_list(main_config.sections); diff --git a/ubl-settings-manager.h b/ubl-settings-manager.h index 3897726..ce98718 100644 --- a/ubl-settings-manager.h +++ b/ubl-settings-manager.h @@ -154,7 +154,7 @@ void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder); void launch_app_with_arguments(char *name, char *args); void launch_app(char *name); void py_launch_app(char *name,char *args); -int on_settings_accept(GtkWidget *button, dictionary *widgetsD); +int on_settings_accept(GtkWidget *button, dictionary **widgetsDs); void on_paned_move(GtkPaned* self, GtkScrollType* scroll_type, actionWidgets *widgets); int on_settingsOpen(GtkWidget *button, actionWidgets *widgets); int on_settings_icon_size_changed(GtkWidget* self, actionWidgets *widgets); @@ -169,7 +169,7 @@ void sort_apps(apps *applist,int size); apps *find_apps(int *sizef); int check_categories(apps app, char *catstocheck); int setup_config(); -dictionary *yon_theme_new(dictionary *widgets, GtkBuilder *builder, char *theme_id, apps *applist, int appsize); +dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *theme_id, apps *applist, int appsize); char *yon_char_get_augumented(char *source, char *append); char *yon_cut(char *source, int size, int startpos); int yon_set_sections(IconSection *section); diff --git a/ui/ubl-settings-manager.glade b/ui/ubl-settings-manager.glade index c0c0b91..c083a7a 100644 --- a/ui/ubl-settings-manager.glade +++ b/ui/ubl-settings-manager.glade @@ -1005,7 +1005,7 @@ True False end - ../../../../../Загрузки/Telegram Desktop/ublinux-dark-glow.png + ../../../../../Загрузки/Telegram Desktop/ublinux-dark-glow-sc.svg False