Print a (unfinished) meta-data table
This commit is contained in:
parent
2ca87eebc0
commit
f8c3dc35fd
5 changed files with 98 additions and 42 deletions
|
@ -2,37 +2,30 @@
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
DataModel::DataModel(QObject *parent)
|
DataModel::DataModel(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_metaData(this)
|
, m_metaData(this)
|
||||||
, m_verbEnd(this)
|
, m_verbEnd(this)
|
||||||
, m_genus(this)
|
, m_genus(this)
|
||||||
, m_plural(this)
|
, m_plural(this)
|
||||||
, m_results(this)
|
, m_results(this)
|
||||||
, m_akkusativ(this)
|
, m_akkusativ(this)
|
||||||
, m_dativ(this)
|
, m_dativ(this)
|
||||||
, m_v2Svk(this)
|
, m_v2Svk(this)
|
||||||
, m_passiv(this)
|
, m_passiv(this)
|
||||||
, m_genitiv(this)
|
, m_genitiv(this)
|
||||||
{
|
{
|
||||||
connect(&m_plural, &PluralModel::dataChanged, this,
|
connect(&m_plural, &PluralModel::dataChanged, this, &DataModel::pluralModelChanged);
|
||||||
&DataModel::pluralModelChanged);
|
connect(&m_metaData, &MetaDataModel::dataChanged, this, &DataModel::metaDataChanged);
|
||||||
connect(&m_metaData, &MetaDataModel::dataChanged, this,
|
connect(&m_genus, &GenusModel::dataChanged, this, &DataModel::genusModelChanged);
|
||||||
&DataModel::metaDataChanged);
|
connect(&m_verbEnd, &VerbEndModel::dataChanged, this, &DataModel::verbEndModelChanged);
|
||||||
connect(&m_genus, &GenusModel::dataChanged, this,
|
connect(&m_akkusativ, &AkkusativModel::dataChanged, this, &DataModel::akkusativModelChanged);
|
||||||
&DataModel::genusModelChanged);
|
connect(&m_dativ, &DativModel::dataChanged, this, &DataModel::dativModelChanged);
|
||||||
connect(&m_verbEnd, &VerbEndModel::dataChanged, this,
|
connect(&m_v2Svk, &V2SvkModel::dataChanged, this, &DataModel::v2SvkModelChanged);
|
||||||
&DataModel::verbEndModelChanged);
|
connect(&m_passiv, &PassivModel::dataChanged, this, &DataModel::passivModelChanged);
|
||||||
connect(&m_akkusativ, &AkkusativModel::dataChanged, this,
|
connect(&m_genitiv, &GenitivModel::dataChanged, this, &DataModel::genitivModelChanged);
|
||||||
&DataModel::akkusativModelChanged);
|
|
||||||
connect(&m_dativ, &DativModel::dataChanged, this,
|
|
||||||
&DataModel::dativModelChanged);
|
|
||||||
connect(&m_v2Svk, &V2SvkModel::dataChanged, this,
|
|
||||||
&DataModel::v2SvkModelChanged);
|
|
||||||
connect(&m_passiv, &PassivModel::dataChanged, this,
|
|
||||||
&DataModel::passivModelChanged);
|
|
||||||
connect(&m_genitiv, &GenitivModel::dataChanged, this,
|
|
||||||
&DataModel::genitivModelChanged);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataModel::write(QJsonObject &target) const
|
void DataModel::write(QJsonObject &target) const
|
||||||
|
@ -44,8 +37,8 @@ void DataModel::write(QJsonObject &target) const
|
||||||
write(m_akkusativ, target, "Akkusativ");
|
write(m_akkusativ, target, "Akkusativ");
|
||||||
write(m_dativ, target, "Dativ");
|
write(m_dativ, target, "Dativ");
|
||||||
write(m_v2Svk, target, "V2Svk");
|
write(m_v2Svk, target, "V2Svk");
|
||||||
write(m_passiv, target, "Passiv");
|
write(m_passiv, target, "Passiv");
|
||||||
write(m_genitiv, target, "Genitiv");
|
write(m_genitiv, target, "Genitiv");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataModel::read(const QJsonObject &source)
|
void DataModel::read(const QJsonObject &source)
|
||||||
|
@ -57,8 +50,36 @@ void DataModel::read(const QJsonObject &source)
|
||||||
read(m_akkusativ, source, "Akkusativ");
|
read(m_akkusativ, source, "Akkusativ");
|
||||||
read(m_dativ, source, "Dativ");
|
read(m_dativ, source, "Dativ");
|
||||||
read(m_v2Svk, source, "V2Svk");
|
read(m_v2Svk, source, "V2Svk");
|
||||||
read(m_passiv, source, "Passiv");
|
read(m_passiv, source, "Passiv");
|
||||||
read(m_genitiv, source, "Genitiv");
|
read(m_genitiv, source, "Genitiv");
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string DataModel::toHtml() const
|
||||||
|
{
|
||||||
|
std::stringstream out;
|
||||||
|
|
||||||
|
out << "<html>" << std::endl;
|
||||||
|
out << "<head>" << std::endl;
|
||||||
|
out << "<style>" << std::endl;
|
||||||
|
out << "body {" << std::endl;
|
||||||
|
out << "font-family:sans-serif;" << std::endl;
|
||||||
|
out << "}" << std::endl;
|
||||||
|
out << "table, th, td {" << std::endl;
|
||||||
|
out << "border: 1px solid black;" << std::endl;
|
||||||
|
out << "border-collapse: collapse;" << std::endl;
|
||||||
|
out << "padding: 5px;" << std::endl;
|
||||||
|
out << "}" << std::endl;
|
||||||
|
out << "</style>" << std::endl;
|
||||||
|
out << "</head>" << std::endl;
|
||||||
|
out << "<body>" << std::endl;
|
||||||
|
out << "<h2>ESGRAF 4-8 Auswertungsbogen</h2>" << std::endl;
|
||||||
|
out << "<p>" << std::endl;
|
||||||
|
out << m_metaData.toHtml();
|
||||||
|
out << "</p>" << std::endl;
|
||||||
|
out << "</body>" << std::endl;
|
||||||
|
out << "</html>" << std::endl;
|
||||||
|
|
||||||
|
return out.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataModel::pluralModelChanged()
|
void DataModel::pluralModelChanged()
|
||||||
|
@ -113,14 +134,14 @@ void DataModel::v2SvkModelChanged()
|
||||||
|
|
||||||
void DataModel::passivModelChanged()
|
void DataModel::passivModelChanged()
|
||||||
{
|
{
|
||||||
m_results.setPassivResult(m_passiv.getPoints());
|
m_results.setPassivResult(m_passiv.getPoints());
|
||||||
|
|
||||||
emit modelChanged();
|
emit modelChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataModel::genitivModelChanged()
|
void DataModel::genitivModelChanged()
|
||||||
{
|
{
|
||||||
m_results.setGenitivResult(m_genitiv.getPoints());
|
m_results.setGenitivResult(m_genitiv.getPoints());
|
||||||
|
|
||||||
emit modelChanged();
|
emit modelChanged();
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,8 @@ public:
|
||||||
void write(QJsonObject &target) const;
|
void write(QJsonObject &target) const;
|
||||||
void read(const QJsonObject &source);
|
void read(const QJsonObject &source);
|
||||||
|
|
||||||
|
std::string toHtml() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void modelChanged();
|
void modelChanged();
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
MetaDataModel::MetaDataModel(QObject *parent)
|
MetaDataModel::MetaDataModel(QObject *parent)
|
||||||
: QAbstractTableModel(parent)
|
: QAbstractTableModel(parent)
|
||||||
{
|
{
|
||||||
m_dateOfBirth = QDate::currentDate().addYears(-9);
|
m_dateOfBirth = QDate::currentDate().addYears(-9);
|
||||||
m_dateOfTest = QDate::currentDate();
|
m_dateOfTest = QDate::currentDate();
|
||||||
|
@ -50,8 +52,7 @@ Qt::ItemFlags MetaDataModel::flags(const QModelIndex &modelIndex) const
|
||||||
return QAbstractTableModel::flags(modelIndex) | Qt::ItemIsEditable;
|
return QAbstractTableModel::flags(modelIndex) | Qt::ItemIsEditable;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MetaDataModel::setData(
|
bool MetaDataModel::setData(const QModelIndex &modelIndex, const QVariant &value, int role)
|
||||||
const QModelIndex &modelIndex, const QVariant &value, int role)
|
|
||||||
{
|
{
|
||||||
if (role != Qt::EditRole)
|
if (role != Qt::EditRole)
|
||||||
{
|
{
|
||||||
|
@ -128,3 +129,33 @@ void MetaDataModel::read(const QJsonObject &json)
|
||||||
setData(index(0, 3), json["date of test"].toVariant(), Qt::EditRole);
|
setData(index(0, 3), json["date of test"].toVariant(), Qt::EditRole);
|
||||||
setData(index(0, 4), json["remarks"].toVariant(), Qt::EditRole);
|
setData(index(0, 4), json["remarks"].toVariant(), Qt::EditRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string MetaDataModel::toHtml() const
|
||||||
|
{
|
||||||
|
std::ostringstream out;
|
||||||
|
|
||||||
|
out << "<table>" << std::endl;
|
||||||
|
out << "<tr>" << std::endl;
|
||||||
|
out << "<td>Name, Vorname</td>" << std::endl;
|
||||||
|
out << "<td>" << m_participant.toStdString() << "</td>" << std::endl;
|
||||||
|
out << "<td>Untersucher(in)</td>" << std::endl;
|
||||||
|
out << "<td>" << m_instructor.toStdString() << "</td>" << std::endl;
|
||||||
|
out << "</tr>" << std::endl;
|
||||||
|
out << "<tr>" << std::endl;
|
||||||
|
out << "<td>Geburtsdatum</td>" << std::endl;
|
||||||
|
out << "<td></td>" << std::endl;
|
||||||
|
out << "<td colspan=\"2\">Bemerkungen</td>" << std::endl;
|
||||||
|
out << "</tr>" << std::endl;
|
||||||
|
out << "<tr>" << std::endl;
|
||||||
|
out << "<td>Untersuchungsdatum</td>" << std::endl;
|
||||||
|
out << "<td></td>" << std::endl;
|
||||||
|
out << "<td colspan=\"2\" rowspan=\"2\"></td>" << std::endl;
|
||||||
|
out << "</tr>" << std::endl;
|
||||||
|
out << "<tr>" << std::endl;
|
||||||
|
out << "<td>Alter am Testtag</td>" << std::endl;
|
||||||
|
out << "<td></td>" << std::endl;
|
||||||
|
out << "</tr>" << std::endl;
|
||||||
|
out << "</table>" << std::endl;
|
||||||
|
|
||||||
|
return out.str();
|
||||||
|
}
|
||||||
|
|
|
@ -31,6 +31,8 @@ public:
|
||||||
void write(QJsonObject &json) const;
|
void write(QJsonObject &json) const;
|
||||||
void read(const QJsonObject &json);
|
void read(const QJsonObject &json);
|
||||||
|
|
||||||
|
std::string toHtml() const;
|
||||||
|
|
||||||
Age getAge() const
|
Age getAge() const
|
||||||
{
|
{
|
||||||
return { m_dateOfBirth, m_dateOfTest };
|
return { m_dateOfBirth, m_dateOfTest };
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
: QMainWindow(parent)
|
: QMainWindow(parent)
|
||||||
, ui(new Ui::MainWindow)
|
, ui(new Ui::MainWindow)
|
||||||
|
@ -135,6 +137,9 @@ void MainWindow::closeFile()
|
||||||
|
|
||||||
void MainWindow::print() const
|
void MainWindow::print() const
|
||||||
{
|
{
|
||||||
|
std::ofstream htmlfile("print.html");
|
||||||
|
htmlfile << m_dataModel->toHtml();
|
||||||
|
|
||||||
QPrinter printer;
|
QPrinter printer;
|
||||||
|
|
||||||
QPrintDialog dialog(&printer);
|
QPrintDialog dialog(&printer);
|
||||||
|
@ -144,12 +149,7 @@ void MainWindow::print() const
|
||||||
}
|
}
|
||||||
|
|
||||||
QTextDocument printDoc;
|
QTextDocument printDoc;
|
||||||
printDoc.setHtml(
|
printDoc.setHtml(QString::fromStdString(m_dataModel->toHtml()));
|
||||||
"<html>"
|
|
||||||
"<body>"
|
|
||||||
"<h2>Hello World</h2>"
|
|
||||||
"</body>"
|
|
||||||
"</hthml>");
|
|
||||||
|
|
||||||
printDoc.print(&printer);
|
printDoc.print(&printer);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue