7,28 → 7,7 |
centralWidget = new QWidget(); |
setCentralWidget(centralWidget); |
|
// Serial data UI |
groupSerialData = new QGroupBox("Data"); |
textSerialData = new QTextEdit(); |
textSerialData->setCurrentFont(QFont("Consolas", 8)); |
textSerialData->append("Waiting for serial connection..."); |
textSerialData->setMinimumHeight(100); |
textSerialData->setReadOnly(true); |
textSerialTransmit = new QLineEdit(); |
textSerialTransmit->setFont(QFont("Consolas", 8)); |
btnSerialTransmit = new QPushButton("&Send"); |
btnSerialClear = new QPushButton("Clear"); |
|
QHBoxLayout *serialTransmitLayout = new QHBoxLayout(); |
serialTransmitLayout->addWidget(textSerialTransmit); |
serialTransmitLayout->addWidget(btnSerialTransmit); |
serialTransmitLayout->addWidget(btnSerialClear); |
QVBoxLayout *serialDataLayout = new QVBoxLayout(); |
serialDataLayout->addWidget(textSerialData); |
serialDataLayout->addLayout(serialTransmitLayout); |
groupSerialData->setLayout(serialDataLayout); |
|
// Macro controller |
// Misc button group |
groupMacro = new QGroupBox("Other"); |
btnMacro = new QPushButton("&Macros"); |
QHBoxLayout *macroLayout = new QHBoxLayout(); |
35,30 → 14,39 |
macroLayout->addWidget(btnMacro); |
groupMacro->setLayout(macroLayout); |
|
// Initialize serial controller |
serialController = new SerialController(); |
// Initialize serial widget |
serialInitWidget = new SerialWidget(); |
groupSerialInit = new QGroupBox("Serial Connection"); |
QGridLayout *serialInitLayout = new QGridLayout(); |
serialInitLayout->setContentsMargins(0, 0, 0, 0); |
serialInitLayout->addWidget(serialController); |
serialInitLayout->addWidget(serialInitWidget); |
groupSerialInit->setLayout(serialInitLayout); |
connect(serialController, SIGNAL(UpdateStatus(QString)), this, SLOT(UpdateSerialStatus(QString))); |
connect(serialInitWidget, SIGNAL(UpdateStatus(QString)), this, SLOT(UpdateSerialStatus(QString))); |
|
// Initialize macro controller |
// Initialize data widget |
textIOWidget = new TextIOWidget(); |
groupSerialData = new QGroupBox("Data"); |
QGridLayout *serialDataLayout = new QGridLayout(); |
serialDataLayout->setContentsMargins(0, 0, 0, 0); |
serialDataLayout->addWidget(textIOWidget); |
groupSerialData->setLayout(serialDataLayout); |
connect(serialInitWidget, SIGNAL(Serial_ReceivedByte(char)), textIOWidget, SLOT(Serial_ReceivedByte(char))); |
connect(serialInitWidget, SIGNAL(Serial_Connected()), textIOWidget, SLOT(Serial_EnableTransmit())); |
connect(serialInitWidget, SIGNAL(Serial_Disconnected()), textIOWidget, SLOT(Serial_DisableTransmit())); |
connect(textIOWidget, SIGNAL(Serial_TransmitByteArray(QByteArray)), serialInitWidget, SIGNAL(Serial_TransmitByteArray(QByteArray))); |
|
// Initialize macro widget |
macroDockWidget = new QDockWidget("Macro Controller", this); |
macroController = new MacroController(macroDockWidget); |
macroDockWidget->setWidget(macroController); |
macroWidget = new MacroWidget(macroDockWidget); |
macroDockWidget->setWidget(macroWidget); |
macroDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); |
macroDockWidget->hide(); |
addDockWidget(Qt::RightDockWidgetArea, macroDockWidget); |
connect(macroController, SIGNAL(Macro_TransmitText(QString)), this, SLOT(Serial_PrepareTransmit(QString))); |
connect(serialController, SIGNAL(Serial_Connected()), macroController, SLOT(Macro_EnableTransmit())); |
connect(serialController, SIGNAL(Serial_Disconnected()), macroController, SLOT(Macro_DisableTransmit())); |
connect(macroWidget, SIGNAL(Macro_TransmitText(QByteArray)), textIOWidget, SLOT(Serial_PrepareTransmit(QByteArray))); |
connect(serialInitWidget, SIGNAL(Serial_Connected()), macroWidget, SLOT(Macro_EnableTransmit())); |
connect(serialInitWidget, SIGNAL(Serial_Disconnected()), macroWidget, SLOT(Macro_DisableTransmit())); |
|
// Connect local widgets |
connect(btnSerialTransmit, SIGNAL(clicked()), this, SLOT(Serial_PrepareTransmit())); |
connect(textSerialTransmit, SIGNAL(returnPressed()), btnSerialTransmit, SIGNAL(clicked())); |
connect(btnSerialClear, SIGNAL(clicked()), this, SLOT(Serial_ClearBtn())); |
connect(btnMacro, SIGNAL(clicked()), macroDockWidget->toggleViewAction(), SLOT(trigger())); |
|
// Main layout |
73,7 → 61,7 |
setWindowTitle("Marlin Controller"); |
setWindowIcon(QIcon(":/External/Resources/Icon_16.bmp")); |
|
labelSerialStatus = new QLabel("Serial: Disconnected"); |
labelSerialStatus = new QLabel("Disconnected"); |
statusBar()->addPermanentWidget(labelSerialStatus); |
} |
|
82,32 → 70,6 |
|
} |
|
void MainWindow::Serial_PrepareTransmit(QString string) |
{ |
if (string == "") { |
string = textSerialTransmit->text(); |
textSerialTransmit->setText(""); |
} |
emit Serial_TransmitString(string); |
textSerialData->setTextColor(Qt::darkBlue); |
|
QStringList cmds = string.split('\n'); |
for (int i = 0; i < cmds.size(); i++) { |
textSerialData->append("TX: " + cmds[i]); |
} |
} |
|
void MainWindow::Serial_ClearBtn() |
{ |
textSerialData->clear(); |
} |
|
void MainWindow::Serial_ReceivedString(QString string) |
{ |
textSerialData->setTextColor(Qt::darkRed); |
textSerialData->append("RX: " + string); |
} |
|
void MainWindow::UpdateStatus(QString string) |
{ |
statusBar()->showMessage(string, STATUS_TIMEOUT_MS); |