diff options
-rw-r--r-- | client/mainwindow.cpp | 34 | ||||
-rw-r--r-- | client/mainwindow.h | 5 | ||||
-rw-r--r-- | restarter.workspace | 1 | ||||
-rw-r--r-- | services/unix_exec_service/main.cpp | 3 |
4 files changed, 30 insertions, 13 deletions
diff --git a/client/mainwindow.cpp b/client/mainwindow.cpp index 943e04d..d7070a6 100644 --- a/client/mainwindow.cpp +++ b/client/mainwindow.cpp @@ -29,7 +29,7 @@ MainWindow::MainWindow(QWidget *parent) : this->setWindowTitle(tr("Client")); this->setFixedSize(this->size()); show(); - ui->state_lbl->setVisible(true); + ui->state_lbl->show(); ui->state_lbl->setText(" "); ui->state_lbl->setText(tr("Preparing..")); get_socket(); @@ -121,15 +121,19 @@ void MainWindow::handle_data() { service_ui *u = new service_ui; u->group = new QGroupBox(i->service.c_str(), this); - u->group->show(); + u->group->resize(this->size().width() - 10, 25); + u->layout = new QHBoxLayout(u->group); for(std::list<service_s::cmd>::iterator ii = i->cmds.begin(), eend = i->cmds.end(); ii != eend; ++ii) { u->commands.push_back(new QPushButton(QString::fromUtf8(ii->command.c_str()), u->group)); connect(u->commands.back(), SIGNAL(clicked()), SLOT(handle_button_click())); u->commands.back()->setToolTip(QString::fromUtf8(ii->description.c_str())); - u->commands.back()->show(); + u->layout->addWidget(u->commands.back()); + //u->commands.back()->show(); + svc_ui_list.push_back(u); } - svc_ui_list.push_back(u); + u->group->setLayout(u->layout); + u->group->show(); } } break; @@ -153,8 +157,19 @@ void MainWindow::handle_data() void MainWindow::handle_button_click() { - //TODO - + QPushButton *btn = qobject_cast<QPushButton*>(sender()); + if(btn) + { + QGroupBox *svc = qobject_cast<QGroupBox*>(btn->parent()); + if(svc) + { + packet *p = packet::cli_make_command_packet(svc->title().toUtf8(), btn->text().toUtf8()); + unsigned char *b = p->buf(); + sock->write((char*)b, p->raw().size()); + delete [] b; + delete p; + } + } } void MainWindow::ssl_verify_error_handler(const QSslError error) @@ -177,15 +192,14 @@ MainWindow::~MainWindow() delete ui; } -void MainWindow::enable_buttons(bool enable) -{ -} void MainWindow::disconnected() { - enable_buttons(true); ui->state_lbl->setText(QString::fromUtf8(" ")); + for(std::list<service_ui*>::iterator i = svc_ui_list.begin(), end = svc_ui_list.end(); i != end; ++i) + delete *i; + svc_ui_list.clear(); sock->deleteLater(); } diff --git a/client/mainwindow.h b/client/mainwindow.h index 98725a6..f1ce651 100644 --- a/client/mainwindow.h +++ b/client/mainwindow.h @@ -25,6 +25,7 @@ #include <QSslKey> #include <QGroupBox> #include <QPushButton> +#include <QBoxLayout> #include <api_protocol.h> @@ -39,12 +40,13 @@ namespace Ui { struct service_ui { QGroupBox *group; + QHBoxLayout *layout; std::list<QPushButton*> commands; ~service_ui() { - delete group; for(std::list<QPushButton*>::iterator i = commands.begin(), end = commands.end(); i != end; ++i) delete *i; + delete group; } @@ -69,7 +71,6 @@ private slots: private: - void enable_buttons(bool); void get_socket(); void _connect(); Ui::MainWindow *ui; diff --git a/restarter.workspace b/restarter.workspace index e96d265..f712c63 100644 --- a/restarter.workspace +++ b/restarter.workspace @@ -13,6 +13,7 @@ + ]]> </Environment> <Project Name="proto_test" Path="proto_test/proto_test.project" Active="No"/> diff --git a/services/unix_exec_service/main.cpp b/services/unix_exec_service/main.cpp index 331c98f..37a339e 100644 --- a/services/unix_exec_service/main.cpp +++ b/services/unix_exec_service/main.cpp @@ -124,7 +124,8 @@ void load_cmds() else c.command = cmd; c.description = descr; - cmds.push_back(c); + if(!c.command.empty()) + cmds.push_back(c); // printf("%s | %s | %s\n", _alias.c_str(), cmd.c_str(), descr.c_str()); } } |