Обновил работу с командами

pull/13/head
Igor Belitskiy 2 years ago
parent e07e6e4de2
commit 2be07da34f

@ -1,21 +1,16 @@
#include "load.h"
namespace Lib_Load{
void Load::set_sections(string sections){
this->sections = sections;
}
void Load::set_count_error(int count_error) {
process.set_count_error(count_error);
}
string Load::get_cmd_error() {
return process.get_cmd_error();
}
map<string, string>& Load::get_load_data(std::map <string, string> &map_temp, string str_flag_load) {
string cmd = "";
map<string, string>& Load::get_load_data(std::map <string, string> &map_temp, string cmd) {
string response = "";
string key = "";
string value = "";
cmd = "ubconfig --default --source " + str_flag_load + " get " + this->sections;
response = process.call_all_sections(cmd);
vector<string> vec_str_key_value = Utils::split(response, '\n');
for (const string &param: vec_str_key_value) {
@ -36,4 +31,4 @@ namespace Lib_Load{
return process.get_count_error();
}
}
}

@ -9,7 +9,6 @@ namespace Lib_Load{
string sections;
My_Process::My_Process_call process = My_Process::My_Process_call();
public:
void set_sections(string sections);
int get_count_error();
void set_count_error(int count_error);
string get_cmd_error();

@ -107,93 +107,45 @@ void Save::save(string sections, string str_flag_save) {
}
}
void Save::save_all(string sections, string str_flag_save) {
void Save::save_one_cmd(string cmd1, string cmd_remove, string str_flag_save) {
string key = "";
string value = "";
string cmd_all = "ubconfig --target " + str_flag_save + " set " + sections;
size_t len_start_cmd_all = cmd_all.length();
string str_error = "";
this->flag_no_save = true;
string cmd = "";
string cmd_remove = "";
this->flag_no_save = true;
cmd = cmd1;
string remove = cmd_remove;
for (const auto &key: *vec_param_names) {
if (map_gui->find(key) != map_gui->end()) {
value = (*map_gui)[key];
if (this->check_save(str_flag_save, key)) {
if (value.length() != 0) {
cmd_all += " " + key + "=\"" + value + "\"";
cmd = cmd + key + "=\"" + value + "\" ";
}
else if (value.length() == 0) {
cmd = "ubconfig --target " + str_flag_save + " remove " + sections + " " + key;
}
else {
cmd = "";
}
if (cmd.length() != 0) {
process.call(cmd, "");
this->flag_no_save = false;
str_error = process.get_cmd_error();
if (str_error.length() != 0) {
this->vec_errors.push_back(str_error);
str_error = "";
}
remove = remove + key + " ";
}
}
}
}
if (len_start_cmd_all != cmd_all.length()) {
process.call(cmd, "");
this->flag_no_save = false;
str_error = process.get_cmd_error();
if (str_error.length() != 0) {
this->vec_errors.push_back(str_error);
str_error = "";
}
if (cmd.length() != cmd1.length()) {
this->template_save(cmd);
}
if (cmd_remove.length() != remove.length()) {
this->template_save(remove);
}
}
void Save::save_all_1(string sections, string str_flag_save) {
string key = "";
string value = "";
string cmd_all = "ubconfig --target " + str_flag_save + " set " + sections;
size_t len_start_cmd_all = cmd_all.length();
void Save::template_save(string cmd) {
string str_error = "";
this->flag_no_save = true;
string cmd = "";
string cmd_remove = "";
for (const auto &iter: (*map_gui)) {
value = iter.second;
key = iter.first;
if (this->check_save(str_flag_save, key)) {
if (value.length() != 0) {
cmd_all += " " + key + "=\"" + value + "\"";
}
else if (value.length() == 0) {
cmd = "ubconfig --target " + str_flag_save + " remove " + sections + " " + key;
}
else {
cmd = "";
}
if (cmd.length() != 0) {
process.call(cmd, "");
this->flag_no_save = false;
str_error = process.get_cmd_error();
if (str_error.length() != 0) {
this->vec_errors.push_back(str_error);
str_error = "";
}
}
}
}
if (len_start_cmd_all != cmd_all.length()) {
process.call(cmd, "");
this->flag_no_save = false;
str_error = process.get_cmd_error();
if (str_error.length() != 0) {
this->vec_errors.push_back(str_error);
str_error = "";
}
process.call(cmd, "");
this->flag_no_save = false;
str_error = process.get_cmd_error();
if (str_error.length() != 0) {
this->vec_errors.push_back(str_error);
str_error = "";
}
}
}

@ -1,33 +1,33 @@
#ifndef SAVE_H
#define SAVE_H
#ifndef MY_SAVE_H
#define MY_SAVE_H
#include "my_process.h"
#include "project_lib.h"
namespace Lib_save {
class Save {
private:
std::map <string, string> *map_global;
std::map <string, string> *map_local;
std::map <string, string> *map_gui;
vector<string> vec_errors;
vector<string>* vec_param_names;
My_Process::My_Process_system process = My_Process::My_Process_system();
bool flag_no_save;
public:
void set_data_global(std::map <string, string> &map_global);
void set_data_local(std::map <string, string> &map_local);
void set_data_gui(std::map <string, string> &map_gui);
bool check_save(string flag_save, string key_name);
bool get_state_save();
int get_count_error();
string get_cmd_error();
void save_all(string sections, string str_flag_save);
void save_all_1(string sections, string str_flag_save);
void set_count_error(int count_error);
void set_vec_params(vector<string>& vec_param_names);
void save(string sections, string str_flag_save) ;
vector<string> get_error();
private:
std::map <string, string> *map_global;
std::map <string, string> *map_local;
std::map <string, string> *map_gui;
vector<string> vec_errors;
vector<string>* vec_param_names;
My_Process::My_Process_system process = My_Process::My_Process_system();
bool flag_no_save;
void template_save(string cmd);
public:
void set_data_global(std::map <string, string> &map_global);
void set_data_local(std::map <string, string> &map_local);
void set_data_gui(std::map <string, string> &map_gui);
bool check_save(string flag_save, string key_name);
bool get_state_save();
void save_one_cmd(string cmd1, string cmd_remove, string str_flag_save);
int get_count_error();
string get_cmd_error();
void set_count_error(int count_error);
void set_vec_params(vector<string>& vec_param_names);
void save(string sections, string str_flag_save) ;
vector<string> get_error();
};
}
#endif

@ -30,7 +30,6 @@ void MainWindow::settings() {
map_device = obj_device.get_parted();
this->filling_device_combo_box_template(groupsDeviceCombo, map_device);
this->filling_device_combo_box_template(usersDeviceCombo, map_device);
this->filling_device_combo_box_template(quotegroupDeviceCombo, map_device);
this->init_tree_view();
this->init_spin_all();
check_limit(quotegroupSizeSoftLimitCheck
@ -47,6 +46,17 @@ void MainWindow::settings() {
,quotegroupFilesHarLimitLabel);
obj_quotas_sys.set_map_gui(map_gui_cfg);
obj_quotas_ubconfig.set_map_gui(map_gui_cfg);
filtersNameFilterCheckbox->set_active(true);
filtersQuotasFilterCheckbox->set_active(true);
filtersSizeFilterCheckbox->set_active(true);
filtersSoftSizeFilterCheckbox->set_active(true);
filtersHardSizeFilterCheckbox->set_active(true);
filtersHardSizeDelayFilterCheckbox->set_active(true);
filtersFilesFilterCheckbox->set_active(true);
filtersSoftFilesFilterCheckbox->set_active(true);
filtersHardFilesFilterCheckbox->set_active(true);
filtersHardFilesDelayFilterCheckbox->set_active(true);
#ifdef WEBKIT_FOUND
one = WEBKIT_WEB_VIEW( webkit_web_view_new() );
three = Glib::wrap(GTK_WIDGET(one));
@ -187,7 +197,6 @@ void MainWindow::lacalization() {
headerAboutTopic->set_label(_(app_name));
headerTopic->set_label(name_app);
UsersTabLabel->set_text(str_users);
generalGroupsSizeLabel->set_text(str_excess_size_delay);
generalGroupsFilesLabel->set_text(str_excess_files_delay);
generalUsersSizeLabel->set_text(str_excess_size_delay);
generalUsersFilesLabel->set_text(str_excess_files_delay);
@ -222,9 +231,6 @@ void MainWindow::lacalization() {
filtersSoftFilesFilterCheckbox->set_label(str_soft_restriction_files);
filtersHardFilesFilterCheckbox->set_label(str_severe_limitation_files);
filtersHardFilesDelayFilterCheckbox->set_label(str_deferring_limit_files);
quotegroupDeviceLabel->set_text(str_device);
quotegroupDiskQuotasLabel->set_text(str_disk_quotas_device);
quotegroupGroupQuotasLabel->set_text(str_group_quotas_device);
quotegroupSizeFrameLabel->set_text(str_size);
quotegroupFilesFrameLabel->set_text(str_files);
quotegroupSizeCurrentlyLabel->set_text(str_currently_using);
@ -233,7 +239,6 @@ void MainWindow::lacalization() {
quoteFilesHardLimitLabel->set_text(str_hard_limit);
quotegroupFilesSoftLimitLabel->set_text(str_soft_limit);
quotegroupFilesCurrentlyLabel->set_text(str_currently_using);
quotegroupFileSystemLabel->set_text(str_file_system);
btnLoadGlob->set_label(load_global);
btnLoadLocal->set_label(load_local);
btnAbout->set_label(str_about_1);
@ -346,7 +351,6 @@ void MainWindow::get_builder() {
builder->get_widget("generalTabLabel", generalTabLabel);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("UsersTabLabel", UsersTabLabel);
builder->get_widget("generalGroupsSizeLabel", generalGroupsSizeLabel);
builder->get_widget("generalGroupsFilesLabel", generalGroupsFilesLabel);
builder->get_widget("generalUsersSizeLabel", generalUsersSizeLabel);
builder->get_widget("generalUsersFilesLabel", generalUsersFilesLabel);
@ -394,10 +398,6 @@ void MainWindow::get_builder() {
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("groupsQuotasTree", groupsQuotasTree);
builder->get_widget("usersQuotasTree", usersQuotasTree);
builder->get_widget("quotegroupDeviceLabel", quotegroupDeviceLabel);
builder->get_widget("quotegroupFileSystemLabel", quotegroupFileSystemLabel);
builder->get_widget("quotegroupDiskQuotasLabel", quotegroupDiskQuotasLabel);
builder->get_widget("quotegroupGroupQuotasLabel", quotegroupGroupQuotasLabel);
builder->get_widget("quotegroupSizeFrameLabel", quotegroupSizeFrameLabel);
builder->get_widget("quotegroupFilesFrameLabel", quotegroupFilesFrameLabel);
builder->get_widget("quotegroupSizeCurrentlyLabel", quotegroupSizeCurrentlyLabel);
@ -431,7 +431,6 @@ void MainWindow::get_builder() {
builder->get_widget("generalUsersFilesHoursSpin", generalUsersFilesHoursSpin);
builder->get_widget("generalUsersSizeMinuteSpin", generalUsersSizeMinuteSpin);
builder->get_widget("generalUsersFilesMinutesSpin", generalUsersFilesMinutesSpin);
builder->get_widget("lblEditWndFsys", lblEditWndFsys);
builder->get_widget("quotegroupSizeSoftLimitCheck", quotegroupSizeSoftLimitCheck);
builder->get_widget("quotegroupSizeHardLimitCheck", quotegroupSizeHardLimitCheck);
builder->get_widget("quotegroupFilesSoftLimitCheck", quotegroupFilesSoftLimitCheck);
@ -445,7 +444,6 @@ void MainWindow::get_builder() {
builder->get_widget("quotegroupFilesHardLimitSpin", quotegroupFilesHardLimitSpin);
builder->get_widget("quotegroupSaveButton", quotegroupSaveButton);
builder->get_widget("quotegroupCancelButton", quotegroupCancelButton);
builder->get_widget("quotegroupDeviceCombo", quotegroupDeviceCombo);
builder->get_widget("GeneralQuotasTree", GeneralQuotasTree);
builder->get_widget("ProjectQuotasTree", ProjectQuotasTree);
builder->get_widget("ProjectTabLabel", ProjectTabLabel);
@ -471,6 +469,9 @@ void MainWindow::get_builder() {
builder->get_widget("btnAddGroups", btnAddGroups);
builder->get_widget("btnAddUsers", btnAddUsers);
builder->get_widget("btnAddProject", btnAddProject);
builder->get_widget("btnEditProject", btnEditProject);
builder->get_widget("btnEditUsers", btnEditUsers);
builder->get_widget("btnEditGroups", btnEditGroups);
}
@ -490,7 +491,6 @@ void MainWindow::event() {
btnSaveGlob->signal_activate().connect([&]() {this->wrapper_save_global_cfg();});
btnSaveLocal->signal_activate().connect([&]() {this->wrapper_save_system_cfg();});
chbMangSystemFile->signal_toggled().connect([&]() {this->mode_switch_quota();});
quotegroupDeviceCombo->signal_changed().connect([&]() {entry_combo_box_temp(quotegroupDeviceCombo, lblEditWndFsys);});
quotegroupSizeSoftLimitCheck->signal_toggled().connect([&]() {
check_limit(quotegroupSizeSoftLimitCheck
,quotegroupSizeSoftLimitSpin
@ -531,8 +531,26 @@ void MainWindow::event() {
btnAddGroups->signal_clicked().connect(
sigc::bind<Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>, struct tv_g_u_p> (sigc::mem_fun( *this,
&MainWindow::set_add_tv_g_u_p), row, list_store_groups, obj_tv_g_u_p));
filtersNameFilterCheckbox->signal_toggled().connect(sigc::mem_fun( *this,
&MainWindow::del_columns));
// btnEditProject->signal_clicked().connect();
// btnEditUsers->signal_clicked().connect();
// btnEditGroups->signal_clicked().connect();
}
/*
void MainWindow::set_tree_view(Gtk::TreeView *tree_view, Glib::RefPtr<Gtk::ListStore>* list_store, bool& flag_validate_del) {
if (flag_validate_del && (*list_store)->iter_is_valid(*(iter))) {
Gtk::TreeModel::Row row = *(*iter);
if (row) {
row[m_columns.name] =
}
}
}
*/
void MainWindow::del_columns() {
//std::vector<const TreeViewColumn*> vec_columns = tree_view_select->get_columns();
}
void MainWindow::remove_template(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate_del) {
@ -576,76 +594,6 @@ void MainWindow::mode_switch_quota() {
}
}
void MainWindow::wrapper_settings_quotas_temp(string save_user_or_group) {
struct partition_cmd _struct_partition_cmd = this->wrapper_settings_quotas();
string device = _struct_partition_cmd.device;
string cmd = _struct_partition_cmd.cmd;
string type_quotas = save_user_or_group;
string user = "";
struct struct_quotas _struct_quota;
_struct_quota.device = device;
_struct_quota.cmd = cmd;
_struct_quota.type_quotas = type_quotas;
_struct_quota.name = user;
obj_quotas_ubconfig.format_cmd_quotas(_struct_quota);
}
void MainWindow::save_quotegroupSaveButton() {
if (sys_or_ubconfig == "ubconfig") {
if (save_user_or_group == "usrquota") {
this->wrapper_settings_quotas_temp(save_user_or_group);
}
else {
this->wrapper_settings_quotas_temp(save_user_or_group);
}
}
else {
if (save_user_or_group == "usrquota") {
}
else {
}
}
}
struct partition_cmd MainWindow::wrapper_settings_quotas() {
string str_parted = quotegroupDeviceCombo->get_active_text();
string value = "";
if (quotegroupSizeSoftLimitCheck->get_active()) {
value = Utils::format_str_size(quotegroupSizeSoftLimitSpin->get_value(), quotegroupSizeSoftLimitCombo->get_active_row_number());
value += ":";
}
else {
value += "0:";
}
if (quotegroupSizeHardLimitCheck->get_active()) {
value += Utils::format_str_size(quotegroupSizeHardLimitSpin->get_value(), quotegroupSizeHardLimitCombo->get_active_row_number());
value += ":";
}
else {
value += "0:";
}
if (quotegroupFilesSoftLimitCheck->get_active()) {
value += to_string(quotegroupFilesSoftLimitSpin->get_value());
value += ":";
}
else {
value += "0:";
}
if (quotegroupFilesHardLimitCheck->get_active()) {
value += to_string(quotegroupFilesHardLimitSpin->get_value());
value += ":";
}
else {
value += "0:";
}
struct partition_cmd _struct_partition_cmd;
_struct_partition_cmd.device = str_parted;
_struct_partition_cmd.cmd = value;
return _struct_partition_cmd;
}
void MainWindow::filters_show() {
FiltersWindow->show_all();
}
@ -707,13 +655,13 @@ void MainWindow::wrapper_save_all_cfg() {
}
void MainWindow::load_global_cfg() {
this->load_template(&map_global_cfg, "global");
this->load_template(&map_global_cfg, global_load);
info_warning_error(1);
map_gui_cfg = map_global_cfg;
}
void MainWindow::load_system_cfg() {
this->load_template(&map_system_cfg, "system");
this->load_template(&map_system_cfg, system_load);
info_warning_error(0);
map_gui_cfg = map_system_cfg;
}
@ -802,13 +750,15 @@ void MainWindow::init_work_tv_g_u_p() {
this->view_add_columns(*usersQuotasTree);
}
void MainWindow::load_template(map_str_str* map_temp, string str_load) {
void MainWindow::load_template(map_str_str* map_temp, string cmd) {
this->init_work_tv_g_u_p();
this->init_dict(str_load);
string sections;
sections = "security";
obj_load.set_sections(sections);
*map_temp = obj_load.get_load_data(*map_temp, str_load);
if (cmd.find("system") != string::npos) {
this->init_dict("system");
}
else {
this->init_dict("global");
}
*map_temp = obj_load.get_load_data(*map_temp, cmd);
}
void MainWindow::remove_line_template(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter, Gtk::TreeModel::iterator& iter_del, bool& flag_del) {

@ -139,6 +139,12 @@
#define path_resources "/usr/share/ubl-settings-diskquota"
#define path_img_head_background "/usr/share/ubl-settings-diskquota/images/logo-background.png"
#define no_recognized _("Argument not recognized\n")
#define global_load "ubconfig --default --source global get boot"
#define system_load "ubconfig --default --source system get boot"
#define global_save "ubconfig --target global set boot "
#define system_save "ubconfig --target system set boot "
#define global_remove "ubconfig --target global --noexecute set/remove boot "
#define system_remove "ubconfig --target system --noexecute set/remove boot "
using namespace std;
@ -214,7 +220,6 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Label *generalTabLabel;
Gtk::Label *UsersTabLabel;
Gtk::Label *GroupsTabLabel;
Gtk::Label *generalGroupsSizeLabel;
Gtk::Label *generalGroupsFilesLabel;
Gtk::Label *generalUsersSizeLabel;
Gtk::Label *generalUsersFilesLabel;
@ -264,9 +269,6 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::TreeView *usersQuotasTree;
Gtk::TreeView *ProjectQuotasTree;
Gtk::TreeView *GeneralQuotasTree;
Gtk::Label *quotegroupDeviceLabel;
Gtk::Label *quotegroupFileSystemLabel;
Gtk::Label *quotegroupDiskQuotasLabel;
Gtk::Label *quotegroupGroupQuotasLabel;
Gtk::Label *quotegroupSizeFrameLabel;
Gtk::Label *quotegroupSizeCurrentlyLabel;
@ -301,7 +303,6 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::SpinButton *generalUsersFilesHoursSpin;
Gtk::SpinButton *generalUsersSizeMinuteSpin;
Gtk::SpinButton *generalUsersFilesMinutesSpin;
Gtk::Label *lblEditWndFsys;
Gtk::CheckButton *quotegroupSizeSoftLimitCheck;
Gtk::CheckButton *quotegroupSizeHardLimitCheck;
Gtk::CheckButton *quotegroupFilesSoftLimitCheck;
@ -318,7 +319,6 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Button *btnFilterGroups;
Gtk::Button *btnFilterUsers;
Gtk::Button *btnFilterProject;
Gtk::ComboBoxText *quotegroupDeviceCombo;
Gtk::Label *lblHeadeWndWeb;
Gtk::Label *lblwebHeaderName;
@ -335,6 +335,9 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Button* btnAddGroups;
Gtk::Button* btnAddUsers;
Gtk::Button* btnAddProject;
Gtk::Button* btnEditProject;
Gtk::Button* btnEditUsers;
Gtk::Button* btnEditGroups;
#ifdef WEBKIT_FOUND
Gtk::Window *wndWeb;
Gtk::Widget *three;
@ -392,8 +395,9 @@ class MainWindow : public Gtk::ApplicationWindow {
void init_tree_view();
void template_open_browser();
void open_browser();
void del_columns();
void set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store, struct tv_g_u_p obj_tv_g_u_p);
void load_template(map_str_str* map_temp, string str_load);
void load_template(map_str_str* map_temp, string cmd);
void info_warning_error(int mess);
void off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type);
void wrapper_save_system_cfg();
@ -401,6 +405,7 @@ class MainWindow : public Gtk::ApplicationWindow {
void wrapper_save_all_cfg();
void init_dict(string flag_load);
void set_data_cfg();
void set_tree_view(Gtk::TreeView *tree_view, Glib::RefPtr<Gtk::ListStore>* list_store, bool& flag_validate_del);
void mode_switch_quota();
void save_quotegroupSaveButton();
void wrapper_settings_quotas_temp(string save_user_or_group);

@ -2991,40 +2991,28 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="quotegroupDeviceLabel">
<object class="GtkLabel" id="lblSetDevice">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">Device:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="quotegroupDeviceCombo">
<object class="GtkLabel" id="lablSetNameDevice">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">True</property>
@ -3032,81 +3020,78 @@
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkLabel" id="quotegroupFileSystemLabel">
<object class="GtkLabel" id="lblQuotasStatus">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">File system:</property>
<property name="label" translatable="yes">Quota use status:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="lblEditWndFsys">
<object class="GtkLabel" id="lblSetQuotasStatus">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="quotegroupDiskQuotasLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">Disk quotas for this device:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="quotegroupGroupQuotasLabel">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="label" translatable="yes">Group quotas for this device:</property>
<property name="xalign">0</property>
<child>
<object class="GtkLabel" id="lblSetUGP">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UserGropProject:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="lblSetNameUGP">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>

Loading…
Cancel
Save