Skip to content

Commit 45c636a

Browse files
committed
Developing 1-based/0-based address switch
1 parent ec2f211 commit 45c636a

2 files changed

Lines changed: 75 additions & 0 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include "addressbasecombobox.h"
2+
3+
///
4+
/// \brief AddressBaseComboBox::AddressBaseComboBox
5+
/// \param parent
6+
///
7+
AddressBaseComboBox::AddressBaseComboBox(QWidget* parent)
8+
: QComboBox(parent)
9+
{
10+
addItem(tr("0-based"), QVariant::fromValue(AddressBase::Base0));
11+
addItem(tr("1-based"), QVariant::fromValue(AddressBase::Base1));
12+
13+
connect(this, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &AddressBaseComboBox::on_currentIndexChanged);
14+
}
15+
16+
///
17+
/// \brief AddressBaseComboBox::currentAddressBase
18+
/// \return
19+
///
20+
AddressBase AddressBaseComboBox::currentAddressBase() const
21+
{
22+
return currentData().value<AddressBase>();
23+
}
24+
25+
///
26+
/// \brief AddressBaseComboBox::setCurrentAddressBase
27+
/// \param pointType
28+
///
29+
void AddressBaseComboBox::setCurrentAddressBase(AddressBase base)
30+
{
31+
const auto idx = findData(QVariant::fromValue(base));
32+
if(idx == currentIndex())
33+
{
34+
emit currentIndexChanged(idx);
35+
}
36+
else if(idx != -1)
37+
{
38+
setCurrentIndex(idx);
39+
}
40+
}
41+
42+
///
43+
/// \brief AddressBaseComboBox::on_currentIndexChanged
44+
/// \param index
45+
///
46+
void AddressBaseComboBox::on_currentIndexChanged(int index)
47+
{
48+
emit addressBaseChanged(itemData(index).value<AddressBase>());
49+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#ifndef ADDRESSBASECOMBOBOX_H
2+
#define ADDRESSBASECOMBOBOX_H
3+
4+
#include <QComboBox>
5+
#include "enums.h"
6+
7+
///
8+
/// \brief The AddressBaseComboBox class
9+
///
10+
class AddressBaseComboBox : public QComboBox
11+
{
12+
Q_OBJECT
13+
public:
14+
explicit AddressBaseComboBox(QWidget *parent = nullptr);
15+
16+
AddressBase currentAddressBase() const;
17+
void setCurrentAddressBase(AddressBase base);
18+
19+
signals:
20+
void addressBaseChanged(AddressBase base);
21+
22+
private slots:
23+
void on_currentIndexChanged(int);
24+
};
25+
26+
#endif // ADDRESSBASECOMBOBOX_H

0 commit comments

Comments
 (0)