diff --git a/source/libublsettingsui-gtk3-save.c b/source/libublsettingsui-gtk3-save.c index 4e28174..22e5f37 100644 --- a/source/libublsettingsui-gtk3-save.c +++ b/source/libublsettingsui-gtk3-save.c @@ -513,10 +513,18 @@ char *yon_custom_config_init(GtkFileChooserAction type){ yon_gtk_window_setup(GTK_WINDOW(dialog->Window),NULL,template_app_information.app_title,yon_char_unite("com.ublinux.",template_app_information.app_tech_name,NULL),"ConfigFilechooserWindow"); gtk_label_set_text(GTK_LABEL(dialog->HeaderTopic),template_app_information.app_title); - GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_add_pattern(filter,"*.ini"); - gtk_file_filter_set_name(filter, "*.ini"); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->MainFileChooser),filter); + GtkFileFilter *filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter,"*.ini"); + gtk_file_filter_set_name(filter, "*.ini"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); + GtkFileFilter *filter_json = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter_json,"*.json"); + gtk_file_filter_set_name(filter_json, "*.json"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter_json); + GtkFileFilter *filter_yaml = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter_yaml,"*.yaml"); + gtk_file_filter_set_name(filter_yaml, "*.yaml"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter_yaml); if (type==GTK_FILE_CHOOSER_ACTION_SAVE){ // yon_file_chooser_set_button_label(yon_char_get_localised_from_lib(LOAD_CONFIG_LABEL)); @@ -530,7 +538,7 @@ char *yon_custom_config_init(GtkFileChooserAction type){ char *command_creation = ubconfig_file_create(file); struct passwd *user = getpwnam(yon_ubl_root_user_get()); int a = system(command_creation); - chown(file,user->pw_uid,user->pw_gid); + if (chown(file,user->pw_uid,user->pw_gid)){}; free(command_creation); if (access(file,0)!=F_OK){ yon_ubl_status_box_render(CUSTOM_CONFIG_CREATION_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); @@ -665,4 +673,24 @@ template_saving_window *yon_exit_window_new(){ gtk_tree_view_remove_column(GTK_TREE_VIEW(window->ParametersTree),gtk_tree_view_get_column(GTK_TREE_VIEW(window->ParametersTree),0)); return window; +} + +GtkWidget *yon_config_save_window_new(){ + GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); + gtk_window_set_icon_name(GTK_WINDOW(dialog),template_app_information.app_tech_name); + gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); + gtk_widget_show(dialog); + GtkFileFilter *filter = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter,"*.ini"); + gtk_file_filter_set_name(filter, "*.ini"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); + GtkFileFilter *filter_json = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter_json,"*.json"); + gtk_file_filter_set_name(filter_json, "*.json"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter_json); + GtkFileFilter *filter_yaml = gtk_file_filter_new(); + gtk_file_filter_add_pattern(filter_yaml,"*.yaml"); + gtk_file_filter_set_name(filter_yaml, "*.yaml"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter_yaml); + return dialog; } \ No newline at end of file diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 1e0ec4a..e1901da 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -484,6 +484,9 @@ typedef struct { const char *old_password; } yon_password_window; + +GtkWidget *yon_config_save_window_new(); + /// @brief /// @param window окно с паролем /// @param hashes массив с названиями типов хэша