diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index c04a2b8..873f36a 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -179,6 +179,7 @@ void on_check_maximum(GtkWidget *self, GtkWidget *pair){ struct sysinfo inf; sysinfo(&inf); main_config.avaliable_ram=inf.totalram; + main_config.avaliable_swap=inf.totalswap; } double cur_ram = main_config.avaliable_ram; double cur_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(self)); @@ -196,6 +197,7 @@ void on_check_maximum(GtkWidget *self, GtkWidget *pair){ struct sysinfo inf; sysinfo(&inf); main_config.avaliable_ram=inf.totalram; + main_config.avaliable_swap=inf.totalswap; } double cur_ram = main_config.avaliable_ram; double cur_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(pair)); @@ -209,6 +211,44 @@ void on_check_maximum(GtkWidget *self, GtkWidget *pair){ } } +void on_check_maximum_cpu(GtkWidget *self, GtkWidget *pair){ + if (GTK_IS_SPIN_BUTTON(self)){ + if (GTK_IS_COMBO_BOX(pair)){ + int required_size = gtk_combo_box_get_active(GTK_COMBO_BOX(pair)); + if (main_config.avaliable_ram==0){ + struct sysinfo inf; + sysinfo(&inf); + main_config.avaliable_swap=inf.totalswap; + } + double cur_ram = main_config.avaliable_swap; + double cur_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(self)); + for (int i=0;icur_ram) + gtk_adjustment_set_value(adj,cur_ram); + } + } else if (GTK_IS_SPIN_BUTTON(pair)){ + if (GTK_IS_COMBO_BOX(self)){ + int required_size = gtk_combo_box_get_active(GTK_COMBO_BOX(self)); + if (main_config.avaliable_swap==0){ + struct sysinfo inf; + sysinfo(&inf); + main_config.avaliable_swap=inf.totalswap; + } + double cur_ram = main_config.avaliable_swap; + double cur_value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(pair)); + for (int i=0;icur_ram) + gtk_adjustment_set_value(adj,cur_ram); + } + } +} + void on_quota_target_type_changed(GtkWidget *self, quota_window *window){ int active = gtk_combo_box_get_active(GTK_COMBO_BOX(self)); if (active == 0) { @@ -396,7 +436,7 @@ void yon_load_proceed(char *command){ swap=yon_char_new(single_quota[j]); yon_char_divide_search(swap,"=",-1); } - if (strstr(single_quota[j],"CPUQota")){ + if (strstr(single_quota[j],"CPUQuota")){ cpu=yon_char_new(single_quota[j]); yon_char_divide_search(cpu,"=",-1); } @@ -563,6 +603,7 @@ void on_add_open(GtkWidget *self, main_window *widgets){ struct sysinfo inf; sysinfo(&inf); main_config.avaliable_ram=inf.totalram; + main_config.avaliable_swap=inf.totalswap; main_config.cores = sysconf(_SC_NPROCESSORS_ONLN); dictionary *windows = NULL; yon_dictionary_add_or_create_if_exists_with_data(windows,"window",window); @@ -574,7 +615,7 @@ void on_add_open(GtkWidget *self, main_window *widgets){ gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->SoftRestrictionSpin)),main_config.avaliable_ram); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->HardRestrictionSpin)),main_config.avaliable_ram); - gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->PagingLimitSpin)),main_config.avaliable_ram); + gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->PagingLimitSpin)),main_config.avaliable_swap); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->CpuLimitSpin)),main_config.cores*100); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->DeviceLimitReadSpin)),main_config.avaliable_ram); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->DeviceLimitWriteSpin)),main_config.avaliable_ram); @@ -586,8 +627,8 @@ void on_add_open(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->SoftRestrictionCombo),"changed",G_CALLBACK(on_check_maximum),window->SoftRestrictionSpin); g_signal_connect(G_OBJECT(window->HardRestrictionSpin),"change-value",G_CALLBACK(on_check_maximum),window->HardRestrictionCombo); g_signal_connect(G_OBJECT(window->HardRestrictionCombo),"changed",G_CALLBACK(on_check_maximum),window->HardRestrictionSpin); - g_signal_connect(G_OBJECT(window->PagingLimitSpin),"change-value",G_CALLBACK(on_check_maximum),window->PagingLimitCombo); - g_signal_connect(G_OBJECT(window->PagingLimitCombo),"changed",G_CALLBACK(on_check_maximum),window->PagingLimitSpin); + g_signal_connect(G_OBJECT(window->PagingLimitSpin),"change-value",G_CALLBACK(on_check_maximum_cpu),window->PagingLimitCombo); + g_signal_connect(G_OBJECT(window->PagingLimitCombo),"changed",G_CALLBACK(on_check_maximum_cpu),window->PagingLimitSpin); g_signal_connect(G_OBJECT(window->DeviceLimitReadSpin),"change-value",G_CALLBACK(on_check_maximum),window->DeviceLimitReadCombo); g_signal_connect(G_OBJECT(window->DeviceLimitReadCombo),"changed",G_CALLBACK(on_check_maximum),window->DeviceLimitReadSpin); g_signal_connect(G_OBJECT(window->DeviceLimitWriteSpin),"change-value",G_CALLBACK(on_check_maximum),window->DeviceLimitWriteCombo); @@ -806,6 +847,7 @@ void on_edit_open(GtkWidget *self, main_window *widgets){ struct sysinfo inf; sysinfo(&inf); main_config.avaliable_ram=inf.totalram; + main_config.avaliable_swap=inf.totalswap; main_config.cores = sysconf(_SC_NPROCESSORS_ONLN); dictionary *windows = NULL; yon_dictionary_add_or_create_if_exists_with_data(windows,"window",window); @@ -817,7 +859,7 @@ void on_edit_open(GtkWidget *self, main_window *widgets){ gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->SoftRestrictionSpin)),main_config.avaliable_ram); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->HardRestrictionSpin)),main_config.avaliable_ram); - gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->PagingLimitSpin)),main_config.avaliable_ram); + gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->PagingLimitSpin)),main_config.avaliable_swap); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->CpuLimitSpin)),main_config.cores*100); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->DeviceLimitReadSpin)),main_config.avaliable_ram); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(window->DeviceLimitWriteSpin)),main_config.avaliable_ram); @@ -934,8 +976,8 @@ void on_edit_open(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->SoftRestrictionCombo),"changed",G_CALLBACK(on_check_maximum),window->SoftRestrictionSpin); g_signal_connect(G_OBJECT(window->HardRestrictionSpin),"change-value",G_CALLBACK(on_check_maximum),window->HardRestrictionCombo); g_signal_connect(G_OBJECT(window->HardRestrictionCombo),"changed",G_CALLBACK(on_check_maximum),window->HardRestrictionSpin); - g_signal_connect(G_OBJECT(window->PagingLimitSpin),"change-value",G_CALLBACK(on_check_maximum),window->PagingLimitCombo); - g_signal_connect(G_OBJECT(window->PagingLimitCombo),"changed",G_CALLBACK(on_check_maximum),window->PagingLimitSpin); + g_signal_connect(G_OBJECT(window->PagingLimitSpin),"change-value",G_CALLBACK(on_check_maximum_cpu),window->PagingLimitCombo); + g_signal_connect(G_OBJECT(window->PagingLimitCombo),"changed",G_CALLBACK(on_check_maximum_cpu),window->PagingLimitSpin); g_signal_connect(G_OBJECT(window->DeviceLimitReadSpin),"change-value",G_CALLBACK(on_check_maximum),window->DeviceLimitReadCombo); g_signal_connect(G_OBJECT(window->DeviceLimitReadCombo),"changed",G_CALLBACK(on_check_maximum),window->DeviceLimitReadSpin); g_signal_connect(G_OBJECT(window->DeviceLimitWriteSpin),"change-value",G_CALLBACK(on_check_maximum),window->DeviceLimitWriteCombo); diff --git a/source/ubl-settings-resourcequota.h b/source/ubl-settings-resourcequota.h index 5e23de4..446539c 100644 --- a/source/ubl-settings-resourcequota.h +++ b/source/ubl-settings-resourcequota.h @@ -39,7 +39,7 @@ #define remove_global_command "ubconfig --target global --noexecute remove security " #define remove_local_command "ubconfig --target system remove security " #define get_devices_command "findmnt -lo source,target,fstype,label,size -t ext4 |grep -vE \"zram|\\]|\\[|SOURCE\"" -#define get_processes_tree_command "systemd-cgls --no-page" +#define get_processes_tree_command "clear; systemd-cgls --no-page" #define get_dispatcher_command "systemd-cgtop" #define get_information_command "systemctl status " @@ -67,6 +67,7 @@ typedef struct { int lock_load_global; GtkListStore *list; long avaliable_ram; + long avaliable_swap; long cores; config_str users;