diff --git a/Makefile b/Makefile index 9be5cf4..181d2ea 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ all: init build init: @echo "Initialize ..."; \ - sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ublexec.h; \ + sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ublexec.cc; \ echo "-- Build path: ${CMAKE_BUILD_DIR}" depend: diff --git a/source/main.cc b/source/main.cc index 50150ff..3d19d28 100644 --- a/source/main.cc +++ b/source/main.cc @@ -1,18 +1,21 @@ #include "ublexec.h" +void pars_flag(int index_start, int argc, char* argv[]); int main(int argc, char** argv) { + string str_argv= ""; string str_cmd_argv = ""; - for (int i=1; i 1){ + str_argv = argv[1]; + } + if (str_argv.find("--socket-id") != std::string::npos) { + auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.plug"); + auto builder = Gtk::Builder::create_from_file(path_glade); Glib::init(); setlocale(LC_ALL, ""); Glib::OptionContext context; @@ -31,6 +34,20 @@ int main(int argc, char** argv) { return 0; } else { + if (argc == 3) { + name_app_cmd = argv[2]; + string str_flag = argv[1]; + if (str_flag == "-x") { + flag_prog_file = 1; + } + else if (str_flag == "-e") { + flag_prog_file = 2; + } + } + pars_flag(1,argc, argv); + int local_argc = 1; + auto app = Gtk::Application::create(local_argc, argv, "org.gtkmm.example.plug"); + auto builder = Gtk::Builder::create_from_file(path_glade); MainWindow* wnd = nullptr; builder->get_widget_derived("window", wnd); auto r = app->run(*wnd); @@ -38,4 +55,20 @@ int main(int argc, char** argv) { return r; } +} + +void pars_flag(int index_start, int argc, char* argv[]) { + string str_argv = ""; + for (int i = index_start; iget_widget("messageError", messageError); builder->get_widget("lblMessageError", lblMessageError); builder->get_widget("btnMessageErrorOk", btnMessageErrorOk); - builder->get_widget("btnMessageErrorOk", btnMessageErrorOk); - builder->get_widget("btnMessageErrorOk", btnMessageErrorOk); builder->get_widget("dialogStartMenu", dialogStartMenu); builder->get_widget("btnStartMenuOK", btnStartMenuOK); builder->get_widget("btnStartMenuExit", btnStartMenuExit); @@ -177,7 +178,7 @@ void MainWindow::localization() { lblInfoExec->set_text(gettext("Change startup priority")); lblInfoPriority->set_text(gettext("Priority:")); lblMessageError->set_text(gettext("Select an executable file or program")); - messageError->set_title(gettext("Warning!")); + messageError->set_title(gettext("Attention")); lblGraphics->set_text(gettext("Graphics")); lblTools->set_text(gettext("Tools")); lblInternet->set_text(gettext("Internet")); @@ -191,6 +192,7 @@ void MainWindow::localization() { btnListApp->set_tooltip_text(gettext("Application Overview")); btnFilemaneg->set_tooltip_text(gettext("File Overview")); btnStartMenuExit->set_label(gettext("Cancel")); + btnMessageErrorOk->set_label(gettext("Close")); } void MainWindow::event() { @@ -413,6 +415,13 @@ void MainWindow::unselect_icon(Gtk::IconView *icon_entry) { } void MainWindow::settings() { + if (flag_prog_file == 1){ + user_cmd = name_app_cmd; + } + if (flag_prog_file == 2){ + path_file = name_app_cmd; + } + this->pars_apps(); this->get_builder(); this->event(); @@ -628,7 +637,7 @@ string MainWindow::start_cmd(string user_cmd) { str_nice_cmd = "nice -n " + to_string(spinPriority->get_value_as_int()) + " "; } if (user_cmd.length() == 0 && name_app.length() == 0 && path_file.length() == 0) { - messageError->set_title(gettext("Warning!")); + messageError->set_title(gettext("Attention")); messageError->show(); return ""; } @@ -697,7 +706,7 @@ void MainWindow::denamic_cmd() { name_app = ""; user_cmd = ""; txtCmd->set_text(user_cmd); - messageError->set_title(gettext("Warning!")); + messageError->set_title(gettext("Attention")); messageError->show(); } else{ @@ -963,7 +972,16 @@ SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr build show_all_children(); } - +void help() { + string help = "GTK \"Run applications as another user with the specified priority\" for UBLinux\n\n" + "Usage: ublexec [OPTIONS...]\n" + "Options:\n" + " -h, --help Show this help\n" + " -V, --version Show package version\n" + " -x APP_NAME Running the program\n" + " -e FILE_NAME Running the file\n"; + cout << gettext(help.c_str()); +} diff --git a/source/ublexec.h b/source/ublexec.h index 065a420..407423d 100644 --- a/source/ublexec.h +++ b/source/ublexec.h @@ -24,9 +24,12 @@ extern const string path_app; extern const string app_name; extern const string path_glade; extern const string path_css; +extern string name_app_cmd; extern const string path_img_head_background; extern int socket_ext_id_I; extern int socket_trd_id_I; +extern int flag_prog_file; +extern string version_application; void me_thread(string cmd); class CmdArgParser : public Glib::OptionGroup { @@ -144,7 +147,7 @@ public: Gtk::Label *lblTimeEpriorityLow; Gtk::Label *lblTime4EpriorityHigh; Gtk::Label *lblUserName; - Gtk::MessageDialog *messageError; + Gtk::Window *messageError; Gtk::Button *btnMessageErrorOk; Gtk::Label *lblMessageError; Gtk::Button *btnStartMenuOK; @@ -204,7 +207,6 @@ public: Gtk::Widget *boxAbout; public: string termunal_cmd[3] = {"konsole -e ", "xfce4-terminal -x ", "xterm -e "}; - string version_application = "2.23"; string cmd_old = ""; string user_exec_app = ""; string user_cmd = ""; @@ -244,5 +246,6 @@ private: Gtk::Widget *plugBox; Gtk::Widget *parent; }; +void help(); diff --git a/ublexec.glade b/ublexec.glade index 77b652e..98a67a5 100644 --- a/ublexec.glade +++ b/ublexec.glade @@ -1658,7 +1658,7 @@ with the specified priority 5 5 5 - 6 + 13 Priority: True 0 @@ -1697,7 +1697,7 @@ with the specified priority 5 5 5 - 6 + 15 True @@ -1921,67 +1921,107 @@ with the specified priority - + False - Warning! - com.ublinux.ublexec - dialog - + start + False + + True False vertical - 2 - - + + + True False - True - end - + + True + False + center + start + 20 + 20 + 20 + 20 + 20 + 20 + dialog-warning-symbolic + 6 + + + False + True + 1 + - - OK + True - True - True - 5 - 5 - 5 - 5 - 6 - 6 + False + center + start + 10 + 25 + 10 + 25 + 34 + 20 + Select an executable file or program + True + 0 True True - 1 + 2 - False - False + True + True 0 - + + Close True - False - 10 - 10 - 15 - Select an executable file or program + True + True + 5 + 5 + 5 + 5 + 5 + 5 - True + False True 2 + + + True + False + Warning! + True + + + True + False + 32 + com.ublinux.ublexec + 5 + + + + False diff --git a/ublexec.pot b/ublexec.pot index 68ea1d7..9b8de70 100644 --- a/ublexec.pot +++ b/ublexec.pot @@ -187,7 +187,7 @@ msgid "User Name:" msgstr "" #: source/ublexec.cc:180 source/ublexec.cc:631 source/ublexec.cc:700 -msgid "Warning!" +msgid "Attention" msgstr "" #: source/ublexec.cc:157 source/ublexec.cc:154 @@ -214,3 +214,15 @@ msgstr "" msgid "ОК" msgstr "" + +#: source/main.cc:60 +msgid "ublexec version: " +msgstr "" + +#: source/main.cc:970 +msgid "ublexec version: " +msgstr "" + +#: source/main.cc:197 +msgid "Close" +msgstr "" diff --git a/ublexec_ru.po b/ublexec_ru.po index 9acaf05..d069d6b 100644 --- a/ublexec_ru.po +++ b/ublexec_ru.po @@ -189,8 +189,8 @@ msgid "User Name:" msgstr "Имя пользователя:" #: source/ublexec.cc:180 source/ublexec.cc:631 source/ublexec.cc:700 -msgid "Warning!" -msgstr "Внимание!" +msgid "Attention" +msgstr "Внимание" #: source/ublexec.cc:157 source/ublexec.cc:154 msgid "https://wiki.ublinux.com" @@ -218,3 +218,28 @@ msgstr "pkexec" msgid "ОК" msgstr "ОК" + +#: source/main.cc:60 source/main.cc:60 +msgid "ublexec version: " +msgstr "ublexec версия: " + +msgid "" +"GTK \"Run applications as another user with the specified priority\" for UBLinux\n\n" +"Usage: ublexec [OPTIONS...]\n" +"Options:\n" +" -h, --help Show this help\n" +" -V, --version Show package version\n" +" -x APP_NAME Running the program\n" +" -e FILE_NAME Running the file\n" +msgstr "" +"GTK-утилита \"Запускать приложения от имени другого пользователя с указанным приоритетом\" для UBLinux\n\n" +"Использование: ublexec [Параметры приложения...]\n" +"Параметры приложения:\n" +" -h, --help\t Показать параметры справки\n" +" -V, --version\t Показать версию пакета\n" +" -x APP_NAME Запуск программы\n" +" -e FILE_NAME Запуск файла\n" + +#: source/main.cc:197 +msgid "Close" +msgstr "Закрыть"