#include "DNSettingsImpl.h"
const char *DNSettings::CONTEXT_PATH = "content_path";
-const char *DNSettings::WINDOWLAYOUT_DOCK = "windowlayout_dock";
-
+const char *DNSettings::WINDOWLAYOUT = "windowlayout";
const char *DNSettings::SERIAL_PORTNAME = "serial portName";
const char *DNSettings::SERIAL_RATE = "serial rate";
const char *DNSettings::SERIAL_DATABITS = "serial databits";
TKLog::setDestination(this);
connect(this, SIGNAL(consoleUpdated()), this, SLOT(update()), Qt::AutoConnection);
- std::string area = DNSettings::getValue(DNSettings::WINDOWLAYOUT_DOCK, "B");
- if (area == "B")
- {
- addDockWidget(Qt::BottomDockWidgetArea, ui->dockWidget_3);
- }
- else if (area == "L")
- {
- addDockWidget(Qt::LeftDockWidgetArea, ui->dockWidget_3);
- }
- else if (area == "R")
- {
- addDockWidget(Qt::RightDockWidgetArea, ui->dockWidget_3);
- }
- else if (area == "T")
- {
- addDockWidget(Qt::TopDockWidgetArea, ui->dockWidget_3);
- }
- else if (area == "F")
- {
- ui->dockWidget_3->setFloating(true);
- }
+ std::string savedWindowStateStr = DNSettings::getValue(DNSettings::WINDOWLAYOUT,"");
+ QByteArray savedWindowStateQArray(savedWindowStateStr.c_str());
+ restoreState(QByteArray::fromHex(savedWindowStateQArray));
}
MainWindow::~MainWindow()
{
- std::string areaStr = "B";
- if (ui->dockWidget_3->isFloating())
- {
- areaStr = "F";
- }
- else
- {
- Qt::DockWidgetArea area = dockWidgetArea(ui->dockWidget_3);
- switch (area)
- {
- case Qt::BottomDockWidgetArea:
- areaStr = "B";
- break;
-
- case Qt::LeftDockWidgetArea:
- areaStr = "L";
- break;
- case Qt::RightDockWidgetArea:
- areaStr = "R";
- break;
- case Qt::TopDockWidgetArea:
- areaStr = "T";
- break;
- default:
- areaStr = "B";
- break;
- }
- }
- DNSettings::setValue(DNSettings::WINDOWLAYOUT_DOCK, areaStr);
-
instance = 0;
delete ui;
}
void MainWindow::closeEvent(QCloseEvent *event)
{
+ QByteArray savingWindowStateQArray = saveState().toHex();
+ DNSettings::setValue(DNSettings::WINDOWLAYOUT, savingWindowStateQArray.constData());
+
stopEngine();
deleteCurrentEngine();
QMainWindow::closeEvent(event);