About has fixed

pull/61/head
Ivan Yartsev 2 years ago
parent fe88c3768c
commit 8ea02f9f92

@ -515,149 +515,150 @@ void on_apply_filters(GtkWidget *self, dictionary *dict){
on_close_subwindow(self);
}
// void on_quota_manual_input(GtkWidget *self, quota_window *window){
// // g_signal_handlers_block_by_func(G_OBJECT(window));
// int size=0;
// char *string = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(self)));
// config_str rtn = yon_char_parse(string,&size,",");
// if (rtn){
// for (int i=0; i<size; i++){
// char *value = yon_char_new(rtn[i]);
// yon_char_divide_search(value,"=",-1);
// int size = yon_get_size_request_from_letter(value[strlen(value)-1]);
// if (size!=-1||strstr(rtn[i],"CPUQuota=")){
// // value[strlen(value)-1]='\0';
// if (strstr(rtn[i],"MemoryHigh=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->SoftRestrictionCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->SoftRestrictionSpin),strtol(value,NULL,10));
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->SoftRestrictionCombo),size);
// } else if (strstr(rtn[i],"MemoryMax=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->HardRestrictionCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->HardRestrictionSpin),strtol(value,NULL,10));
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->HardRestrictionCombo),size);
// } else if (strstr(rtn[i],"MemorySwapMax=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PagingLimitCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->PagingLimitSpin),strtol(value,NULL,10));
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->PagingLimitCombo),size);
// } else if (strstr(rtn[i],"CPUQuota=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->CpuLimitCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window-> CpuLimitSpin),strtol(value,NULL,10));
// } else if (strstr(rtn[i],"IOReadBandwidthMax=")){
// char *name = yon_char_divide_search(value, " ",-1);
// dictionary *dict;
// for_dictionaries(dict,window->devices){
// if (strstr(dict->key,name)){
// if (!((device_limits*)dict->data)){
// dict->data = g_malloc0(sizeof(device_limits));
// ((device_limits*)dict->data)->write=NULL;
// ((device_limits*)dict->data)->read=NULL;
// }
// ((device_limits*)dict->data)->read = value;
// }
// }
// } else if (strstr(rtn[i],"IOWriteBandwidthMax=")){
// char *name = yon_char_divide_search(value, " ",-1);
// dictionary *dict;
// for_dictionaries(dict,window->devices){
// if (strstr(dict->key,name)){
// if (!((device_limits*)dict->data)){
// dict->data = g_malloc0(sizeof(device_limits));
// ((device_limits*)dict->data)->write=NULL;
// ((device_limits*)dict->data)->read=NULL;
// }
// ((device_limits*)dict->data)->write = value;
// }
// }
// } else return;
// }
// free(value);
// }
// } else {
// char *value = yon_char_new(string);
// yon_char_divide_search(value,"=",-1);
// int size = yon_get_size_request_from_letter(value[strlen(value)-1]);
// if (size!=-1||strstr(string,"CPUQuota=")){
// // value[strlen(value)-1]='\0';
// if (strstr(string,"MemoryHigh=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->SoftRestrictionCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->SoftRestrictionSpin),strtol(value,NULL,10));
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->SoftRestrictionCombo),size);
// } else if (strstr(string,"MemoryMax=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->HardRestrictionCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->HardRestrictionSpin),strtol(value,NULL,10));
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->HardRestrictionCombo),size);
// } else if (strstr(string,"MemorySwapMax=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PagingLimitCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->PagingLimitSpin),strtol(value,NULL,10));
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->PagingLimitCombo),size);
// } else if (strstr(string,"CPUQuota=")){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->CpuLimitCheck),1);
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window-> CpuLimitSpin),strtol(value,NULL,10));
// } else if (strstr(string,"IOReadBandwidthMax=")){
// char *name = yon_char_divide_search(value, " ",-1);
// dictionary *dict;
// for_dictionaries(dict,window->devices){
// if (strstr(dict->key,name)){
// if (!((device_limits*)dict->data)){
// dict->data = g_malloc0(sizeof(device_limits));
// ((device_limits*)dict->data)->write=NULL;
// ((device_limits*)dict->data)->read=NULL;
// }
// ((device_limits*)dict->data)->read = value;
// }
// }
// } else if (strstr(string,"IOWriteBandwidthMax=")){
// char *name = yon_char_divide_search(value, " ",-1);
// dictionary *dict;
// for_dictionaries(dict,window->devices){
// if (strstr(dict->key,name)){
// if (!((device_limits*)dict->data)){
// dict->data = g_malloc0(sizeof(device_limits));
// ((device_limits*)dict->data)->write=NULL;
// ((device_limits*)dict->data)->read=NULL;
// }
// ((device_limits*)dict->data)->write = value;
// }
// }
// } else return;
// }
// }
// g_signal_handlers_block_by_func(G_OBJECT(window->DeviceLimitCombo),G_CALLBACK(on_device_current_changed),window);
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitCombo),0);
// g_signal_handlers_unblock_by_func(G_OBJECT(window->DeviceLimitCombo),G_CALLBACK(on_device_current_changed),window);
// if (window->devices->data){
// if (((device_limits*)window->devices->data)->read&&strcmp(((device_limits*)window->devices->data)->read,"")!=0){
// char *rd = ((device_limits*)window->devices->data)->read;
// g_signal_handlers_block_by_func(G_OBJECT(window->DeviceLimitReadCheck),G_CALLBACK(on_quota_configuration_update),window);
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DeviceLimitReadCheck),1);
// g_signal_handlers_unblock_by_func(G_OBJECT(window->DeviceLimitReadCheck),G_CALLBACK(on_quota_configuration_update),window);
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitReadCombo),yon_get_size_request_from_letter(rd[strlen(rd)-1]));
// rd[strlen(rd)-1]='\0';
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->DeviceLimitReadSpin),strtol(((device_limits*)window->devices->data)->read,NULL,10));
// }
// else ((device_limits*)window->devices->data)->read=NULL;
// if (((device_limits*)window->devices->data)->write&&strcmp(((device_limits*)window->devices->data)->write,"")!=0){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DeviceLimitWriteCheck),1);
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitWriteCombo),yon_get_size_request_from_letter(((device_limits*)window->devices->data)->write[strlen(((device_limits*)window->devices->data)->write)-1]));
// ((device_limits*)window->devices->data)->write[strlen(((device_limits*)window->devices->data)->write)-1]='\0';
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->DeviceLimitWriteSpin),strtol(((device_limits*)window->devices->data)->write,NULL,10));
// } else ((device_limits*)window->devices->data)->write=NULL;
// }
// }
// void on_quota_manual_input_focus (GtkWidget *self, GdkEventFocus *event, quota_window *window){
// on_quota_manual_input(self,window);
// }
void on_quota_manual_input(GtkWidget *self, quota_window *window){
gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitCombo),-1);
int size=0;
char *string = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(self)));
config_str rtn = yon_char_parse(string,&size,",");
if (rtn){
for (int i=0; i<size; i++){
char *value = yon_char_new(rtn[i]);
yon_char_divide_search(value,"=",-1);
int size = yon_get_size_request_from_letter(value[strlen(value)-1]);
if (size!=-1||strstr(rtn[i],"CPUQuota=")){
// value[strlen(value)-1]='\0';
if (strstr(rtn[i],"MemoryHigh=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->SoftRestrictionCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->SoftRestrictionSpin),strtol(value,NULL,10));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->SoftRestrictionCombo),size);
} else if (strstr(rtn[i],"MemoryMax=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->HardRestrictionCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->HardRestrictionSpin),strtol(value,NULL,10));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->HardRestrictionCombo),size);
} else if (strstr(rtn[i],"MemorySwapMax=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PagingLimitCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->PagingLimitSpin),strtol(value,NULL,10));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PagingLimitCombo),size);
} else if (strstr(rtn[i],"CPUQuota=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->CpuLimitCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window-> CpuLimitSpin),strtol(value,NULL,10));
} else if (strstr(rtn[i],"IOReadBandwidthMax=")){
char *name = yon_char_divide_search(value, " ",-1);
dictionary *dict;
for_dictionaries(dict,window->devices){
if (strstr(dict->key,name)){
if (!((device_limits*)dict->data)){
dict->data = g_malloc0(sizeof(device_limits));
((device_limits*)dict->data)->write=NULL;
((device_limits*)dict->data)->read=NULL;
}
((device_limits*)dict->data)->read = value;
}
}
} else if (strstr(rtn[i],"IOWriteBandwidthMax=")){
char *name = yon_char_divide_search(value, " ",-1);
dictionary *dict;
for_dictionaries(dict,window->devices){
if (strstr(dict->key,name)){
if (!((device_limits*)dict->data)){
dict->data = g_malloc0(sizeof(device_limits));
((device_limits*)dict->data)->write=NULL;
((device_limits*)dict->data)->read=NULL;
}
((device_limits*)dict->data)->write = value;
}
}
} else return;
}
free(value);
}
} else {
char *value = yon_char_new(string);
yon_char_divide_search(value,"=",-1);
int size = yon_get_size_request_from_letter(value[strlen(value)-1]);
if (size!=-1||strstr(string,"CPUQuota=")){
// value[strlen(value)-1]='\0';
if (strstr(string,"MemoryHigh=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->SoftRestrictionCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->SoftRestrictionSpin),strtol(value,NULL,10));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->SoftRestrictionCombo),size);
} else if (strstr(string,"MemoryMax=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->HardRestrictionCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->HardRestrictionSpin),strtol(value,NULL,10));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->HardRestrictionCombo),size);
} else if (strstr(string,"MemorySwapMax=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->PagingLimitCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->PagingLimitSpin),strtol(value,NULL,10));
gtk_combo_box_set_active(GTK_COMBO_BOX(window->PagingLimitCombo),size);
} else if (strstr(string,"CPUQuota=")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->CpuLimitCheck),1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(window-> CpuLimitSpin),strtol(value,NULL,10));
} else if (strstr(string,"IOReadBandwidthMax=")){
char *name = yon_char_divide_search(value, " ",-1);
dictionary *dict;
for_dictionaries(dict,window->devices){
if (strstr(dict->key,name)){
if (!((device_limits*)dict->data)){
dict->data = g_malloc0(sizeof(device_limits));
((device_limits*)dict->data)->write=NULL;
((device_limits*)dict->data)->read=NULL;
}
((device_limits*)dict->data)->read = value;
break;
}
}
} else if (strstr(string,"IOWriteBandwidthMax=")){
char *name = yon_char_divide_search(value, " ",-1);
dictionary *dict;
for_dictionaries(dict,window->devices){
if (strstr(dict->key,name)){
if (!((device_limits*)dict->data)){
dict->data = g_malloc0(sizeof(device_limits));
((device_limits*)dict->data)->write=NULL;
((device_limits*)dict->data)->read=NULL;
}
((device_limits*)dict->data)->write = value;
}
}
} else return;
}
}
// g_signal_handlers_block_by_func(G_OBJECT(window->DeviceLimitCombo),G_CALLBACK(on_device_current_changed),window);
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitCombo),0);
// g_signal_handlers_unblock_by_func(G_OBJECT(window->DeviceLimitCombo),G_CALLBACK(on_device_current_changed),window);
// if (window->devices->data){
// if (((device_limits*)window->devices->data)->read&&strcmp(((device_limits*)window->devices->data)->read,"")!=0){
// char *rd = ((device_limits*)window->devices->data)->read;
// g_signal_handlers_block_by_func(G_OBJECT(window->DeviceLimitReadCheck),G_CALLBACK(on_quota_configuration_update),window);
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DeviceLimitReadCheck),1);
// g_signal_handlers_unblock_by_func(G_OBJECT(window->DeviceLimitReadCheck),G_CALLBACK(on_quota_configuration_update),window);
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitReadCombo),yon_get_size_request_from_letter(rd[strlen(rd)-1]));
// rd[strlen(rd)-1]='\0';
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->DeviceLimitReadSpin),strtol(((device_limits*)window->devices->data)->read,NULL,10));
// }
// else ((device_limits*)window->devices->data)->read=NULL;
// if (((device_limits*)window->devices->data)->write&&strcmp(((device_limits*)window->devices->data)->write,"")!=0){
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DeviceLimitWriteCheck),1);
// gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceLimitWriteCombo),yon_get_size_request_from_letter(((device_limits*)window->devices->data)->write[strlen(((device_limits*)window->devices->data)->write)-1]));
// ((device_limits*)window->devices->data)->write[strlen(((device_limits*)window->devices->data)->write)-1]='\0';
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->DeviceLimitWriteSpin),strtol(((device_limits*)window->devices->data)->write,NULL,10));
// } else ((device_limits*)window->devices->data)->write=NULL;
// }
}
void on_quota_manual_input_focus (GtkWidget *self, GdkEventFocus *event, quota_window *window){
on_quota_manual_input(self,window);
}
void on_filters_opened(GtkWidget *self, main_window *widgets) {
GtkBuilder *builder = gtk_builder_new_from_resource(glade_filters_path);
@ -813,8 +814,8 @@ void on_add_open(GtkWidget *self, main_window *widgets){
g_signal_connect(G_OBJECT(window->DeviceLimitReadCheck),"toggled",G_CALLBACK(on_quota_configuration_update),window);
g_signal_connect(G_OBJECT(window->DeviceLimitWriteCheck),"toggled",G_CALLBACK(on_quota_configuration_update),window);
// g_signal_connect(G_OBJECT(window->ManualInputEntry),"activate",G_CALLBACK(on_quota_manual_input),window);
// g_signal_connect(G_OBJECT(window->ManualInputEntry),"focus-out-event",G_CALLBACK(on_quota_manual_input_focus),window);
g_signal_connect(G_OBJECT(window->ManualInputEntry),"activate",G_CALLBACK(on_quota_manual_input),window);
g_signal_connect(G_OBJECT(window->ManualInputEntry),"focus-out-event",G_CALLBACK(on_quota_manual_input_focus),window);
yon_get_devices(window);
dictionary *dict;
for_dictionaries(dict,window->devices){

Loading…
Cancel
Save