loom

Форк
0
/
mechanoidPanelAdaptor.cpp 
185 строк · 5.0 Кб
1
#include "mechanoidPanelAdaptor.h"
2

3
mechanoidPanelAdaptor::mechanoidPanelAdaptor(shell::Access_interface & shell)
4
    : _shell(shell)
5
{
6
    // Создаем виджет и устанавливаем для него QGridLayout
7
    _widget = new QWidget();
8
    QGridLayout *layout = new QGridLayout(_widget); // Указываем родителя для layout
9

10
    // Создаем три виджета
11
    _mechanoid = new mechanoid();
12
    _logWidget = new LogWidget();
13
    _dataPanel = new DataPanel();
14

15
    // Установка минимального размера для каждого виджета
16
    _mechanoid->setMinimumSize(400, 400);
17
    _logWidget->setMinimumSize(300, 300);
18
    _dataPanel->setMinimumSize(300, 300);
19

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 находится в правом нижнем углу
24

25
    // Устанавливаем layout для _widget
26
    _widget->setLayout(layout);
27

28
    //_widget->installEventFilter(this);
29
}
30

31
mechanoidPanelAdaptor::~mechanoidPanelAdaptor()
32
{
33
}
34

35
QString mechanoidPanelAdaptor::title() const
36
{
37
    return _title;
38
}
39

40
void mechanoidPanelAdaptor::started() 
41
{
42
}
43

44
void mechanoidPanelAdaptor::paused() 
45
{
46
}
47

48
void mechanoidPanelAdaptor::stoped()
49
{
50
}
51

52
bool mechanoidPanelAdaptor::acceptData(const QString & func, QVector<QString> & data)
53
{
54
    if (func == "init" || func == "panel") {
55
        if (data.size() == 0 || data.size() % 3 != 0)
56
            return false;
57

58
        QVector<QString> lastThree = data.mid(data.size() - 3);
59

60
        _shell.setPanelTitle("Mechanoid", lastThree[0]);
61
        _shell.risePanel("Mechanoid", lastThree[0]);
62
        _mechanoid->handleInitialization(lastThree[1].toInt(), lastThree[2].toInt());
63

64
        return true;
65
    }
66

67
    if (func == "addSettings") {
68
        if (data.size() == 0 || data.size() % 4 != 0)
69
            return false;
70

71
        for (auto it = data.constBegin(); it != data.constEnd(); it += 4)
72
        {
73
            _mechanoid->handleAddSettings(*it, (it + 1)->toInt(), (it + 2)->toInt(), (it + 3)->toInt());
74
        }
75
        return true;
76
    }
77

78
    if (func == "addPoint") {
79
        if (data.size() == 0 || data.size() % 3 != 0)
80
            return false;
81

82
        for (auto it = data.constBegin(); it < data.constEnd(); it += 4)
83
        {
84
            _mechanoid->handleAddPoint(*it, (it + 1)->toFloat(), (it + 2)->toFloat());
85
        }
86
        return true;
87
    }
88

89
    if (func == "setPointSize") {
90
        if (data.size() == 0 || data.size() % 2 != 0)
91
            return false;
92

93
        for (auto it = data.constBegin(); it != data.constEnd(); it += 2)
94
        {
95
            _mechanoid->handleSetPointSize(*it, (it + 1)->toInt());
96
        }
97
        return true;
98
    }
99

100
    if (func == "removePoint") {
101
        if (data.size() == 0 || data.size() % 1 != 0)
102
            return false;
103

104
        for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
105
        {
106
            _mechanoid->handleRemovePoint(*it);
107
        }
108
        return true;
109
    }
110

111
    if (func == "enableLabelView") {
112
        if (data.size() == 0 || data.size() % 1 != 0)
113
            return false;
114

115
        for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
116
        {
117
            _mechanoid->handleEnableLabelView(*it);
118
        }
119
        return true;
120
    }
121

122
    if (func == "disableLabelView") {
123
        if (data.size() == 0 || data.size() % 1 != 0)
124
            return false;
125

126
        for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
127
        {
128
            _mechanoid->handleDisableLabelView(*it);
129
        }
130
        return true;
131
    }
132

133
    if (func == "sendLogMsg") {
134
        if (data.size() == 0 || data.size() % 1 != 0)
135
            return false;
136

137
        for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
138
        {
139
            _logWidget->addMessage(*it);
140
        }
141
        return true;
142
    }
143

144
    if (func == "clearLog") {
145

146
        _logWidget->clear();
147

148
        return true;
149
    }
150

151
    if (func == "addStatus") {
152
        if (data.size() == 0 || data.size() % 3 != 0)
153
            return false;
154

155
        for (auto it = data.constBegin(); it != data.constEnd(); it += 3)
156
        {
157
            _dataPanel->addStatus(*it, (it + 1)->toInt(), (it + 2)->toInt());
158
        }
159
        return true;
160
    }
161

162
    if (func == "updateStatus") {
163
        if (data.size() == 0 || data.size() % 3 != 0)
164
            return false;
165

166
        for (auto it = data.constBegin(); it != data.constEnd(); it += 3)
167
        {
168
            _dataPanel->updateStatus(*it, (it + 1)->toInt(), (it + 2)->toInt());
169
        }
170
        return true;
171
    }
172

173
    if (func == "deleteStatus") {
174
        if (data.size() == 0 || data.size() % 1 != 0)
175
            return false;
176

177
        for (auto it = data.constBegin(); it != data.constEnd(); it += 1)
178
        {
179
            _dataPanel->deleteStatus(*it);
180
        }
181
        return true;
182
    }
183

184
    return false;
185
}
186

187

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.