configurable data view modes
This commit is contained in:
parent
31108b7499
commit
f9c01e5ad3
|
@ -1,5 +1,8 @@
|
|||
#include "universemodel.h"
|
||||
|
||||
#include <QFont>
|
||||
#include <QChar>
|
||||
#include <QMetaEnum>
|
||||
|
||||
/**
|
||||
* @brief UniverseModel::UniverseModel
|
||||
|
@ -83,7 +86,20 @@ QVariant UniverseModel::data(const QModelIndex &index, int role) const
|
|||
return QVariant();
|
||||
if (slot > 512)
|
||||
return QVariant();
|
||||
return universe_->value(slot);
|
||||
switch (data_mode_) {
|
||||
case Decimal:
|
||||
return universe_->value(slot);
|
||||
break;
|
||||
case Hex:
|
||||
return QString("%1")
|
||||
.arg(universe_->value(slot), 2, 16, QChar('0'))
|
||||
.toUpper();
|
||||
break;
|
||||
case Percent:
|
||||
return QString("%1%").arg((universe_->value(slot) / 255.0F) * 100,
|
||||
0, 'f', 0, '0');
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Qt::FontRole:
|
||||
|
@ -149,6 +165,18 @@ void UniverseModel::universeRefreshed() {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief UniverseModel::setDataMode
|
||||
* @param mode
|
||||
*/
|
||||
void UniverseModel::setDataMode(const QString mode)
|
||||
{
|
||||
auto&& metaEnum = QMetaEnum::fromType<data_modes>();
|
||||
data_mode_ = static_cast<data_modes>(metaEnum.keyToValue(mode.toLocal8Bit())); emit dataChanged(index(0,0), index(rowCount(), columnCount()));
|
||||
emit dataChanged(index(0,0), index(rowCount(), columnCount()));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief UniverseModel::setUniverse
|
||||
* @param universe
|
||||
|
|
|
@ -8,6 +8,13 @@ class UniverseModel : public QAbstractTableModel
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum data_modes {
|
||||
Decimal,
|
||||
Hex,
|
||||
Percent
|
||||
};
|
||||
Q_ENUM(data_modes)
|
||||
|
||||
explicit UniverseModel(QObject *parent = nullptr);
|
||||
|
||||
// Header:
|
||||
|
@ -25,15 +32,19 @@ public:
|
|||
|
||||
Qt::ItemFlags flags(const QModelIndex& index) const override;
|
||||
|
||||
// Data source:
|
||||
void setUniverse(QSacnUniverse *universe);
|
||||
QSacnUniverse * universe() const { return universe_; }
|
||||
const data_modes dataMode() { return data_mode_; }
|
||||
|
||||
signals:
|
||||
void recievedUpdate(const QSacnUniverse*);
|
||||
|
||||
public slots:
|
||||
void universeRefreshed();
|
||||
void setDataMode(const QString mode);
|
||||
|
||||
private:
|
||||
QSacnUniverse * universe_ = nullptr;
|
||||
data_modes data_mode_ = Decimal;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue