Готова версия 2.0 Beta

pull/24/head
Igor Belitskiy 2 years ago
parent 87b97d274b
commit b645de6fd5

@ -219,6 +219,22 @@ void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
gtk_widget_set_sensitive(widgets->btnEdit, 0);
}
}
if (vec_temp->vectorList.total > 0 && all_config.v_disk_status.vectorList.total==0) {
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view));
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_widget_set_sensitive(widgets->btnDel, 1);
}
else {
if (main_config.lock_save_global == 0 || main_config.lock_save_local == 0) {
gtk_widget_set_sensitive(widgets->btnAdd,1);
}
gtk_widget_set_sensitive(widgets->btnAdd, 0);
gtk_widget_set_sensitive(widgets->btnDel, 0);
gtk_widget_set_sensitive(widgets->btnEdit, 0);
}
}
else if (!all_config.v_disk_status.vectorList.total && note_selected != 3) {
gtk_widget_set_sensitive(widgets->btnAdd, 0);
}
@ -252,12 +268,13 @@ void device_remove() {
index_selected = -1;
disk_status* _config = (disk_status*)all_config.v_disk_status.pfVectorGet(&all_config.v_disk_status, index);
all_config.v_disk_remove.pfVectorAdd(&all_config.v_disk_remove, yon_char_new(_config->device));
del_disk_to_vector_device(&all_config.v_user, _config->device);
del_disk_to_vector_device(&all_config.v_group, _config->device);
del_disk_to_vector_device(&all_config.v_general, _config->device);
model_search_disk_remove(&all_config.v_user, &all_config.v_remove, _config->device);
model_search_disk_remove(&all_config.v_group, &all_config.v_remove, _config->device);
model_search_disk_remove_project(&all_config.v_project,&all_config.v_disk_status, &all_config.v_remove, _config->device);
model_clear_cfg_device(_config);
all_config.v_disk_status.pfVectorDelete(&all_config.v_disk_status, index);
all_config.flag_save = 1;
}
}
}
@ -270,19 +287,6 @@ void device_remove() {
}
void template_remove(vector* vec_temp, hotebook* widgets, int index) {
if (index!=-1) {
index_selected = -1;
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
char* load_key = yon_char_new(_config->loaded_keys);
all_config.v_remove.pfVectorAdd(&all_config.v_remove, load_key);
model_clear_cfg(_config);
vec_temp->pfVectorDelete(vec_temp, index);
all_config.flag_save = 1;
}
}
void user_remove() {
if (note_selected == 0) {
GtkTreeIter iter;
@ -291,7 +295,9 @@ void user_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
int index = wrapper_select_tree_view(&cfg_custom_gui.user);
gtk_list_store_remove(cfg_custom_gui.user.liststore, &iter);
template_remove(&all_config.v_user, &cfg_custom_gui.user,index);
model_template_remove(&all_config.v_user, &all_config.v_remove, index);
index_selected = -1;
all_config.flag_save = 1;
}
}
@ -305,7 +311,9 @@ void group_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
int index = wrapper_select_tree_view(&cfg_custom_gui.group);
gtk_list_store_remove(cfg_custom_gui.group.liststore, &iter);
template_remove(&all_config.v_group ,&cfg_custom_gui.group,index);
model_template_remove(&all_config.v_group, &all_config.v_remove, index);
index_selected = -1;
all_config.flag_save = 1;
}
}
}
@ -318,7 +326,9 @@ void project_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
int index = wrapper_select_tree_view(&cfg_custom_gui.project);
gtk_list_store_remove(cfg_custom_gui.project.liststore, &iter);
template_remove(&all_config.v_project, &cfg_custom_gui.project, index);
model_template_remove(&all_config.v_project, &all_config.v_remove, index);
index_selected = -1;
all_config.flag_save = 1;
}
}

@ -107,15 +107,16 @@ int fill_tree_view_project(config_all* all_config,hotebook* widget , char* str_f
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(widget->liststore,&iter,
0,fill_tree_view_id(_config->id),
0,model_find_path_to_disk(&all_config->v_disk_status, _config->UNIX_file),
1,_config->UNIX_file,
2,format_actors(&_config->actors),
3,philos_format_cfg_str_size_memory("", check_null(_config->soft_restriction_size),_config->soft_restriction_size_pow),
4,philos_format_cfg_str_size_memory("", check_null(_config->severe_limitation_size),_config->severe_limitation_size_pow),
5,deferring_size,
6,check_null_to_str(_config->soft_restriction_file),
7,check_null_to_str(_config->severe_limitation_file),
8,deferring_file,
2,fill_tree_view_id(_config->id),
3,format_actors(&_config->actors),
4,philos_format_cfg_str_size_memory("", check_null(_config->soft_restriction_size),_config->soft_restriction_size_pow),
5,philos_format_cfg_str_size_memory("", check_null(_config->severe_limitation_size),_config->severe_limitation_size_pow),
6,deferring_size,
7,check_null_to_str(_config->soft_restriction_file),
8,check_null_to_str(_config->severe_limitation_file),
9,deferring_file,
-1);
}
@ -301,4 +302,66 @@ void del_disk_to_vector_device(vector* vec_temp, char* str_disk) {
vec_temp->pfVectorDelete(vec_temp, i);
}
}
}
void model_template_remove(vector* vec_temp, vector* vec_remove, int index) {
if (index!=-1) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
char* load_key = yon_char_new(_config->loaded_keys);
vec_remove->pfVectorAdd(vec_remove, load_key);
model_clear_cfg(_config);
vec_temp->pfVectorDelete(vec_temp, index);
}
}
void model_search_disk_remove(vector* vec_temp, vector* vec_remove, char* str_disk) {
for (int i = 0; i < vec_temp->vectorList.total; i++) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, i);
if (strstr(_config->UNIX_file, str_disk)) {
model_template_remove(vec_temp,vec_remove, i);
}
}
}
char* model_find_path_to_disk(vector* vec_temp, char* str_path) {
for (int i = 0; i < vec_temp->vectorList.total; i++) {
disk_status* _config = (disk_status*)vec_temp->pfVectorGet(vec_temp, i);
if (strstr(str_path, _config->mount_point)) {
return _config->device;
}
}
return "-";
}
void model_search_disk_remove_project(vector* vec_temp,vector* vec_status, vector* vec_remove, char* str_disk) {
for (int i = 0; i < vec_temp->vectorList.total; i++) {
config_u_g_p* _config_project = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, i);
for (int j = 0; j < vec_status->vectorList.total; j++) {
disk_status* _config = (disk_status*)vec_status->pfVectorGet(vec_status, j);
if (strstr(_config_project->UNIX_file, _config->mount_point)) {
model_template_remove(vec_temp,vec_remove, i);
}
}
}
}
void model_format_del_str(config_u_g_p* _config) {
char* loaded_keys = yon_char_new("");
if (strstr(_config->type_arr,"prjquota")) {
if (strcmp(format_actors(&_config->actors), "-") == 0) {
loaded_keys = yon_char_unite(_config->type_arr,":" , _config->UNIX_file,":", fill_tree_view_id(_config->id), ",", format_actors(&_config->actors), NULL);
}
else {
loaded_keys = yon_char_unite(_config->type_arr,":" , _config->UNIX_file,":", fill_tree_view_id(_config->id), NULL);
}
}
else {
if (strcmp(format_actors(&_config->actors), "-") == 0) {
loaded_keys = yon_char_unite(_config->type_arr,":" , _config->UNIX_file, NULL);
}
else {
loaded_keys = yon_char_unite(_config->type_arr,":" , _config->UNIX_file,":", format_actors(&_config->actors), NULL);
}
}
_config->loaded_keys = loaded_keys;
}

@ -66,11 +66,16 @@ typedef struct{
void model_clear_cfg_device(disk_status* _config);
char* wrapper_str_time(size_t seconds);
void model_template_remove(vector* vec_temp, vector* vec_remove, int index);
void model_search_disk_remove(vector* vec_temp, vector* vec_remove, char* str_disk);
void model_null_str_writing(config_u_g_p* _config);
void model_clear_cfg(config_u_g_p* _config);
void model_array_size_memory();
char* format_actors(vector* vec_actors);
char* model_find_path_to_disk(vector* vec_temp, char* str_path);
void model_search_disk_remove_project(vector* vec_temp,vector* vec_status, vector* vec_remove, char* str_disk);
void model_free_vector_string(vector* vec_str);
void model_format_del_str(config_u_g_p* _config);
void del_disk_to_vector_device(vector* vec_temp, char* str_disk);
int fill_tree_view_user_group(config_all* all_config, hotebook* widget,char* str_fill , int flag_gui_add);
int fill_tree_view_project(config_all* all_config, hotebook* widget, char* str_fill , int flag_gui_add);

@ -41,7 +41,6 @@ typedef struct {
GtkWidget* lblHeadQuotasEditWindow;
GtkWidget* btnOpenUserGroup;
GtkWidget* lblOpenUserGroup;
GtkWidget* btnReviewProject;
GtkWidget* btnGenerateProject;

@ -199,10 +199,10 @@ void view_device_get_gui_data() {
}
}
else {
del_disk_to_vector_device(&view_device_all_config_temp->v_user, _config->device);
del_disk_to_vector_device(&view_device_all_config_temp->v_group, _config->device);
del_disk_to_vector_device(&view_device_all_config_temp->v_general, _config->device);
if (status_id == 0) {
model_search_disk_remove(&view_device_all_config_temp->v_user, &view_device_all_config_temp->v_remove, _config->device);
model_search_disk_remove(&view_device_all_config_temp->v_group, &view_device_all_config_temp->v_remove, _config->device);
model_search_disk_remove_project(&view_device_all_config_temp->v_project,&view_device_all_config_temp->v_disk_status, &view_device_all_config_temp->v_remove, _config->device);
_config->status = 1;
}
else {

@ -28,36 +28,31 @@ void destroy_show_warning(GtkWidget *self) {
temp_widgets->CancelWarrningButton = NULL;
temp_widgets->lblWarningText = NULL;
}
void show_warning() {
void show_warning_no_fill(char* text_mess) {
GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path);
char* text_mess = yon_char_new("");
temp_widgets->WarrningWindow = yon_gtk_builder_get_widget(builder,"WarrningWindow");
temp_widgets->lblWarningText = yon_gtk_builder_get_widget(builder,"lblWarningText");
temp_widgets->CancelWarrningButton = yon_gtk_builder_get_widget(builder,"CancelWarrningButton");
gtk_label_set_label(GTK_LABEL(temp_widgets->lblWarningText), text_mess);
gtk_widget_show(temp_widgets->WarrningWindow);
g_signal_connect(G_OBJECT(temp_widgets->WarrningWindow), "destroy", G_CALLBACK(destroy_show_warning), temp_widgets->WarrningWindow);
g_signal_connect(G_OBJECT(temp_widgets->CancelWarrningButton),"clicked",G_CALLBACK(destroy_show_warning),temp_widgets->WarrningWindow);
}
void show_warning_disk() {
char* text_mess = NULL;
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);
if (strstr(str_disk, _config->device)) {
text_mess = _("The selected directory is not located on the target device");
text_mess = yon_char_unite(text_mess, " ", _config->device, NULL);
show_warning_no_fill(text_mess);
}
}
gtk_label_set_label(GTK_LABEL(temp_widgets->lblWarningText), text_mess);
gtk_widget_show(temp_widgets->WarrningWindow);
g_signal_connect(G_OBJECT(temp_widgets->WarrningWindow), "destroy", G_CALLBACK(destroy_show_warning), temp_widgets->WarrningWindow);
g_signal_connect(G_OBJECT(temp_widgets->CancelWarrningButton),"clicked",G_CALLBACK(destroy_show_warning),temp_widgets->WarrningWindow);
}
void show_warning_no_fill(char* text_mess) {
GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path);
temp_widgets->WarrningWindow = yon_gtk_builder_get_widget(builder,"WarrningWindow");
temp_widgets->lblWarningText = yon_gtk_builder_get_widget(builder,"lblWarningText");
temp_widgets->CancelWarrningButton = yon_gtk_builder_get_widget(builder,"CancelWarrningButton");
gtk_label_set_label(GTK_LABEL(temp_widgets->lblWarningText), text_mess);
gtk_widget_show(temp_widgets->WarrningWindow);
g_signal_connect(G_OBJECT(temp_widgets->WarrningWindow), "destroy", G_CALLBACK(destroy_show_warning), temp_widgets->WarrningWindow);
g_signal_connect(G_OBJECT(temp_widgets->CancelWarrningButton),"clicked",G_CALLBACK(destroy_show_warning),temp_widgets->WarrningWindow);
}
void set_disk(char* _disk) {
disk = yon_char_new(_disk);
@ -105,7 +100,7 @@ void temp_check_path() {
}
else {
gtk_widget_set_sensitive(temp_widgets->btnSaveTempSave, 0);
show_warning();
show_warning_disk();
}
}
}
@ -132,7 +127,6 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil
temp_widgets->boxProjectAddEdit = yon_gtk_builder_get_widget(builder, "boxProjectAddEdit");
temp_widgets->boxProject = yon_gtk_builder_get_widget(builder, "boxProject");
temp_widgets->boxProjectAddEditboxProjectId = yon_gtk_builder_get_widget(builder, "boxProjectAddEditboxProjectId");
temp_widgets->lblOpenUserGroup = yon_gtk_builder_get_widget(builder, "lblOpenUserGroup");
temp_widgets->lblHeadQuotasEditWindow = yon_gtk_builder_get_widget(builder, "lblHeadQuotasEditWindow");
temp_widgets->quotegroupSizeSoftLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitCheck");
@ -212,11 +206,9 @@ void temp_settings() {
else {
gtk_widget_hide(temp_widgets->boxProjectAddEditboxProjectId);
if (strcmp(flag_temp_u_g_p, "usrquota")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("User"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("User"),":",NULL));
}
else if (strcmp(flag_temp_u_g_p, "grpquota")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Group"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("Group"),":",NULL));
}
@ -551,6 +543,7 @@ void get_add_gui_data_base(config_all* all_config) {
_config->actors.pfVectorCopy(&_config->actors, &t);
}
}
model_format_del_str(_config);
vec_temp->pfVectorAdd(vec_temp, _config);
@ -724,9 +717,7 @@ config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) {
}
if (strcmp(set_add_edit, "add")==0) {
char* file_dir = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryCatalogProject));
char* activ_disk = yon_char_new(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(temp_widgets->UserDeviceCombo)));
activ_disk = yon_char_divide_search(activ_disk, " ", -1);
_config->UNIX_file = activ_disk;
_config->UNIX_file = yon_char_new(file_dir);
_config->type_arr = yon_char_new(flag_temp_u_g_p);
}
}
@ -796,3 +787,4 @@ void set_activ_project_id() {
gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active);
}

@ -2577,6 +2577,8 @@ translated and supported by community.</property>
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststoreUser">
@ -4277,13 +4279,10 @@ limit
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">ID</property>
<property name="title" translatable="yes">Device</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
</object>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
@ -4292,7 +4291,7 @@ limit
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Device</property>
<property name="title" translatable="yes">Catalog</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText"/>
@ -4305,7 +4304,7 @@ limit
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Project Name</property>
<property name="title" translatable="yes">ID</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText">
@ -4317,6 +4316,21 @@ limit
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Project Name</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
@ -4329,7 +4343,7 @@ restriction
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">3</attribute>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
@ -4346,7 +4360,7 @@ limit
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">4</attribute>
<attribute name="text">5</attribute>
</attributes>
</child>
</object>
@ -4365,7 +4379,7 @@ limit
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">5</attribute>
<attribute name="text">6</attribute>
</attributes>
</child>
</object>
@ -4382,7 +4396,7 @@ restriction
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">6</attribute>
<attribute name="text">7</attribute>
</attributes>
</child>
</object>
@ -4399,7 +4413,7 @@ limit
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">7</attribute>
<attribute name="text">8</attribute>
</attributes>
</child>
</object>
@ -4418,7 +4432,7 @@ limit
<property name="wrap-mode">word</property>
</object>
<attributes>
<attribute name="text">8</attribute>
<attribute name="text">9</attribute>
</attributes>
</child>
</object>

@ -434,3 +434,5 @@ msgstr ""
msgid "Project name mandatory field"
msgstr ""
msgid "Project"
msgstr ""

@ -443,4 +443,7 @@ msgid "Project name mandatory field"
msgstr "Имя проекта обязательное поле"
msgid "To save, you need to select a disk"
msgstr "Для сохранения нужно выбрать диск"
msgstr "Для сохранения нужно выбрать диск"
msgid "Project"
msgstr "Проект"
Loading…
Cancel
Save