Open-Typer
Open source typewriting tutor program
Loading...
Searching...
No Matches
ExportTable.h
1/*
2 * ExportTable.h
3 * This file is part of Open-Typer
4 *
5 * Copyright (C) 2023 - adazem009
6 *
7 * Open-Typer is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * Open-Typer is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with Open-Typer. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef EXPORTTABLE_H
22#define EXPORTTABLE_H
23
24#include <QTableView>
25#include "validator/IExerciseValidator.h"
26#include "ui/IThemeEngine.h"
27
29class Q_DECL_EXPORT ExportTable : public QTableView
30{
31 Q_OBJECT
32 INJECT(IThemeEngine, themeEngine)
33 Q_PROPERTY(int contentWidth READ contentWidth NOTIFY contentWidthChanged)
34 Q_PROPERTY(int contentHeight READ contentHeight NOTIFY contentHeightChanged)
35 Q_PROPERTY(QString studentName READ studentName WRITE setStudentName NOTIFY studentNameChanged)
36 Q_PROPERTY(QString className READ className WRITE setClassName NOTIFY classNameChanged)
37 Q_PROPERTY(QString testNumber READ testNumber WRITE setTestNumber NOTIFY testNumberChanged)
38 Q_PROPERTY(QString grade READ grade WRITE setGrade NOTIFY gradeChanged)
39 Q_PROPERTY(IExerciseValidator *validator READ validator WRITE setValidator NOTIFY validatorChanged)
40 public:
41 ExportTable(QWidget *parent = nullptr);
42 void setModel(QAbstractItemModel *model) override;
43 Q_INVOKABLE void updateModel(void);
44 Q_INVOKABLE void updateStyle(bool forceLight = false);
45 int contentWidth(void);
46 int contentHeight(void);
47 QString studentName(void);
48 void setStudentName(QString name);
49 QString className(void);
50 void setClassName(QString name);
51 QString testNumber(void);
52 void setTestNumber(QString number);
53 QString grade(void);
54 void setGrade(QString grade);
55 IExerciseValidator *validator(void);
56 void setValidator(IExerciseValidator *validator);
57
58 protected:
59 int sizeHintForColumn(int column) const override;
60 int sizeHintForRow(int row) const override;
61
62 private:
63 QString m_studentName;
64 QString m_className;
65 QString m_testNumber;
66 QString m_grade;
67 IExerciseValidator *m_validator = nullptr;
68
69 signals:
70 void contentWidthChanged(int width);
71 void contentHeightChanged(int height);
72 void studentNameChanged(QString name);
73 void classNameChanged(QString name);
74 void testNumberChanged(QString number);
75 void gradeChanged(QString grade);
76 void validatorChanged(IExerciseValidator *validator);
77 void modelChanged();
78};
79
80#endif // EXPORTTABLE_H
The ExportTable class provides a table for typing test results.
Definition ExportTable.h:30
Definition IExerciseValidator.h:30
Definition IThemeEngine.h:28