From 728d996b67ecd8c75eb1c367169a73f09bd4b2c8 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 17 Mar 2023 10:08:48 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20#15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ublexec.cc | 31 +++++++++++++++++++++---------- source/ublexec.h | 7 +++---- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/source/ublexec.cc b/source/ublexec.cc index 5a4a1ff..fc8613f 100644 --- a/source/ublexec.cc +++ b/source/ublexec.cc @@ -189,7 +189,7 @@ void MainWindow::event() { btnFilemaneg->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_filemaneg)); btnListApp->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_list_app)); btnStart->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::entry_app)); - chbTerminal->signal_toggled().connect([&]() {cmbTerminal->set_sensitive(chbTerminal->get_active());this->denamic_cmd();}); + chbTerminal->signal_toggled().connect([&]() {cmbTerminal->set_sensitive(chbTerminal->get_active());denamic_cmd();}); chbAnotherUser->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::activ_or_block_other_user)); spinPriority->signal_value_changed().connect(sigc::mem_fun(*this, &MainWindow::change_scale_priority)); scalePriority->signal_value_changed().connect(sigc::mem_fun(*this, &MainWindow::change_spin_priority)); @@ -212,13 +212,14 @@ void MainWindow::event() { iconSystem->signal_selection_changed().connect(sigc::mem_fun(*this,&MainWindow::select_System)); btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show)); btnAbout->signal_activate().connect([&]() {aboutWindows->show();}); - cmbUser->signal_changed().connect([&]() {changed_user();denamic_cmd();}); + cmbUser->signal_changed().connect([&]() {changed_user();this->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)); + cmbTerminal->signal_changed().connect([&]() {this->denamic_cmd();}); } @@ -612,12 +613,16 @@ string MainWindow::start_cmd(string user_cmd) { return ""; } if (chbTerminal->get_active() == true) { + string name_terminal_arr = ""; string name_terminal = cmbTerminal->get_active_text(); if (name_terminal.length() != 0) { int len_termunal_cmd = sizeof(termunal_cmd)/sizeof(*termunal_cmd); - for (int index = 0; indexset_text(this->start_cmd(user_cmd)); } + } } @@ -772,12 +778,17 @@ void MainWindow::pars_dir_terminal() { namespace fs = std::filesystem; std::string path = "/bin"; string file_name = ""; + string name_terminal = ""; for (const auto & entry: fs::directory_iterator(path)) { file_name = entry.path().filename().string(); - for (const auto &str_teminal: termunal_bin) { - if (str_teminal == file_name) { - cmbTerminal->append(str_teminal); - cmbTerminal->set_active_text(str_teminal); + int len_termunal_cmd = sizeof(termunal_cmd)/sizeof(*termunal_cmd); + for (int index = 0; index < len_termunal_cmd; ++index) { + name_terminal = termunal_cmd[index]; + str_remove(name_terminal, " -e "); + str_remove(name_terminal, " -x "); + if (name_terminal == file_name) { + cmbTerminal->append(name_terminal); + cmbTerminal->set_active_text(name_terminal); } } } @@ -865,7 +876,7 @@ vector MainWindow::split(const std::string &s, char delim) { return elems; } -void MainWindow::str_remove(std::string& source, std::string & to_remove) { +void MainWindow::str_remove(std::string& source, std::string to_remove) { string::size_type n = to_remove.length(); for (string::size_type i = source.find(to_remove); i != string::npos; diff --git a/source/ublexec.h b/source/ublexec.h index 0e8acf2..b14107b 100755 --- a/source/ublexec.h +++ b/source/ublexec.h @@ -95,7 +95,7 @@ public: void unselect_icon(Gtk::IconView *icon_entry); void pars_dir_terminal(); unsigned short read_uid_min_max(string filename, string search); - void str_remove(std::string& source, std::string & to_remove); + void str_remove(std::string& source, std::string to_remove); string call(string cmd); vector split(const std::string &s, char delim); public: @@ -200,9 +200,8 @@ public: Glib::RefPtr list_System; Gtk::Widget *boxAbout; public: - string termunal_bin[3] = {"konsole", "xfce4-terminal", "xterm"}; - string termunal_cmd[3] = {" -e ", " -x ", " -e "}; - string version_application = "1.0"; + string termunal_cmd[3] = {"konsole -e ", "xfce4-terminal -x ", "xterm -e "}; + string version_application = "1.2"; string cmd_old = ""; string user_exec_app = ""; string user_cmd = "";