From 1f9a051382cce4229f94ee8c6771ba54d5d15d97 Mon Sep 17 00:00:00 2001 From: Michael Mandl Date: Wed, 6 Jun 2018 18:05:30 +0200 Subject: [PATCH] added result model --- source/DataModel.cpp | 1 + source/DataModel.h | 4 ++ source/ResultWidget/CMakeLists.txt | 2 +- source/ResultWidget/ResultModel.cpp | 61 ++++++++++++++++++++++++++++ source/ResultWidget/ResultModel.h | 41 +++++++++++++++++++ source/ResultWidget/ResultWidget.cpp | 7 ++++ source/ResultWidget/ResultWidget.h | 4 ++ source/ResultWidget/ResultWidget.ui | 6 ++- source/mainwindow.cpp | 1 + source/mainwindow.ui | 25 ++++++++++-- 10 files changed, 146 insertions(+), 6 deletions(-) create mode 100644 source/ResultWidget/ResultModel.cpp create mode 100644 source/ResultWidget/ResultModel.h diff --git a/source/DataModel.cpp b/source/DataModel.cpp index b53bc6d..ef2ba72 100644 --- a/source/DataModel.cpp +++ b/source/DataModel.cpp @@ -6,6 +6,7 @@ DataModel::DataModel(QObject *parent) , m_verbEnd(this) , m_genus(this) , m_plural(this) + , m_results(this) { } diff --git a/source/DataModel.h b/source/DataModel.h index 5ec045b..a7737a2 100644 --- a/source/DataModel.h +++ b/source/DataModel.h @@ -5,6 +5,8 @@ #include "VerbEndModel.h" #include "PluralModel.h" +#include "ResultModel.h" + #include class DataModel : public QObject @@ -17,6 +19,8 @@ public: GenusModel m_genus; PluralModel m_plural; + ResultModel m_results; + public: DataModel(QObject *parent); diff --git a/source/ResultWidget/CMakeLists.txt b/source/ResultWidget/CMakeLists.txt index a61e2de..f401415 100644 --- a/source/ResultWidget/CMakeLists.txt +++ b/source/ResultWidget/CMakeLists.txt @@ -12,7 +12,7 @@ qt5_wrap_ui(GENUS_UI add_library(${PROJECT_NAME} ResultWidget.cpp - #ResultModel.cpp + ResultModel.cpp ${GENUS_UI} ) diff --git a/source/ResultWidget/ResultModel.cpp b/source/ResultWidget/ResultModel.cpp new file mode 100644 index 0000000..3b997b4 --- /dev/null +++ b/source/ResultWidget/ResultModel.cpp @@ -0,0 +1,61 @@ +#include "ResultModel.h" + +#include + +ResultModel::ResultModel(QObject *parent) + : QAbstractTableModel(parent) +{ + m_results = {{ "V2", "SVK", "VE", "Passiv", "Genus", "Akkusativ", "Dativ", "Genitiv", "Plural" }}; +} + +int ResultModel::rowCount(const QModelIndex &parent) const +{ + return 3; +} + +int ResultModel::columnCount(const QModelIndex &parent) const +{ + return 9; +} + +QVariant ResultModel::data(const QModelIndex &index, int role) const +{ + if (role == Qt::DisplayRole) + { + return "data"; + } + + return {}; +} + +QVariant ResultModel::headerData( + int section, Qt::Orientation orientation, int role) const +{ + if (role != Qt::DisplayRole) + { + return {}; + } + + switch (orientation) + { + case Qt::Horizontal: + if (m_results.size() > section) + { + return m_results[section].name(); + } + case Qt::Vertical: + switch (section) + { + case 0: + return ">= PR 84"; + case 1: + return "< PR 84"; + case 2: + return "<= PR 16"; + default: + return {}; + } + default: + return {}; + } +} diff --git a/source/ResultWidget/ResultModel.h b/source/ResultWidget/ResultModel.h new file mode 100644 index 0000000..e3b0f54 --- /dev/null +++ b/source/ResultWidget/ResultModel.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include + +class TestResult +{ +private: + QString m_name; + +public: + TestResult(const char *name) + : m_name(name) + { + } + + const QString &name() const + { + return m_name; + } +}; + +class ResultModel : public QAbstractTableModel +{ + Q_OBJECT + +private: + std::vector m_results; + +public: + ResultModel(QObject *parent); + + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + + QVariant data( + const QModelIndex &index, int role = Qt::DisplayRole) const override; + + QVariant headerData(int section, Qt::Orientation orientation, + int role = Qt::DisplayRole) const override; +}; diff --git a/source/ResultWidget/ResultWidget.cpp b/source/ResultWidget/ResultWidget.cpp index 6175b7a..ee3de76 100644 --- a/source/ResultWidget/ResultWidget.cpp +++ b/source/ResultWidget/ResultWidget.cpp @@ -1,6 +1,8 @@ #include "ResultWidget.h" #include "ui_ResultWidget.h" +#include "ResultModel.h" + ResultWidget::ResultWidget(QWidget *parent) : QWidget(parent) , ui(new Ui::ResultWidget) @@ -12,3 +14,8 @@ ResultWidget::~ResultWidget() { delete ui; } + +void ResultWidget::setModel(ResultModel *model) +{ + ui->resultTableView->setModel(model); +} diff --git a/source/ResultWidget/ResultWidget.h b/source/ResultWidget/ResultWidget.h index c88af42..22bfeaf 100644 --- a/source/ResultWidget/ResultWidget.h +++ b/source/ResultWidget/ResultWidget.h @@ -2,6 +2,8 @@ #include +class ResultModel; + namespace Ui { class ResultWidget; }; @@ -16,4 +18,6 @@ private: public: ResultWidget(QWidget *parent = nullptr); ~ResultWidget(); + + void setModel(ResultModel *model); }; diff --git a/source/ResultWidget/ResultWidget.ui b/source/ResultWidget/ResultWidget.ui index 7402888..dc7927e 100644 --- a/source/ResultWidget/ResultWidget.ui +++ b/source/ResultWidget/ResultWidget.ui @@ -13,7 +13,11 @@ Form - + + + + + diff --git a/source/mainwindow.cpp b/source/mainwindow.cpp index 9157aec..c2b25ce 100644 --- a/source/mainwindow.cpp +++ b/source/mainwindow.cpp @@ -35,6 +35,7 @@ void MainWindow::newFile() ui->verbEndWidget->setModel(&m_dataModel->m_verbEnd); ui->genusWidget->setModel(&m_dataModel->m_genus); ui->pluralWidget->setModel(&m_dataModel->m_plural); + ui->resultWidget->setModel(&m_dataModel->m_results); m_filename = ""; } diff --git a/source/mainwindow.ui b/source/mainwindow.ui index 0ad92fc..45a66d0 100644 --- a/source/mainwindow.ui +++ b/source/mainwindow.ui @@ -7,7 +7,7 @@ 0 0 905 - 277 + 572 @@ -16,7 +16,7 @@ - + 3 @@ -63,7 +63,24 @@ - + + + 0 + + + false + + + + Prozentränge (PR) + + + + + + + + @@ -73,7 +90,7 @@ 0 0 905 - 17 + 19