Resize plural test colums

Fixes #7
This commit is contained in:
Michael Mandl 2018-08-26 14:24:05 +02:00
parent ef959251b1
commit 96b367e877
4 changed files with 32 additions and 13 deletions

View file

@ -1,6 +1,7 @@
#include "CheckableTestModel.h" #include "CheckableTestModel.h"
#include <QJsonArray> #include <QJsonArray>
#include <QSize>
#include <QDebug> #include <QDebug>
CheckableTestModel::CheckableTestModel(QObject *parent) CheckableTestModel::CheckableTestModel(QObject *parent)
@ -8,12 +9,12 @@ CheckableTestModel::CheckableTestModel(QObject *parent)
{ {
} }
int CheckableTestModel::rowCount(const QModelIndex &parent) const int CheckableTestModel::rowCount(const QModelIndex &) const
{ {
return static_cast<int>(m_tests.size()); return static_cast<int>(m_tests.size());
} }
int CheckableTestModel::columnCount(const QModelIndex &parent) const int CheckableTestModel::columnCount(const QModelIndex &) const
{ {
int columnCount = 0; int columnCount = 0;
@ -36,15 +37,17 @@ QVariant CheckableTestModel::data(const QModelIndex &index, int role) const
{ {
auto &item = getItem(index); auto &item = getItem(index);
if (role == Qt::DisplayRole) switch (role)
{ {
return item.getText().c_str(); case Qt::DisplayRole:
} {
return item.getText().c_str();
if (role == Qt::CheckStateRole) }
{ case Qt::CheckStateRole:
return item.isChecked() ? Qt::Checked : Qt::Unchecked; {
} return item.isChecked() ? Qt::Checked : Qt::Unchecked;
}
}
} }
catch (std::runtime_error &e) catch (std::runtime_error &e)
{ {
@ -101,7 +104,7 @@ QVariant CheckableTestModel::headerData(
} }
} }
return {}; return QAbstractTableModel::headerData(section, orientation, role);
} }
void CheckableTestModel::write(QJsonObject &json) const void CheckableTestModel::write(QJsonObject &json) const

View file

@ -1,10 +1,22 @@
#include "PluralModel.h" #include "PluralModel.h"
#include <QSize>
PluralModel::PluralModel(QObject *parent) PluralModel::PluralModel(QObject *parent)
: CheckableTestModel(parent) : CheckableTestModel(parent)
{ {
m_tests = { { "", m_tests = { { "",
{ "Fisch /-e/", "Banane /-n/", "Bonbon /-s/", "Ei /-er/", "Eimer /-ø/", { "Fisch /-e/", "Banane /-n/", "Bonbon /-s/", "Ei /-er/", "Eimer /-ø/",
"Korn UML+/-er/", "Nuss UML+/-e/", "Bär /-en/", "Apfel UML" } } }; "Korn UML+/-er/", "Nuss UML+/-e/", "Bär /-en/", "Apfel UML" } } };
}
QVariant PluralModel::data(const QModelIndex &index, int role) const
{
if (role == Qt::SizeHintRole)
{
return QSize(180, 0);
}
return CheckableTestModel::data(index, role);
} }

View file

@ -8,4 +8,7 @@ class PluralModel : public CheckableTestModel
public: public:
PluralModel(QObject *parent); PluralModel(QObject *parent);
QVariant data(
const QModelIndex &index, int role = Qt::DisplayRole) const override;
}; };

View file

@ -18,4 +18,5 @@ PluralWidget::~PluralWidget()
void PluralWidget::setModel(PluralModel *model) void PluralWidget::setModel(PluralModel *model)
{ {
ui->pluralTableView->setModel(model); ui->pluralTableView->setModel(model);
ui->pluralTableView->resizeColumnsToContents();
} }