Added more command areas for extra hacking
This commit is contained in:
53
main.cpp
53
main.cpp
@@ -1,5 +1,7 @@
|
|||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QButtonGroup>
|
#include <QButtonGroup>
|
||||||
|
#include <QFont>
|
||||||
|
#include <QGridLayout>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QHash>
|
#include <QHash>
|
||||||
@@ -242,30 +244,43 @@ static QWidget *makeSettingsTab(WebSocketController *ctrl, QWidget *parent)
|
|||||||
|
|
||||||
static QWidget *makeManualTab(WebSocketController *ctrl, QWidget *parent)
|
static QWidget *makeManualTab(WebSocketController *ctrl, QWidget *parent)
|
||||||
{
|
{
|
||||||
auto *page = new QWidget(parent);
|
auto *page = new QWidget(parent);
|
||||||
auto *layout = new QVBoxLayout(page);
|
auto *layout = new QVBoxLayout(page);
|
||||||
auto *row = new QHBoxLayout();
|
layout->setContentsMargins(2, 2, 2, 2);
|
||||||
auto *cmdEdit = new QLineEdit(page);
|
layout->setSpacing(4);
|
||||||
cmdEdit->setPlaceholderText("Enter command to send...");
|
|
||||||
auto *sendBtn = new QPushButton("Send", page);
|
// 4 independent command input boxes (Enter to send, no Send button)
|
||||||
auto *clearBtn = new QPushButton("Clear", page);
|
const QStringList placeholders = {
|
||||||
row->addWidget(new QLabel("Command:", page));
|
"Command 1...",
|
||||||
row->addWidget(cmdEdit, 1);
|
"Command 2...",
|
||||||
row->addWidget(sendBtn);
|
"Command 3...",
|
||||||
row->addWidget(clearBtn);
|
"Command 4...",
|
||||||
|
};
|
||||||
|
auto *inputGrid = new QGridLayout();
|
||||||
|
inputGrid->setSpacing(4);
|
||||||
|
for (int i = 0; i < 4; ++i) {
|
||||||
|
auto *edit = new QLineEdit(page);
|
||||||
|
edit->setPlaceholderText(placeholders[i]);
|
||||||
|
edit->setFont(QFont("Courier", 10));
|
||||||
|
inputGrid->addWidget(edit, i / 2, i % 2);
|
||||||
|
QObject::connect(edit, &QLineEdit::returnPressed, page, [edit, ctrl]() {
|
||||||
|
const QString cmd = edit->text().trimmed();
|
||||||
|
if (!cmd.isEmpty()) { ctrl->sendCommand(cmd); edit->clear(); }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
layout->addLayout(inputGrid);
|
||||||
|
|
||||||
|
// Log view + clear button
|
||||||
|
auto *clearBtn = new QPushButton("Clear Log", page);
|
||||||
|
clearBtn->setMaximumWidth(100);
|
||||||
auto *log = new QTextEdit(page);
|
auto *log = new QTextEdit(page);
|
||||||
log->setReadOnly(true);
|
log->setReadOnly(true);
|
||||||
layout->addLayout(row);
|
log->setFont(QFont("Courier", 9));
|
||||||
layout->addWidget(log, 1);
|
layout->addWidget(log, 1);
|
||||||
|
layout->addWidget(clearBtn);
|
||||||
ctrl->addLogView(log);
|
ctrl->addLogView(log);
|
||||||
|
|
||||||
auto send = [cmdEdit, ctrl]() {
|
QObject::connect(clearBtn, &QPushButton::clicked, log, &QTextEdit::clear);
|
||||||
const QString cmd = cmdEdit->text().trimmed();
|
|
||||||
if (!cmd.isEmpty()) { ctrl->sendCommand(cmd); cmdEdit->clear(); }
|
|
||||||
};
|
|
||||||
QObject::connect(sendBtn, &QPushButton::clicked, page, send);
|
|
||||||
QObject::connect(cmdEdit, &QLineEdit::returnPressed, page, send);
|
|
||||||
QObject::connect(clearBtn, &QPushButton::clicked, log, &QTextEdit::clear);
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user