moved meta-data to sub-project
This commit is contained in:
parent
639e1b21e2
commit
441a01bdc3
10 changed files with 43 additions and 12 deletions
31
source/MetaData/CMakeLists.txt
Normal file
31
source/MetaData/CMakeLists.txt
Normal file
|
@ -0,0 +1,31 @@
|
|||
cmake_minimum_required(VERSION 3.6)
|
||||
|
||||
project(MetaData LANGUAGES CXX)
|
||||
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
qt5_wrap_ui(UI_HEADERS
|
||||
MetaDataWidget.ui
|
||||
)
|
||||
|
||||
add_library(${PROJECT_NAME}
|
||||
MetaDataModel.cpp
|
||||
MetaDataWidget.cpp
|
||||
${UI_HEADERS}
|
||||
)
|
||||
|
||||
set_target_properties(${PROJECT_NAME}
|
||||
PROPERTIES CXX_STANDARD 14
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Widgets
|
||||
)
|
142
source/MetaData/MetaDataModel.cpp
Normal file
142
source/MetaData/MetaDataModel.cpp
Normal file
|
@ -0,0 +1,142 @@
|
|||
#include "MetaDataModel.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
MetaDataModel::MetaDataModel(QObject *parent) : QAbstractTableModel(parent)
|
||||
{
|
||||
}
|
||||
|
||||
int MetaDataModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int MetaDataModel::columnCount(const QModelIndex &parent) const
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
||||
QVariant MetaDataModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (role == Qt::DisplayRole || role == Qt::EditRole)
|
||||
{
|
||||
switch (index.column())
|
||||
{
|
||||
case 0:
|
||||
return m_participant;
|
||||
case 1:
|
||||
return m_instructor;
|
||||
case 2:
|
||||
return m_dateOfBirth;
|
||||
case 3:
|
||||
return m_dateOfTest;
|
||||
case 4:
|
||||
return m_remarks;
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
Qt::ItemFlags MetaDataModel::flags(const QModelIndex &index) const
|
||||
{
|
||||
return QAbstractTableModel::flags(index) | Qt::ItemIsEditable;
|
||||
}
|
||||
|
||||
bool MetaDataModel::setData(
|
||||
const QModelIndex &index, const QVariant &value, int role)
|
||||
{
|
||||
if (role != Qt::EditRole)
|
||||
{
|
||||
return QAbstractTableModel::setData(index, value, role);
|
||||
}
|
||||
|
||||
bool valueChanged = false;
|
||||
|
||||
switch (index.column())
|
||||
{
|
||||
case 0:
|
||||
if (value.toString() != m_participant)
|
||||
{
|
||||
m_participant = value.toString();
|
||||
valueChanged = true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (value.toString() != m_instructor)
|
||||
{
|
||||
m_instructor = value.toString();
|
||||
valueChanged = true;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (value.toDate() != m_dateOfBirth)
|
||||
{
|
||||
m_dateOfBirth = value.toDate();
|
||||
valueChanged = true;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (value.toDate() != m_dateOfTest)
|
||||
{
|
||||
m_dateOfTest = value.toDate();
|
||||
valueChanged = true;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (value.toString() != m_remarks)
|
||||
{
|
||||
m_remarks = value.toString();
|
||||
valueChanged = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return valueChanged;
|
||||
}
|
||||
|
||||
void MetaDataModel::write(QJsonObject &json) const
|
||||
{
|
||||
json["participant name"] = m_participant;
|
||||
json["instructor name"] = m_instructor;
|
||||
json["date of birth"] = m_dateOfBirth.toString(Qt::ISODate);
|
||||
json["date of test"] = m_dateOfTest.toString(Qt::ISODate);
|
||||
json["remarks"] = m_remarks;
|
||||
}
|
||||
|
||||
void MetaDataModel::read(const QJsonObject &json)
|
||||
{
|
||||
const auto &participant = json["participant name"];
|
||||
if (participant.isString())
|
||||
{
|
||||
m_participant = participant.toString();
|
||||
}
|
||||
|
||||
const auto &instructor = json["instructor name"];
|
||||
if (instructor.isString())
|
||||
{
|
||||
m_instructor = instructor.toString();
|
||||
}
|
||||
|
||||
const auto &dateOfBirth = json["date of birth"];
|
||||
if (dateOfBirth.isString())
|
||||
{
|
||||
m_dateOfBirth = QDate::fromString(dateOfBirth.toString(), Qt::ISODate);
|
||||
}
|
||||
|
||||
const auto &dateOfTest = json["date of test"];
|
||||
if (dateOfTest.isString())
|
||||
{
|
||||
m_dateOfTest = QDate::fromString(dateOfTest.toString(), Qt::ISODate);
|
||||
}
|
||||
|
||||
const auto &remarks = json["remarks"];
|
||||
if (remarks.isString())
|
||||
{
|
||||
m_remarks = remarks.toString();
|
||||
}
|
||||
}
|
31
source/MetaData/MetaDataModel.h
Normal file
31
source/MetaData/MetaDataModel.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
#pragma once
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
#include <QString>
|
||||
#include <QDate>
|
||||
#include <QJsonObject>
|
||||
|
||||
class MetaDataModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
QString m_participant;
|
||||
QString m_instructor;
|
||||
QDate m_dateOfBirth;
|
||||
QDate m_dateOfTest;
|
||||
QString m_remarks;
|
||||
|
||||
public:
|
||||
MetaDataModel(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;
|
||||
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
||||
bool setData(const QModelIndex &index, const QVariant &value,
|
||||
int role = Qt::EditRole) override;
|
||||
|
||||
void write(QJsonObject &json) const;
|
||||
void read(const QJsonObject &json);
|
||||
};
|
35
source/MetaData/MetaDataWidget.cpp
Normal file
35
source/MetaData/MetaDataWidget.cpp
Normal file
|
@ -0,0 +1,35 @@
|
|||
#include "MetaDataWidget.h"
|
||||
#include "ui_MetaDataWidget.h"
|
||||
|
||||
#include "MetaDataModel.h"
|
||||
|
||||
#include <QDataWidgetMapper>
|
||||
|
||||
MetaDataWidget::MetaDataWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, ui(new Ui::MetaDataWidget)
|
||||
, m_widgetMapper(new QDataWidgetMapper(this))
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
MetaDataWidget::~MetaDataWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MetaDataWidget::setModel(MetaDataModel *model)
|
||||
{
|
||||
m_widgetMapper->setModel(model);
|
||||
m_widgetMapper->addMapping(ui->participantLineEdit, 0);
|
||||
m_widgetMapper->addMapping(ui->instructorLineEdit, 1);
|
||||
m_widgetMapper->addMapping(ui->dateOfBirthDateEdit, 2);
|
||||
m_widgetMapper->addMapping(ui->dateOfTestDateEdit, 3);
|
||||
m_widgetMapper->addMapping(ui->remarksPlainTextEdit, 4);
|
||||
m_widgetMapper->toFirst();
|
||||
}
|
||||
|
||||
void MetaDataWidget::toFirst()
|
||||
{
|
||||
m_widgetMapper->toFirst();
|
||||
}
|
26
source/MetaData/MetaDataWidget.h
Normal file
26
source/MetaData/MetaDataWidget.h
Normal file
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
class QDataWidgetMapper;
|
||||
class MetaDataModel;
|
||||
|
||||
namespace Ui {
|
||||
class MetaDataWidget;
|
||||
};
|
||||
|
||||
class MetaDataWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
Ui::MetaDataWidget *ui;
|
||||
QDataWidgetMapper *m_widgetMapper;
|
||||
|
||||
public:
|
||||
MetaDataWidget(QWidget *parent = nullptr);
|
||||
~MetaDataWidget();
|
||||
|
||||
void setModel(MetaDataModel *model);
|
||||
void toFirst();
|
||||
};
|
77
source/MetaData/MetaDataWidget.ui
Normal file
77
source/MetaData/MetaDataWidget.ui
Normal file
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MetaDataWidget</class>
|
||||
<widget class="QWidget" name="MetaDataWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>637</width>
|
||||
<height>269</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QWidget" name="upperArea" native="true">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="dateOfTestLabel">
|
||||
<property name="text">
|
||||
<string>Untersuchungsdatum</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="participantLineEdit"/>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLabel" name="dateOfBirthLabel">
|
||||
<property name="text">
|
||||
<string>Geburtsdatum</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="participantLabel">
|
||||
<property name="text">
|
||||
<string>Name, Vorname</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLineEdit" name="instructorLineEdit"/>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="instructorLabel">
|
||||
<property name="text">
|
||||
<string>Untersucher(in)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDateEdit" name="dateOfTestDateEdit"/>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QDateEdit" name="dateOfBirthDateEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="remarksLabel">
|
||||
<property name="text">
|
||||
<string>Bemerkungen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="remarksPlainTextEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
Add table
Add a link
Reference in a new issue