Repository navigation
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
122 lines (96 loc) · 3.95 KB
/
Copy pathmainwindow.cpp
File metadata and controls
122 lines (96 loc) · 3.95 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "settingsdialog.h"
#include "dataprovider.h"
#include <iostream>
#include <QMessageBox>
#include <QTabWidget>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//this->showMaximized();
this->setGeometry(QRect(100, 100, 600, 300));
// uncomment me for unripped tabs!!
QWidget* rippedOffTab = ui->tabWidget->currentWidget();
ui->tabWidget->removeTab(ui->tabWidget->currentIndex());
rippedOffTab->setParent(0);
rippedOffTab->setWindowFlags(Qt::Window);
rippedOffTab->setGeometry(QRect(100, 500, 600, 300));
rippedOffTab->show();
rippedOffTab = ui->tabWidget->currentWidget();
ui->tabWidget->removeTab(ui->tabWidget->currentIndex());
rippedOffTab->setParent(0);
rippedOffTab->setWindowFlags(Qt::Window);
rippedOffTab->setGeometry(QRect(800, 100, 600, 300));
rippedOffTab->show();
rippedOffTab = ui->tabWidget->currentWidget();
ui->tabWidget->removeTab(ui->tabWidget->currentIndex());
rippedOffTab->setParent(0);
rippedOffTab->setWindowFlags(Qt::Window);
rippedOffTab->setGeometry(QRect(800, 500, 600, 300));
rippedOffTab->show();
ui->serialTabWidget->setMainWindow(this);
ui->plotTabWidget->setMainWindow(this);
DataProvider::getInstance()->setMainWindow(this);
DataProvider::getInstance()->connectListener(); // TODO: move somewhere else !!
ui->actionConnect->setEnabled(true);
ui->actionDisconnect->setEnabled(false);
ui->actionLogOn->setEnabled(true);
ui->actionLogOff->setEnabled(false);
ui->actionQuit->setEnabled(true);
ui->actionPreferences->setEnabled(true);
connect(ui->actionConnect, SIGNAL(triggered()), DataProvider::getInstance(), SLOT(openSerialPort()));
connect(ui->actionDisconnect, SIGNAL(triggered()), DataProvider::getInstance(), SLOT(closeSerialPort()));
connect(ui->actionSaveAllPlots, SIGNAL(triggered()), DataProvider::getInstance(), SLOT(saveAllPlots()));
connect(ui->actionLogOn, SIGNAL(triggered()), this, SLOT(setLogOn()));
connect(ui->actionLogOff, SIGNAL(triggered()), this, SLOT(setLogOff()));
connect(ui->actionQuit, SIGNAL(triggered()), this, SLOT(close()));
connect(ui->actionClear, SIGNAL(triggered()), ui->serialTabWidget, SLOT(clear()));
connect(ui->actionPreferences, SIGNAL(triggered()), SettingsDialog::getInstance(), SLOT(show()));
connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about()));
connect(ui->actionAbout_Qt, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
this->showMessageStatusBar("Not connected to serial I/O-board.");
}
MainWindow::~MainWindow()
{
//TODO: delete (singleton) settings;
delete ui;
}
void MainWindow::showMessageStatusBar(const QString &text, int timeout)
{
::std::cout << text.toStdString() << ::std::endl;
this->ui->statusBar->showMessage(text, timeout);
}
void MainWindow::setEnabledConnect(bool enabled)
{
ui->actionConnect->setEnabled(enabled);
}
void MainWindow::setEnabledDisconnect(bool enabled)
{
ui->actionDisconnect->setEnabled(enabled);
}
void MainWindow::about()
{
QMessageBox::about(this, tr("About SpiNNingCerebellum"),
tr("This my friend is <b>top secret</b> !"));
}
void MainWindow::setLogOn()
{
::std::cout << "Turn on logging." << ::std::endl;
DataProvider::getInstance()->dbData->setBusRecord(true);
DataProvider::getInstance()->dbData->setControlRecord(true);
DataProvider::getInstance()->dbData->setSpikeRecord(true);
ui->actionLogOn->setEnabled(false);
ui->actionLogOff->setEnabled(true);
}
void MainWindow::setLogOff()
{
::std::cout << "Turn off logging." << ::std::endl;
DataProvider::getInstance()->dbData->setBusRecord(false);
DataProvider::getInstance()->dbData->setControlRecord(false);
DataProvider::getInstance()->dbData->setSpikeRecord(false);
ui->actionLogOff->setEnabled(false);
ui->actionLogOn->setEnabled(true);
}