/**************************************************************************** ** ** Copyright (C) 2012 Denis Shienkov ** Copyright (C) 2012 Laszlo Papp ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtSerialPort module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. For licensing terms and ** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 or version 3 as published by the Free ** Software Foundation and appearing in the file LICENSE.LGPLv21 and ** LICENSE.LGPLv3 included in the packaging of this file. Please review the ** following information to ensure the GNU Lesser General Public License ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional ** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "mainwindow.h" #include "ui_mainwindow.h" #include "console.h" #include "settingsdialog.h" #include //! [0] MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { //! [0] ui->setupUi(this); console = new Console; console->setEnabled(false); setCentralWidget(console); //! [1] //! [1] settings = new SettingsDialog; ui->actionConnect->setEnabled(true); ui->actionDisconnect->setEnabled(false); ui->actionQuit->setEnabled(true); ui->actionConfigure->setEnabled(true); initActionsConnections(); ///! [2] connect(console, &Console::getData, this, &MainWindow::writeData); //! [3] } //! [3] MainWindow::~MainWindow() { delete settings; delete ui; } //! [4] void MainWindow::startYAP (YAPEngine *&eng) { SettingsDialog::Settings p = settings->settings(); eng = new YAPEngine( ); //return eng != nullptr; } //! [4] //! [5] void MainWindow::stopYAP(YAPEngine *eng) { delete eng; } //! [5] void MainWindow::about() { QMessageBox::about(this, tr("About Simple Terminal"), tr("The Simple Terminal example demonstrates how to " "use the Qt Serial Port module in modern GUI applications " "using Qt, with a menu bar, toolbars, and a status bar.")); } //! [6] void MainWindow::writeData(const QString &data) { //serial->write(data); } //! [6] //! [7] void MainWindow::readData() { //QByteArray data = serial->readAll(); //console->putData(data); } //! [7] //! [8] void MainWindow::handleError(YAPError error) { if (error.get() == SYNTAX_ERROR) { QMessageBox::StandardButton reply; reply = QMessageBox::question(this, tr("Syntax Error"), "Quit?", QMessageBox::Yes|QMessageBox::No); if (reply == QMessageBox::Yes) { stopYAP(eng); } } } //! [8] void MainWindow::initActionsConnections() { connect(ui->actionConnect, SIGNAL(triggered()), this, SLOT(openSerialPort())); connect(ui->actionDisconnect, SIGNAL(triggered()), this, SLOT(closeSerialPort())); connect(ui->actionQuit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->actionConfigure, SIGNAL(triggered()), settings, SLOT(show())); connect(ui->actionClear, SIGNAL(triggered()), console, SLOT(clear())); connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about())); connect(ui->actionAboutQt, SIGNAL(triggered()), qApp, SLOT(aboutQt())); }