-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEncodingTab.cpp
More file actions
87 lines (63 loc) · 2.94 KB
/
EncodingTab.cpp
File metadata and controls
87 lines (63 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "EncodingHelper.h"
#include "TabHelper.h"
#include <qgridlayout.h>
#include <qlabel.h>
#include "EncodingTab.h"
EncodingTab::EncodingTab(QWidget *parent) : QWidget(parent) {}
void EncodingTab::addToTabWidget(QTabWidget* widget) {
// Create main layout for the encoding tab
encodingTab = new QWidget(this);
QVBoxLayout *encodingLayout = new QVBoxLayout(encodingTab); // Only one main layout for encodingTab
// Create a grid layout for the controls within the encoding tab
QGridLayout *gridLayout = new QGridLayout();
encodingLayout->addLayout(gridLayout); // Add grid layout to encodingLayout
// Left section controls
encodingTypeDropdown = makeDropdown();
encodingTypeDropdown->setCurrentIndex(4);
encoderInputField = new QLineEdit(this);
encoderInputField->setPlaceholderText("Input value...");
displayLabel = new QLabel(this);
// Add left section widgets to the grid layout
gridLayout->addWidget(encodingTypeDropdown, 0, 0);
gridLayout->addWidget(encoderInputField, 1, 0);
gridLayout->addWidget(displayLabel, 2, 0);
// Right section controls
outputEncodingDropdown = makeDropdown();
encoderOutputField = new QLineEdit(this);
encoderOutputField->setPlaceholderText("Output value...");
encoderOutputField->setReadOnly(true); // Make output field read-only
// Add right section widgets to the grid layout
gridLayout->addWidget(outputEncodingDropdown, 0, 1);
gridLayout->addWidget(encoderOutputField, 1, 1);
// Add the encoding tab to the main tab widget
widget->addTab(encodingTab, "Encoding");
connect(encodingTypeDropdown, &QComboBox::currentIndexChanged, this, &EncodingTab::handleInput);
connect(outputEncodingDropdown, &QComboBox::currentIndexChanged, this, &EncodingTab::handleInput);
connect(encoderInputField, &QLineEdit::textChanged, this, &EncodingTab::handleInput);
connect(encodingTypeDropdown, &QComboBox::currentIndexChanged, this, &EncodingTab::handleInput);
}
void EncodingTab::handleInput()
{
QString inputText = encoderInputField->text().toUpper();
EncodingType encoding;
EncodingType outputEncoding;
EncodingType calcFirstEnc;
EncodingType calcSecEnc;
encoding = getEncodingType(encodingTypeDropdown->currentIndex());
outputEncoding = getEncodingType(outputEncodingDropdown->currentIndex());
QString temp = inputText;
temp = temp.replace(" " , "");
if (encoding == AUTO){
encoding = getEncoding(temp);
}
int step = isValid(encoding, temp.trimmed());
//Encoding Tab Validation.
if (step != 0) {
encoderInputField->setStyleSheet("background-color: green;");
qDebug() << outputEncoding;
encoderOutputField->setText(encode(encoding, outputEncoding, inputText, step));
} else {
encoderInputField->setStyleSheet("background-color: red;");
displayLabel->setText("Invalid input for " + encodingTypeDropdown->currentText());
}
}