|
|
|
|
@ -201,10 +201,68 @@ void MainWindow::event() {
|
|
|
|
|
btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show));
|
|
|
|
|
btnAbout->signal_activate().connect([&]() {aboutWindows->show();});
|
|
|
|
|
cmbUser->signal_changed().connect([&]() {denamic_cmd();changed_user();});
|
|
|
|
|
rbSudo->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::denamic_cmd));
|
|
|
|
|
rbSudo->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::sudo_nice));
|
|
|
|
|
txtCmd->signal_focus_out_event().connect(sigc::mem_fun(*this, &MainWindow::focus_out_txt_cmd));
|
|
|
|
|
txtCmd->signal_focus_in_event().connect(sigc::mem_fun(*this, &MainWindow::focus_in_txt_cmd));
|
|
|
|
|
txtCmd->signal_delete_text().connect(sigc::mem_fun(*this, &MainWindow::delete_cmd));
|
|
|
|
|
rbSu->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::sudo_nice));
|
|
|
|
|
rbPkexec->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::sudo_nice));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::sudo_nice(){
|
|
|
|
|
if (geteuid() == 0 || cmbUser->get_active_text() == "root"){
|
|
|
|
|
spinPriority->set_range(-20, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(-20, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("-20 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
else if (rbSudo->get_active()){
|
|
|
|
|
spinPriority->set_range(-20, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(-20, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("-20 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
else if (rbSu->get_active()){
|
|
|
|
|
spinPriority->set_range(0, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(0, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("0 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
else if (rbPkexec->get_active()){
|
|
|
|
|
spinPriority->set_range(0, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(0, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("0 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
this->denamic_cmd();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::changed_user() {
|
|
|
|
|
Glib::ustring entry_user = cmbUser->get_active_text();
|
|
|
|
|
if (geteuid() == 0 || entry_user == "root") {
|
|
|
|
|
spinPriority->set_range(-20, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(-20, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("-20 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
spinPriority->set_range(0, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(0, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("0 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::delete_cmd(const int &x, const int &y) {
|
|
|
|
|
@ -597,26 +655,6 @@ void MainWindow::entry_app() {
|
|
|
|
|
this->call_app(cmd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::changed_user() {
|
|
|
|
|
Glib::ustring entry_user = cmbUser->get_active_text();
|
|
|
|
|
if (geteuid() == 0 || entry_user == "root") {
|
|
|
|
|
spinPriority->set_range(-20, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(-20, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("-20 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
spinPriority->set_range(0, 19);
|
|
|
|
|
spinPriority->set_increments(1.0, -1.0);
|
|
|
|
|
scalePriority->set_range(0, 19);
|
|
|
|
|
scalePriority->set_value(0);
|
|
|
|
|
lblTimeEpriorityLow->set_text("19 (Низкий)");
|
|
|
|
|
lblTime4EpriorityHigh->set_text("0 (Высокий)");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::activ_or_block_other_user() {
|
|
|
|
|
bool flag = chbAnotherUser->get_active();
|
|
|
|
|
cmbUser->set_active(0);
|
|
|
|
|
@ -668,7 +706,8 @@ void MainWindow::pars_dir_bin() {
|
|
|
|
|
void MainWindow::is_user_wheel(){
|
|
|
|
|
string response = this->call("id -Gn");
|
|
|
|
|
if (response.find("wheel") == string::npos){
|
|
|
|
|
rbSudo->set_sensitive(false);
|
|
|
|
|
flag_sudo = false;
|
|
|
|
|
rbSudo->set_sensitive(flag_sudo);
|
|
|
|
|
}
|
|
|
|
|
size_t user_index = response.find(" ");
|
|
|
|
|
if (user_index!=string::npos){
|
|
|
|
|
|