-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetupwidget.cpp
109 lines (93 loc) · 4 KB
/
setupwidget.cpp
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
/***************************************************************************
setupwidget.cpp - description
-------------------
begin : april 2020
copyright : (C) 2020 by Jaime Robles
email : [email protected]
***************************************************************************/
/*****************************************************************************
* This file is part of KMeter. *
* *
* KMeter is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* KMeter is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with KMeter. If not, see <https://www.gnu.org/licenses/>. *
* *
*****************************************************************************/
#include "setupwidget.h"
SetupWidget::SetupWidget(QWidget *parent) : QWidget(parent)
{
qDebug() << "SetupWidget::SetupWidget" << endl;
scanSerialPortButton = new QPushButton(tr("Scan"));
serialPortComboBox = new QComboBox;
okButton = new QPushButton(tr("OK"));
cancelButton = new QPushButton(tr("Cancel"));
createUI();
qDebug() << "SetupWidget::SetupWidget-END" << endl;
}
//void portSelectedSignal(QString);
void SetupWidget::createUI()
{
qDebug() << "SetupWidget::createUI" << endl;
QHBoxLayout * buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(okButton);
buttonLayout->addWidget(cancelButton);
QGridLayout *layout = new QGridLayout;
layout->addWidget(scanSerialPortButton, 0, 0);
layout->addWidget(serialPortComboBox, 0, 1);
layout->addLayout(buttonLayout, 1, 1);
setLayout(layout);
connect (scanSerialPortButton, SIGNAL(clicked()), SLOT(slotScanPorts()));
connect (okButton, SIGNAL(clicked()), SLOT(slotOKButtonClicked()));
connect (cancelButton, SIGNAL(clicked()), SLOT(slotCancelButtonClicked()));
qDebug() << "SetupWidget::createUI-END" << endl;
}
void SetupWidget::slotOKButtonClicked()
{
emit portSelectedSignal(serialPortComboBox->currentText());
qDebug() << "SetupWidget::slotOKButtonClicked: " << serialPortComboBox->currentText() << endl;
close();
}
void SetupWidget::slotCancelButtonClicked()
{
close();
}
void SetupWidget::slotScanPorts()
{
//qDebug() << "MainWindow::slotScanPorts" << endl;
fillSerialPortsComboBox();
}
void SetupWidget::fillSerialPortsComboBox()
{
//qDebug() << "MainWindow::fillSerialPortsComboBox" << endl;
serialPortComboBox->clear();
serialPortComboBox->addItems(getAvailableSerialPorts());
}
QStringList SetupWidget::getAvailableSerialPorts()
{
//qDebug() << "MainWindow::getAvailableSerialPorts" << endl;
QStringList st;
st.clear();
const auto infos = QSerialPortInfo::availablePorts();
for (const QSerialPortInfo &info : infos)
{
//st << info.portName();
//qDebug() << "MainWindow::getAvailableSerialPorts: " << info.systemLocation() << endl;
st << info.systemLocation();
}
st.sort();
return st;
}
void SetupWidget::showEvent(QShowEvent *event)
{
QWidget::showEvent(event);
fillSerialPortsComboBox();
}