summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/mainwindow.cpp34
-rw-r--r--client/mainwindow.h5
-rw-r--r--restarter.workspace1
-rw-r--r--services/unix_exec_service/main.cpp3
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());
}
}