diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c
index dcea2da..70a95a8 100644
--- a/source/ubl-settings-resourcequota.c
+++ b/source/ubl-settings-resourcequota.c
@@ -275,20 +275,19 @@ void main_cbx_2_event() {
void tree_view_select(GtkWidget *self, main_window *widgets) {
GtkTreeIter iter;
- char *name;
- GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
+ GtkTreeModel *model = GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->treeViewMain));
- if (gtk_tree_selection_get_selected(selection, &list_s, &iter)){
- int installed=0;
- gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->treeViewMain)),&iter,0,&installed,-1);
- if (installed==1){
- gtk_widget_set_sensitive(widgets->btnAdd,0);
- gtk_widget_set_sensitive(widgets->btnDelQuotas,1);
- } else {
- gtk_widget_set_sensitive(widgets->btnAdd,1);
- gtk_widget_set_sensitive(widgets->btnDelQuotas,0);
- }
+ if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
+ gtk_widget_set_sensitive(widgets->btnAdd,1);
+ gtk_widget_set_sensitive(widgets->btnDelQuotas,1);
+ gtk_widget_set_sensitive(widgets->btnEdit,1);
+ }
+ else {
+ gtk_widget_set_sensitive(widgets->btnAdd,1);
+ gtk_widget_set_sensitive(widgets->btnDelQuotas,0);
+ gtk_widget_set_sensitive(widgets->btnEdit,0);
}
+
}
void tree_view_add(int index) {
@@ -341,7 +340,7 @@ int tree_view_edit() {
5,main_config.cpu_limit[index],
6,main_config.i_o_limit_read[index],
7,main_config.i_o_limit_write[index],-1);
- return 0;
+ return 1;
}
else {
return 0;
@@ -386,7 +385,7 @@ void main_event(main_window *widgets) {
g_signal_connect(G_OBJECT(widgets->cbtMainInfo),"changed",G_CALLBACK(main_update_information), NULL);
g_signal_connect(G_OBJECT(widgets->cbtMainInfoLevel2),"changed",G_CALLBACK(main_cbx_2_event), NULL);
g_signal_connect(G_OBJECT(widgets->btnDelQuotas), "clicked", G_CALLBACK(tree_view_del_line), widgets);
- //g_signal_connect(G_OBJECT(widgets->treeViewMain), "cursor-changed", G_CALLBACK(tree_view_select), widgets);
+ g_signal_connect(G_OBJECT(widgets->treeViewMain), "cursor-changed", G_CALLBACK(tree_view_select), widgets);
/*
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(),NULL);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(),NULL);
@@ -438,10 +437,8 @@ void tree_view_del_line() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
index = atoi(str_iter);
- printf("%d\n",main_config.size_tree_view);
main_config.type_quota = yon_char_parsed_shrink(main_config.type_quota, &main_config.size_tree_view,index);
main_config.size_tree_view++;
- printf("%d\n",main_config.size_tree_view);
main_config.quota_volume = yon_char_parsed_shrink(main_config.quota_volume, &main_config.size_tree_view,index);
main_config.size_tree_view++;
main_config.soft_raw_limit = yon_char_parsed_shrink(main_config.soft_raw_limit, &main_config.size_tree_view,index);
@@ -467,7 +464,6 @@ void tree_view_del_line() {
}
void main_fill_tree_view_after_remove() {
- printf("%d\n",main_config.size_tree_view);
for (int index= 0; index < main_config.size_tree_view; index++) {
GtkTreeIter iter;
gtk_list_store_append(main_config.list,&iter);
@@ -565,10 +561,7 @@ int main(int argc, char *argv[]){
exit(0);
}
}
-
gtk_init(&argc,&argv);
-
-
main_window *widgets = setup_window();
main_update_information();
filters_init_flag();
@@ -576,6 +569,7 @@ int main(int argc, char *argv[]){
add_setup_window(glade_path);
edit_setup_window(glade_path);
main_localization(widgets);
+ tree_view_select(NULL, widgets);
event_all(widgets);
main_event(widgets);
diff --git a/source/ubl-utils.c b/source/ubl-utils.c
index 6aa2d5a..ac2ca3c 100644
--- a/source/ubl-utils.c
+++ b/source/ubl-utils.c
@@ -391,6 +391,28 @@ config_str philos_list_user(int* size) {
endpwent();
return str_users;
}
+config_str philos_list_group(int* size) {
+ char* str_uid_min = "UID_MIN";
+ char* str_uid_max = "UID_MAX";
+ unsigned short uid_min = philos_read_uid_min_max(file_source_login_min_max, str_uid_min);
+ unsigned short uid_max = philos_read_uid_min_max(file_source_login_min_max, str_uid_max);
+ config_str str_users = malloc(1);
+ while (1) {
+ errno = 0; // so we can distinguish errors from no more entries
+ struct passwd* entry = getpwent();
+ if (!entry) {
+ if (errno) {
+ return str_users;
+ }
+ break;
+ }
+ if ((entry->pw_uid >= uid_min && entry->pw_uid < uid_max) || entry->pw_uid == 0) {
+ str_users = yon_char_parsed_append(str_users, size, entry->pw_name);
+ }
+ }
+ endpwent();
+ return str_users;
+}
unsigned short philos_read_uid_min_max(char* filename, char* search) {
int uid = 0;
diff --git a/source/ubl-utils.h b/source/ubl-utils.h
index 8965527..b804295 100644
--- a/source/ubl-utils.h
+++ b/source/ubl-utils.h
@@ -149,6 +149,7 @@ config_str yon_char_parsed_append(config_str parsed, int *size, char *string);
// parsing functions
config_str philos_list_user(int* size);
+config_str philos_list_group(int* size);
unsigned short philos_read_uid_min_max(char* filename, char* search);
apps *yon_apps_scan_and_parse_desktops(int *sizef);
diff --git a/ubl-settings-resourcequota.glade b/ubl-settings-resourcequota.glade
index e37dc5f..87dd138 100644
--- a/ubl-settings-resourcequota.glade
+++ b/ubl-settings-resourcequota.glade
@@ -3510,6 +3510,7 @@ limit
adjustment2
natural
UTF-8
+ 1024
True
False