From 3dd8c3740e69732d4355aade7418ee30b0be86b4 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Thu, 3 Aug 2023 14:58:45 +0600 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=20=D0=B2=20=D0=BF=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=B0=D1=85=20=D0=BF=D1=80=D0=B8=20=D0=B2=D0=B2?= =?UTF-8?q?=D0=BE=D0=B4=D0=B5=20=D0=B2=20=D0=BF=D0=BE=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-strings.h | 29 ++++++++++++++++-- source/view_temp_u_g_p.c | 59 +++++++++++++++++++++--------------- ubl-settings-diskquota.pot | 3 ++ ubl-settings-diskquota_ru.po | 5 ++- 4 files changed, 68 insertions(+), 28 deletions(-) diff --git a/source/ubl-strings.h b/source/ubl-strings.h index f1a0a68..ce8e729 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -69,10 +69,33 @@ #define STR_ON _("On") #define STR_OFF _("Off") +#define STR_NOT_SET _("Not set") +#define STR_TITLE_ADD_QUOTAS _("Settings quotas - Addition") +#define STR_TITLE_EDIT_QUOTAS _("Settings quotas - Editing") #define SAVE_FAILED_LABEL -#define STR_USER _("User"); -#define STR_GROUP _("Group"); -#define STR_PROJECT _("Project"); +#define STR_TITLE_FILE_MANGER _("Please select folder") + +#define STR_USER _("User") +#define STR_GROUP _("Group") +#define STR_PROJECT _("Project") +#define STR_USERS _("Users") +#define STR_GROUPS _("Groups") + +#define STR_ERROR_MESS_NOT_DIR _("Is not a directory") +#define STR_CHK_LABEL_WRITE_ALL_USERS _("Withdraw all users") +#define STR_CHK_LABEL_WRITE_ALL_GROUPS _("Withdraw all groups") + +#define STR_ERROR_ERROR_PROJECT_ID _("Project ID mandatory field") +#define STR_ERROR_PATH_IS_DISK_FALSE_1 _("The path does not match the specified disk") +#define STR_ERROR_PROJECT_NAME_VALUE_NULL _("Project name mandatory field") +#define STR_ERROR_PROJECT_NAME_ENTER_VALUE _("Project name required field") +#define STR_ERROR_LIST_USER_NULL _("The list of users is empty") +#define STR_ERROR_NO_SELECTED_DISK _("To save, you need to select a disk") +#define STR_ERROR_ENTRY_VALUE_VOLUME_OR_FILES _("The volume and files fields must have at least one value") +#define STR_ERROR_PATH_IS_DISK_FALSE _("The selected directory is not located on the target device") + + + diff --git a/source/view_temp_u_g_p.c b/source/view_temp_u_g_p.c index b0b51ec..d4c3cd6 100644 --- a/source/view_temp_u_g_p.c +++ b/source/view_temp_u_g_p.c @@ -46,7 +46,7 @@ void show_warning_disk() { for (int i = 0; i < _all_config_temp->v_disk_status.vectorList.total; i++) { disk_status* _config = (disk_status*)_all_config_temp->v_disk_status.pfVectorGet(&_all_config_temp->v_disk_status, i); if (strstr(str_disk, _config->device)) { - text_mess = _("The selected directory is not located on the target device"); + text_mess = STR_ERROR_PATH_IS_DISK_FALSE; text_mess = yon_char_unite(text_mess, " ", _config->device, NULL); show_warning_no_fill(text_mess); } @@ -159,13 +159,13 @@ void temp_select_disk() { disk_status* _config = (disk_status*)_all_config_temp->v_disk_status.pfVectorGet(&_all_config_temp->v_disk_status, i); if (strstr(str_disk, _config->device)) { if (_config->status == 2) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("On")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_ON); } else if (_config->status == 1){ - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Off")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_OFF); } else { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Not set")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_NOT_SET); } } @@ -193,7 +193,7 @@ void temp_settings() { gtk_widget_hide(temp_widgets->lblCatalogProjectEdit); gtk_widget_hide(temp_widgets->lblProjectIdValueEdit); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto),1); - gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Addition")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_ADD_QUOTAS); } else { gtk_widget_hide(temp_widgets->btnReviewProject); @@ -202,29 +202,29 @@ void temp_settings() { gtk_widget_hide(temp_widgets->entryProjectId); gtk_widget_hide(temp_widgets->btnGenerateProject); gtk_widget_hide(temp_widgets->UserDeviceCombo); - gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Editing")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_EDIT_QUOTAS); } } else { gtk_widget_hide(temp_widgets->boxProjectAddEditboxProjectId); if (strcmp(flag_temp_u_g_p, "usrquota")==0) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("User"),":",NULL)); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(STR_USER,":",NULL)); } else if (strcmp(flag_temp_u_g_p, "grpquota")==0) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("Group"),":",NULL)); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(STR_GROUP,":",NULL)); } if (strcmp(set_add_edit, "add")==0) { gtk_widget_hide(temp_widgets->boxProject); gtk_widget_hide(temp_widgets->boxProjectAddEdit); - gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Addition")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_ADD_QUOTAS); } else { gtk_widget_hide(temp_widgets->boxProject); gtk_widget_hide(temp_widgets->boxProjectAddEdit); gtk_widget_hide(temp_widgets->UserDeviceCombo); - gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Editing")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_EDIT_QUOTAS); } } temp_on_set_combo_box_device(); @@ -381,7 +381,7 @@ void wrapper_show_file_manager() { GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path); show_file_manger(temp_widgets, builder); gtk_widget_show(temp_widgets->wndChooseFileWallpaper); - gtk_window_set_title(GTK_WINDOW(temp_widgets->wndChooseFileWallpaper), _("Please select folder")); + gtk_window_set_title(GTK_WINDOW(temp_widgets->wndChooseFileWallpaper), STR_TITLE_FILE_MANGER); char* str_disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(temp_widgets->UserDeviceCombo)); for (int i = 0; i < _all_config_temp->v_disk_status.vectorList.total; i++) { disk_status* _config = (disk_status*)_all_config_temp->v_disk_status.pfVectorGet(&_all_config_temp->v_disk_status, i); @@ -463,20 +463,20 @@ void set_edit_gui_data_base(config_all* all_config, int index) { if (strstr(_config->type_arr, "prjquota")) { if (strstr(_config_disk->device, model_find_path_to_disk(&all_config->v_disk_status, _config->UNIX_file))) { if (_config_disk->status == 1) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Off")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_OFF); } else if (_config_disk->status == 2) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("On")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_ON); } } } else { if (strstr(_config_disk->device, _config->UNIX_file)) { if (_config_disk->status == 1) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Off")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_OFF); } else if (_config_disk->status == 2) { - gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("On")); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_ON); } } } @@ -600,18 +600,18 @@ int check_save() { if (strcmp(set_add_edit, "add")==0) { menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(temp_widgets->UserDeviceCombo)); if (menu_id == -1) { - show_warning_no_fill(_("To save, you need to select a disk")); + show_warning_no_fill(STR_ERROR_NO_SELECTED_DISK); } } if (!active1 && !active2 && !active3 && !active4) { - show_warning_no_fill(_("The volume and files fields must have at least one value")); + show_warning_no_fill(STR_ERROR_ENTRY_VALUE_VOLUME_OR_FILES); return 0; } if (menu_id == -1 || ((!strcmp(value1, "0") || !strcmp(value1, "")) && active1) || ((!strcmp(value2, "0") || !strcmp(value2, "")) && active2) || ((!strcmp(value3, "0") || !strcmp(value3, "")) && active3) || ((!strcmp(value4, "0") || !strcmp(value4, "")) && active4)) { - show_warning_no_fill(_("The volume and files fields must have at least one value")); + show_warning_no_fill(STR_ERROR_ENTRY_VALUE_VOLUME_OR_FILES); return 0; } return 1; @@ -623,15 +623,26 @@ int check_save_project() { if (strcmp(set_add_edit, "add")==0) { char* file_dir = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryCatalogProject)); char* project_id = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectId)); - if (!strlen(file_dir) || (!strlen(project_id) && !active1) || !strlen(project_name)) { + struct stat buf; + int error_file = stat(file_dir, &buf); + if (error_file < 0 || !S_ISDIR(buf.st_mode) || !strlen(file_dir) || (!strlen(project_id) && !active1) || !strlen(project_name)) { if (!strlen(project_id) && !active1) { - show_warning_no_fill(_("Project ID mandatory field")); + show_warning_no_fill(STR_ERROR_ERROR_PROJECT_ID); } else if (!strlen(file_dir)) { - show_warning_no_fill(_("The path does not match the specified disk")); + show_warning_no_fill(STR_ERROR_PATH_IS_DISK_FALSE); } else if (!strlen(project_name)) { - show_warning_no_fill(_("Project name mandatory field")); + show_warning_no_fill(STR_ERROR_PROJECT_NAME_VALUE_NULL); + } + else if(stat(file_dir, &buf) < 0) { + show_warning_no_fill(STR_ERROR_MESS_NOT_DIR); + } + else if (error_file < 0) { + show_warning_no_fill(STR_ERROR_MESS_NOT_DIR); + } + else if (!S_ISDIR(buf.st_mode)) { + show_warning_no_fill(STR_ERROR_MESS_NOT_DIR); } return 0; } @@ -639,7 +650,7 @@ int check_save_project() { } else { if (strlen(project_name)<=1) { - show_warning_no_fill(_("Project name required field")); + show_warning_no_fill(STR_ERROR_PROJECT_NAME_ENTER_VALUE); return 0; } return 1; @@ -668,7 +679,7 @@ int wrapper_check_save() { if (check_save()) { return 1; } - show_warning_no_fill(_("The list of users is empty")); + show_warning_no_fill(STR_ERROR_LIST_USER_NULL); return 0; } } diff --git a/ubl-settings-diskquota.pot b/ubl-settings-diskquota.pot index e77d739..ed07b6f 100644 --- a/ubl-settings-diskquota.pot +++ b/ubl-settings-diskquota.pot @@ -436,3 +436,6 @@ msgstr "" msgid "Project" msgstr "" + +msgid "Is not a directory" +msgstr "" \ No newline at end of file diff --git a/ubl-settings-diskquota_ru.po b/ubl-settings-diskquota_ru.po index 8a1ec6f..1d56a7a 100644 --- a/ubl-settings-diskquota_ru.po +++ b/ubl-settings-diskquota_ru.po @@ -446,4 +446,7 @@ msgid "To save, you need to select a disk" msgstr "Для сохранения нужно выбрать диск" msgid "Project" -msgstr "Проект" \ No newline at end of file +msgstr "Проект" + +msgid "Is not a directory" +msgstr "Не является каталогом" \ No newline at end of file