/**
|
/**
|
* @file
|
* @file
|
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
* @copyright Copyright 2016 GNSS Sensor Ltd. All right reserved.
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* @author Sergey Khabarov - sergeykhbr@gmail.com
|
* @brief Serial console emulator.
|
* @brief Serial console emulator.
|
*/
|
*/
|
|
|
#pragma once
|
#pragma once
|
|
|
#include "api_core.h" // MUST BE BEFORE QtWidgets.h or any other Qt header.
|
#include "api_core.h" // MUST BE BEFORE QtWidgets.h or any other Qt header.
|
#include "attribute.h"
|
#include "attribute.h"
|
#include "igui.h"
|
#include "igui.h"
|
#include "coreservices/irawlistener.h"
|
#include "coreservices/irawlistener.h"
|
#include "coreservices/iserial.h"
|
#include "coreservices/iserial.h"
|
|
|
#include "UartEditor.h"
|
#include "UartEditor.h"
|
#include <QtWidgets/QMdiArea>
|
#include <QtWidgets/QMdiArea>
|
#include <QtWidgets/QMdiSubWindow>
|
#include <QtWidgets/QMdiSubWindow>
|
#include <QtWidgets/QGridLayout>
|
#include <QtWidgets/QGridLayout>
|
#include <QtWidgets/QAction>
|
#include <QtWidgets/QAction>
|
#include <QtCore/QEvent>
|
#include <QtCore/QEvent>
|
|
|
namespace debugger {
|
namespace debugger {
|
|
|
class UartWidget : public QWidget {
|
class UartWidget : public QWidget {
|
Q_OBJECT
|
Q_OBJECT
|
public:
|
public:
|
UartWidget(IGui *igui, QWidget *parent);
|
UartWidget(IGui *igui, QWidget *parent);
|
|
|
signals:
|
|
void signalPostInit(AttributeType *cfg);
|
|
|
|
private slots:
|
|
void slotPostInit(AttributeType *cfg);
|
|
|
|
private:
|
private:
|
UartEditor *editor_;
|
UartEditor *editor_;
|
};
|
};
|
|
|
class UartQMdiSubWindow : public QMdiSubWindow {
|
class UartQMdiSubWindow : public QMdiSubWindow {
|
Q_OBJECT
|
Q_OBJECT
|
public:
|
public:
|
UartQMdiSubWindow(IGui *igui, QMdiArea *area, QWidget *parent,
|
UartQMdiSubWindow(IGui *igui, QMdiArea *area, QWidget *parent,
|
QAction *act = 0)
|
QAction *act = 0)
|
: QMdiSubWindow(parent) {
|
: QMdiSubWindow(parent) {
|
setAttribute(Qt::WA_DeleteOnClose);
|
setAttribute(Qt::WA_DeleteOnClose);
|
action_ = act;
|
action_ = act;
|
area_ = area;
|
area_ = area;
|
|
|
setWindowTitle(tr("uart0"));
|
setWindowTitle(tr("uart0"));
|
setMinimumWidth(parent->size().width() / 2);
|
setMinimumWidth(parent->size().width() / 2);
|
QWidget *pnew = new UartWidget(igui, this);
|
QWidget *pnew = new UartWidget(igui, this);
|
setWindowIcon(QIcon(tr(":/images/serial_96x96.png")));
|
setWindowIcon(QIcon(tr(":/images/serial_96x96.png")));
|
if (act) {
|
if (act) {
|
act->setChecked(true);
|
act->setChecked(true);
|
}
|
}
|
connect(parent, SIGNAL(signalPostInit(AttributeType *)),
|
|
pnew, SLOT(slotPostInit(AttributeType *)));
|
|
setWidget(pnew);
|
setWidget(pnew);
|
area_->addSubWindow(this);
|
area_->addSubWindow(this);
|
show();
|
show();
|
}
|
}
|
|
|
protected:
|
protected:
|
void closeEvent(QCloseEvent *event_) Q_DECL_OVERRIDE {
|
void closeEvent(QCloseEvent *event_) Q_DECL_OVERRIDE {
|
if (action_) {
|
if (action_) {
|
action_->setChecked(false);
|
action_->setChecked(false);
|
}
|
}
|
area_->removeSubWindow(this);
|
area_->removeSubWindow(this);
|
event_->accept();
|
event_->accept();
|
}
|
}
|
private:
|
private:
|
QAction *action_;
|
QAction *action_;
|
QMdiArea *area_;
|
QMdiArea *area_;
|
};
|
};
|
|
|
} // namespace debugger
|
} // namespace debugger
|
|
|