1
#include "mechanoidPanelAdaptor.h"
3
mechanoidPanelAdaptor::mechanoidPanelAdaptor(shell::Access_interface & shell)
6
// Создаем виджет и устанавливаем для него QGridLayout
7
_widget = new QWidget();
8
QGridLayout *layout = new QGridLayout(_widget); // Указываем родителя для layout
10
// Создаем три виджета
11
_mechanoid = new mechanoid();
12
_logWidget = new LogWidget();
13
_dataPanel = new DataPanel();
15
// Установка минимального размера для каждого виджета
16
_mechanoid->setMinimumSize(400, 400);
17
_logWidget->setMinimumSize(300, 300);
18
_dataPanel->setMinimumSize(300, 300);
20
// Добавляем виджеты в сетку
21
layout->addWidget(_mechanoid, 0, 0, 2, 3); // виджет 1 занимает 2 строки и 3 столбца
22
layout->addWidget(_logWidget, 0, 3); // виджет 2 находится в правом верхнем углу
23
layout->addWidget(_dataPanel, 1, 3); // виджет 3 находится в правом нижнем углу
25
// Устанавливаем layout для _widget
26
_widget->setLayout(layout);
28
//_widget->installEventFilter(this);
31
mechanoidPanelAdaptor::~mechanoidPanelAdaptor()
35
QString mechanoidPanelAdaptor::title() const
40
void mechanoidPanelAdaptor::started()
44
void mechanoidPanelAdaptor::paused()
48
void mechanoidPanelAdaptor::stoped()
52
bool mechanoidPanelAdaptor::acceptData(const QString & func, QVector<QString> & data)
54
if (func == "init" || func == "panel") {
55
if (data.size() == 0 || data.size() % 3 != 0)
58
QVector<QString> lastThree = data.mid(data.size() - 3);
60
_shell.setPanelTitle("Mechanoid", lastThree[0]);
61
_shell.risePanel("Mechanoid", lastThree[0]);
62
_mechanoid->handleInitialization(lastThree[1].toInt(), lastThree[2].toInt());
67
if (func == "addSettings") {
68
if (data.size() == 0 || data.size() % 4 != 0)
71
for (auto it = data.constBegin(); it != data.constEnd(); it += 4)
73
_mechanoid->handleAddSettings(*it, (it + 1)->toInt(), (it + 2)->toInt(), (it + 3)->toInt());
78
if (func == "addPoint") {
79
if (data.size() == 0 || data.size() % 3 != 0)
82
for (auto it = data.constBegin(); it < data.constEnd(); it += 4)
84
_mechanoid->handleAddPoint(*it, (it + 1)->toFloat(), (it + 2)->toFloat());
89
if (func == "setPointSize") {
90
if (data.size() == 0 || data.size() % 2 != 0)
93
for (auto it = data.constBegin(); it != data.constEnd(); it += 2)
95
_mechanoid->handleSetPointSize(*it, (it + 1)->toInt());
100
if (func == "removePoint") {
101
if (data.size() == 0 || data.size() % 1 != 0)
104
for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
106
_mechanoid->handleRemovePoint(*it);
111
if (func == "enableLabelView") {
112
if (data.size() == 0 || data.size() % 1 != 0)
115
for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
117
_mechanoid->handleEnableLabelView(*it);
122
if (func == "disableLabelView") {
123
if (data.size() == 0 || data.size() % 1 != 0)
126
for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
128
_mechanoid->handleDisableLabelView(*it);
133
if (func == "sendLogMsg") {
134
if (data.size() == 0 || data.size() % 1 != 0)
137
for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
139
_logWidget->addMessage(*it);
144
if (func == "clearLog") {
151
if (func == "addStatus") {
152
if (data.size() == 0 || data.size() % 3 != 0)
155
for (auto it = data.constBegin(); it != data.constEnd(); it += 3)
157
_dataPanel->addStatus(*it, (it + 1)->toInt(), (it + 2)->toInt());
162
if (func == "updateStatus") {
163
if (data.size() == 0 || data.size() % 3 != 0)
166
for (auto it = data.constBegin(); it != data.constEnd(); it += 3)
168
_dataPanel->updateStatus(*it, (it + 1)->toInt(), (it + 2)->toInt());
173
if (func == "deleteStatus") {
174
if (data.size() == 0 || data.size() % 1 != 0)
177
for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
179
_dataPanel->deleteStatus(*it);