Добавил функции получения пользователей и групп

pull/13/head
Igor Belitskiy 2 years ago
parent 9e87bd429e
commit f5f4809531

File diff suppressed because it is too large Load Diff

@ -47,16 +47,16 @@ void MainWindow::settings() {
,quotegroupFilesHarLimitLabel); ,quotegroupFilesHarLimitLabel);
obj_quotas_sys.set_map_gui(map_gui_cfg); obj_quotas_sys.set_map_gui(map_gui_cfg);
obj_quotas_ubconfig.set_map_gui(map_gui_cfg); obj_quotas_ubconfig.set_map_gui(map_gui_cfg);
filtersNameFilterCheckbox->set_active(true); chbFilterName->set_active(true);
filtersQuotasFilterCheckbox->set_active(true); chbFilterQuotas->set_active(true);
filtersSizeFilterCheckbox->set_active(true); chbFilterSize->set_active(true);
filtersSoftSizeFilterCheckbox->set_active(true); chbFilterSoftLimitSize->set_active(true);
filtersHardSizeFilterCheckbox->set_active(true); chbFilterHardLimitSize->set_active(true);
filtersHardSizeDelayFilterCheckbox->set_active(true); chbFilterHardLimitSizeDelay->set_active(true);
filtersFilesFilterCheckbox->set_active(true); chbFilterFiles->set_active(true);
filtersSoftFilesFilterCheckbox->set_active(true); chbFilterSoftLimitFile->set_active(true);
filtersHardFilesFilterCheckbox->set_active(true); chbFilterHardLimitFile->set_active(true);
filtersHardFilesDelayFilterCheckbox->set_active(true); chbFilterHardLimitFileDelay->set_active(true);
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); one = WEBKIT_WEB_VIEW( webkit_web_view_new() );
@ -228,16 +228,16 @@ void MainWindow::lacalization() {
groupsDeviceLabel->set_label(str_device); groupsDeviceLabel->set_label(str_device);
usersDeviceLabel->set_label(str_device); usersDeviceLabel->set_label(str_device);
headLabel->set_label(str_lb_head); headLabel->set_label(str_lb_head);
filtersNameFilterCheckbox->set_label(str_name); chbFilterName->set_label(str_name);
filtersQuotasFilterCheckbox->set_label(str_quotas); chbFilterQuotas->set_label(str_quotas);
filtersSizeFilterCheckbox->set_label(str_size); chbFilterSize->set_label(str_size);
filtersSoftSizeFilterCheckbox->set_label(str_soft_limit_size); chbFilterSoftLimitSize->set_label(str_soft_limit_size);
filtersHardSizeFilterCheckbox->set_label(str_hard_limit_size); chbFilterHardLimitSize->set_label(str_hard_limit_size);
filtersHardSizeDelayFilterCheckbox->set_label(str_deferring_hard_limit_size); chbFilterHardLimitSizeDelay->set_label(str_deferring_hard_limit_size);
filtersFilesFilterCheckbox->set_label(str_files); chbFilterFiles->set_label(str_files);
filtersSoftFilesFilterCheckbox->set_label(str_soft_restriction_files); chbFilterSoftLimitFile->set_label(str_soft_restriction_files);
filtersHardFilesFilterCheckbox->set_label(str_severe_limitation_files); chbFilterHardLimitFile->set_label(str_severe_limitation_files);
filtersHardFilesDelayFilterCheckbox->set_label(str_deferring_limit_files); chbFilterHardLimitFileDelay->set_label(str_deferring_limit_files);
quotegroupSizeFrameLabel->set_text(str_size); quotegroupSizeFrameLabel->set_text(str_size);
quotegroupFilesFrameLabel->set_text(str_files); quotegroupFilesFrameLabel->set_text(str_files);
quotegroupSizeCurrentlyLabel->set_text(str_currently_using); quotegroupSizeCurrentlyLabel->set_text(str_currently_using);
@ -253,7 +253,7 @@ void MainWindow::lacalization() {
btnSaveLocalGlob->set_label(save_all); btnSaveLocalGlob->set_label(save_all);
btnSaveGlob->set_label(save_global); btnSaveGlob->set_label(save_global);
btnSaveLocal->set_label(save_local); btnSaveLocal->set_label(save_local);
lblHeadFiltersWindow->set_label(str_filters); lblFiltersHead->set_label(str_filters);
ProjectTabLabel->set_label(str_projects); ProjectTabLabel->set_label(str_projects);
usersProjectLabel->set_text(str_device); usersProjectLabel->set_text(str_device);
lblhelpHeader->set_text(read_documentation_web); lblhelpHeader->set_text(read_documentation_web);
@ -266,7 +266,6 @@ void MainWindow::lacalization() {
lblSetDevice->set_text(str_device); lblSetDevice->set_text(str_device);
lblQuotasStatus->set_text(str_quota_status); lblQuotasStatus->set_text(str_quota_status);
lblSetUGP->set_text(""); lblSetUGP->set_text("");
lblQuotasStatus->set_text(_("Quota use status:"));
this->fill_in_pow_memory(quotegroupSizeSoftLimitCombo); this->fill_in_pow_memory(quotegroupSizeSoftLimitCombo);
this->fill_in_pow_memory(quotegroupSizeHardLimitCombo); this->fill_in_pow_memory(quotegroupSizeHardLimitCombo);
@ -390,17 +389,17 @@ void MainWindow::get_builder() {
builder->get_widget("groupsDeviceLabel", groupsDeviceLabel); builder->get_widget("groupsDeviceLabel", groupsDeviceLabel);
builder->get_widget("usersDeviceLabel", usersDeviceLabel); builder->get_widget("usersDeviceLabel", usersDeviceLabel);
builder->get_widget("headLabel", headLabel); builder->get_widget("headLabel", headLabel);
builder->get_widget("FiltersWindow", FiltersWindow); builder->get_widget("wndFilters", wndFilters);
builder->get_widget("filtersNameFilterCheckbox", filtersNameFilterCheckbox); builder->get_widget("chbFilterName", chbFilterName);
builder->get_widget("filtersQuotasFilterCheckbox", filtersQuotasFilterCheckbox); builder->get_widget("chbFilterQuotas", chbFilterQuotas);
builder->get_widget("filtersSizeFilterCheckbox", filtersSizeFilterCheckbox); builder->get_widget("chbFilterSize", chbFilterSize);
builder->get_widget("filtersSoftSizeFilterCheckbox", filtersSoftSizeFilterCheckbox); builder->get_widget("chbFilterSoftLimitSize", chbFilterSoftLimitSize);
builder->get_widget("filtersHardSizeFilterCheckbox", filtersHardSizeFilterCheckbox); builder->get_widget("chbFilterHardLimitSize", chbFilterHardLimitSize);
builder->get_widget("filtersHardSizeDelayFilterCheckbox", filtersHardSizeDelayFilterCheckbox); builder->get_widget("chbFilterHardLimitSizeDelay", chbFilterHardLimitSizeDelay);
builder->get_widget("filtersFilesFilterCheckbox", filtersFilesFilterCheckbox); builder->get_widget("chbFilterFiles", chbFilterFiles);
builder->get_widget("filtersSoftFilesFilterCheckbox", filtersSoftFilesFilterCheckbox); builder->get_widget("chbFilterSoftLimitFile", chbFilterSoftLimitFile);
builder->get_widget("filtersHardFilesFilterCheckbox", filtersHardFilesFilterCheckbox); builder->get_widget("chbFilterHardLimitFile", chbFilterHardLimitFile);
builder->get_widget("filtersHardFilesDelayFilterCheckbox", filtersHardFilesDelayFilterCheckbox); builder->get_widget("chbFilterHardLimitFileDelay", chbFilterHardLimitFileDelay);
builder->get_widget("btnLoadGlob", btnLoadGlob); builder->get_widget("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnLoadLocal", btnLoadLocal); builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnSynopsis", btnSynopsis); builder->get_widget("btnSynopsis", btnSynopsis);
@ -423,7 +422,7 @@ void MainWindow::get_builder() {
builder->get_widget("QuotasEditWindow", QuotasEditWindow); builder->get_widget("QuotasEditWindow", QuotasEditWindow);
builder->get_widget("headerAboutTopic", headerAboutTopic); builder->get_widget("headerAboutTopic", headerAboutTopic);
builder->get_widget("lblHeadQuotasEditWindow", lblHeadQuotasEditWindow); builder->get_widget("lblHeadQuotasEditWindow", lblHeadQuotasEditWindow);
builder->get_widget("lblHeadFiltersWindow", lblHeadFiltersWindow); builder->get_widget("lblFiltersHead", lblFiltersHead);
builder->get_widget("usersDeviceCombo", usersDeviceCombo); builder->get_widget("usersDeviceCombo", usersDeviceCombo);
builder->get_widget("GroupsTabLabel", GroupsTabLabel); builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("generalTabLabel", generalTabLabel); builder->get_widget("generalTabLabel", generalTabLabel);
@ -490,7 +489,7 @@ void MainWindow::get_builder() {
builder->get_widget("lblSetUGP", lblSetUGP); builder->get_widget("lblSetUGP", lblSetUGP);
builder->get_widget("lblSetNameDevice", lblSetNameDevice); builder->get_widget("lblSetNameDevice", lblSetNameDevice);
builder->get_widget("lblSetQuotasStatus", lblSetQuotasStatus); builder->get_widget("lblSetQuotasStatus", lblSetQuotasStatus);
builder->get_widget("lblSetNameUGP", lblSetNameUGP); builder->get_widget("cmbSetNameUGP", cmbSetNameUGP);
builder->get_widget("usersProjectCombo", usersProjectCombo); builder->get_widget("usersProjectCombo", usersProjectCombo);
} }
@ -551,7 +550,7 @@ void MainWindow::event() {
sigc::bind<Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>, struct tv_g_u_p> (sigc::mem_fun( *this, 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)); &MainWindow::set_add_tv_g_u_p), row, list_store_groups, obj_tv_g_u_p));
filtersNameFilterCheckbox->signal_toggled().connect(sigc::mem_fun( *this, chbFilterName->signal_toggled().connect(sigc::mem_fun( *this,
&MainWindow::del_columns)); &MainWindow::del_columns));
btnEditGroups->signal_clicked().connect( btnEditGroups->signal_clicked().connect(
sigc::bind<Glib::RefPtr<Gtk::ListStore>*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this, sigc::bind<Glib::RefPtr<Gtk::ListStore>*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this,
@ -571,7 +570,7 @@ void MainWindow::set_change_gui(Glib::RefPtr<Gtk::ListStore>* list_store, const
if(row) { if(row) {
string name = row[m_columns.name] + ""; string name = row[m_columns.name] + "";
lblSetNameDevice->set_text(combo_box->get_active_text()); lblSetNameDevice->set_text(combo_box->get_active_text());
lblSetNameUGP->set_text(name); cmbSetNameUGP->set_active_text(name);
QuotasEditWindow->show(); QuotasEditWindow->show();
} }
} }
@ -579,17 +578,17 @@ void MainWindow::set_change_gui(Glib::RefPtr<Gtk::ListStore>* list_store, const
} }
void MainWindow::edit_tree_view_U(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) { void MainWindow::edit_tree_view_U(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) {
lblSetUGP->set_text(str_users); lblSetUGP->set_text(str_user_1);
set_change_gui(list_store, iter, flag_validate, usersDeviceCombo); set_change_gui(list_store, iter, flag_validate, usersDeviceCombo);
} }
void MainWindow::edit_tree_view_G(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) { void MainWindow::edit_tree_view_G(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) {
lblSetUGP->set_text(str_groups); lblSetUGP->set_text(str_group_1);
set_change_gui(list_store, iter, flag_validate, groupsDeviceCombo); set_change_gui(list_store, iter, flag_validate, groupsDeviceCombo);
} }
void MainWindow::edit_tree_view_P(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) { void MainWindow::edit_tree_view_P(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) {
lblSetUGP->set_text(str_projects); lblSetUGP->set_text(str_project_1);
set_change_gui(list_store, iter, flag_validate, usersProjectCombo); set_change_gui(list_store, iter, flag_validate, usersProjectCombo);
} }
void MainWindow::del_columns() { void MainWindow::del_columns() {
@ -638,7 +637,7 @@ void MainWindow::mode_switch_quota() {
} }
void MainWindow::filters_show() { void MainWindow::filters_show() {
FiltersWindow->show_all(); wndFilters->show_all();
} }
void MainWindow::set_data_cfg() { void MainWindow::set_data_cfg() {

@ -80,7 +80,6 @@
#define str_currently_using _("Currently using:") #define str_currently_using _("Currently using:")
#define str_currently_using_space _("Currently using: ") #define str_currently_using_space _("Currently using: ")
#define str_filters _("Filters") #define str_filters _("Filters")
#define str_projects _("Projects")
#define str_quotas _("Quotas") #define str_quotas _("Quotas")
#define str_help_h _("GTK settings disk quota for UBLinux\n" \ #define str_help_h _("GTK settings disk quota for UBLinux\n" \
"\n" \ "\n" \
@ -96,6 +95,10 @@
#define str_version _("ubl-settings-diskquota version: ") #define str_version _("ubl-settings-diskquota version: ")
#define str_user _("User") #define str_user _("User")
#define str_group _("Group") #define str_group _("Group")
#define str_projects _("Projects")
#define str_user_1 _("User:")
#define str_group_1 _("Group:")
#define str_project_1 _("Projects:")
#define str_device_project _("Device\nProject") #define str_device_project _("Device\nProject")
#define str_quota _("Quota type") #define str_quota _("Quota type")
#define str_status _("Status") #define str_status _("Status")
@ -257,18 +260,18 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Label *groupsDeviceLabel; Gtk::Label *groupsDeviceLabel;
Gtk::Label *usersDeviceLabel; Gtk::Label *usersDeviceLabel;
Gtk::Label *headLabel; Gtk::Label *headLabel;
Gtk::Window *FiltersWindow; Gtk::Window *wndFilters;
Gtk::CheckButton *filtersNameFilterCheckbox; Gtk::CheckButton *chbFilterName;
Gtk::CheckButton *filtersQuotasFilterCheckbox; Gtk::CheckButton *chbFilterQuotas;
Gtk::CheckButton *filtersSizeFilterCheckbox; Gtk::CheckButton *chbFilterSize;
Gtk::CheckButton *filtersSoftSizeFilterCheckbox; Gtk::CheckButton *chbFilterSoftLimitSize;
Gtk::CheckButton *filtersHardSizeFilterCheckbox; Gtk::CheckButton *chbFilterHardLimitSize;
Gtk::CheckButton *filtersHardSizeDelayFilterCheckbox; Gtk::CheckButton *chbFilterHardLimitSizeDelay;
Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox; Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox;
Gtk::CheckButton *filtersFilesFilterCheckbox; Gtk::CheckButton *chbFilterFiles;
Gtk::CheckButton *filtersSoftFilesFilterCheckbox; Gtk::CheckButton *chbFilterSoftLimitFile;
Gtk::CheckButton *filtersHardFilesFilterCheckbox; Gtk::CheckButton *chbFilterHardLimitFile;
Gtk::CheckButton *filtersHardFilesDelayFilterCheckbox; Gtk::CheckButton *chbFilterHardLimitFileDelay;
Gtk::TreeView *groupsQuotasTree; Gtk::TreeView *groupsQuotasTree;
Gtk::TreeView *usersQuotasTree; Gtk::TreeView *usersQuotasTree;
Gtk::TreeView *ProjectQuotasTree; Gtk::TreeView *ProjectQuotasTree;
@ -286,7 +289,7 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Window *QuotasEditWindow; Gtk::Window *QuotasEditWindow;
Gtk::Label *headerAboutTopic; Gtk::Label *headerAboutTopic;
Gtk::Label *lblHeadQuotasEditWindow; Gtk::Label *lblHeadQuotasEditWindow;
Gtk::Label *lblHeadFiltersWindow; Gtk::Label *lblFiltersHead;
Gtk::ComboBoxText *usersDeviceCombo; Gtk::ComboBoxText *usersDeviceCombo;
Gtk::ComboBoxText *groupsDeviceCombo; Gtk::ComboBoxText *groupsDeviceCombo;
Gtk::ComboBoxText *generalDeviceCombo; Gtk::ComboBoxText *generalDeviceCombo;
@ -348,7 +351,7 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Label* lblSetUGP; Gtk::Label* lblSetUGP;
Gtk::Label* lblSetNameDevice; Gtk::Label* lblSetNameDevice;
Gtk::Label* lblSetQuotasStatus; Gtk::Label* lblSetQuotasStatus;
Gtk::Label* lblSetNameUGP; Gtk::ComboBoxText* cmbSetNameUGP;
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
Gtk::Window *wndWeb; Gtk::Window *wndWeb;
Gtk::Widget *three; Gtk::Widget *three;

@ -146,4 +146,83 @@ string file_read(string filename) {
} }
return buffer; return buffer;
} }
unsigned short read_uid_min_max(string filename, string search) {
std::string line;
int uid = 0;
string remove_tab = "\t";
string remove_space = " ";
std::ifstream in(filename); // окрываем файл для чтения
if (in.is_open()){
while (getline(in, line)){
try{
if (line.find(search) != string::npos && (line.find("SYS_"+search) == string::npos)) {
Utils::str_remove(line, search);
Utils::str_remove(line, remove_space);
Utils::str_remove(line, remove_tab);
uid = atoi(line.c_str());
}
}
catch (int x) {
if (search == "UID_MIN"){
uid = 1000;
}
else{
uid = 65534;
}
}
}
}
else{
if (search == "UID_MIN") {
uid = 1000;
}
else{
uid = 65534;
}
}
in.close();
return uid;
}
vector<string> pars_users() {
unsigned short uid_min = Utils::read_uid_min_max(file_source_login_min_max, "UID_MIN");
unsigned short uid_max = Utils::read_uid_min_max(file_source_login_min_max, "UID_MAX");
vector<string> vec_user;
while (true) {
errno = 0;
passwd* entry = getpwent();
if (!entry) {
if (errno) {
break;
}
break;
}
if ((entry->pw_uid >= uid_min && entry->pw_uid < uid_max) || entry->pw_uid == 0) {
vec_user.push_back(entry->pw_name);
}
}
endpwent();
return vec_user;
}
vector<string> pars_group() {
vector<string> vec_group;
while (true) {
errno = 0; // so we can distinguish errors from no more entries
passwd* entry = getpwent();
if (!entry) {
if (errno) {
std::cerr << "Error reading password database\n";
break;
}
break;
}
vec_group.push_back(entry->pw_name);
}
endpwent();
return vec_group;
}
} }

@ -5,6 +5,7 @@
using namespace std; using namespace std;
namespace Utils { namespace Utils {
#define file_source_login_min_max "/etc/login.defs"
template<typename Type> template<typename Type>
struct Result{ struct Result{
Type response; Type response;
@ -26,5 +27,8 @@ std::vector<std::string> split(std::string text, char delim);
vector <string> pars_users(); vector <string> pars_users();
int synopsis_show(string str_link); int synopsis_show(string str_link);
string file_read(string filename); string file_read(string filename);
unsigned short read_uid_min_max(string filename, string search);
vector<string> pars_users();
vector<string> pars_group();
} }
#endif #endif

@ -8,247 +8,6 @@
<column type="gchararray"/> <column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkWindow" id="FiltersWindow">
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="resizable">False</property>
<child>
<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="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="filtersNameFilterCheckbox">
<property name="label" translatable="yes">Name</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersQuotasFilterCheckbox">
<property name="label" translatable="yes">Quotas</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersSizeFilterCheckbox">
<property name="label" translatable="yes">Size</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersSoftSizeFilterCheckbox">
<property name="label" translatable="yes">Soft limit (size)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardSizeFilterCheckbox">
<property name="label" translatable="yes">Hard limit (size)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="margin-top">5</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="filtersCancelButton">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="filtersSaveButton">
<property name="label">gtk-save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardSizeDelayFilterCheckbox">
<property name="label" translatable="yes">Hard limit (size) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersFilesFilterCheckbox">
<property name="label" translatable="yes">Files</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersSoftFilesFilterCheckbox">
<property name="label" translatable="yes">Soft limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardFilesFilterCheckbox">
<property name="label" translatable="yes">Hard limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="filtersHardFilesDelayFilterCheckbox">
<property name="label" translatable="yes">Hard limit (files) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">10</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="lblHeadFiltersWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System quotas</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-diskquota</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
</object>
<object class="GtkListStore" id="SizeStore"> <object class="GtkListStore" id="SizeStore">
<columns> <columns>
<!-- column-name gchararray1 --> <!-- column-name gchararray1 -->
@ -3083,15 +2842,12 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="lblSetNameUGP"> <object class="GtkComboBoxText" id="cmbSetNameUGP">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-start">5</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
@ -3630,6 +3386,247 @@
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
<object class="GtkWindow" id="wndFilters">
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="resizable">False</property>
<child>
<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="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="chbFilterName">
<property name="label" translatable="yes">Name</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="margin-top">5</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterQuotas">
<property name="label" translatable="yes">Quotas</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterSize">
<property name="label" translatable="yes">Size</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterSoftLimitSize">
<property name="label" translatable="yes">Soft limit (size)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterHardLimitSize">
<property name="label" translatable="yes">Hard limit (size)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="margin-top">5</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="btnFiltersSave">
<property name="label">gtk-save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterHardLimitSizeDelay">
<property name="label" translatable="yes">Hard limit (size) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterFiles">
<property name="label" translatable="yes">Files</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterSoftLimitFile">
<property name="label" translatable="yes">Soft limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterHardLimitFile">
<property name="label" translatable="yes">Hard limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterHardLimitFileDelay">
<property name="label" translatable="yes">Hard limit (files) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="halign">start</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">10</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="lblFiltersHead">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System quotas</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-diskquota</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
</object>
<object class="GtkApplicationWindow" id="wndShowWeb"> <object class="GtkApplicationWindow" id="wndShowWeb">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>

@ -17,6 +17,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
msgid "User:"
msgstr ""
msgid "Group:"
msgstr ""
msgid "Projects:"
msgstr ""
msgid "Kb" msgid "Kb"
msgstr "" msgstr ""

@ -30,7 +30,7 @@ msgid "Tb"
msgstr "Тб" msgstr "Тб"
msgid "Quota use status:" msgid "Quota use status:"
msgstr "Статус использования квот" msgstr "Статус использования квот:"
msgid "Would you like to read documentation in the Web?" msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?" msgstr "Вы хотите прочитать справку в Сети?"
@ -163,6 +163,15 @@ msgstr "Пользователь"
msgid "Group" msgid "Group"
msgstr "Группа" msgstr "Группа"
msgid "User:"
msgstr "Пользователь:"
msgid "Group:"
msgstr "Группа:"
msgid "Projects:"
msgstr "Проект:"
msgid "Quota type" msgid "Quota type"
msgstr "Тип квот" msgstr "Тип квот"

Loading…
Cancel
Save