@@ -116,53 +116,30 @@ QMap<QPair<QString, QString>, QWidget*>* PlanGridController::getVeranstaltungen(
|
|||||||
)"));
|
)"));
|
||||||
|
|
||||||
container->setFixedSize(240, 100);
|
container->setFixedSize(240, 100);
|
||||||
|
|
||||||
if (infoVector.at(8) == "4") {
|
if (infoVector.at(8) == "4") {
|
||||||
QFrame* container2 = new QFrame( );
|
|
||||||
|
|
||||||
container2->setObjectName("container2");
|
|
||||||
container2->setStyleSheet(R"(
|
|
||||||
#container2{
|
|
||||||
background-color: #313131;
|
|
||||||
}
|
|
||||||
)");
|
|
||||||
auto layout2 = new QVBoxLayout(container2);
|
|
||||||
container2->setLayout(layout2);
|
|
||||||
|
|
||||||
QPushButton* widget2 = new QPushButton(QString::fromStdString(infoVector.at(4) + " - " + infoVector.at(5) + "\n" + infoVector.at(3) + infoVector.at(6)));
|
|
||||||
layout2->addWidget(widget2);
|
|
||||||
widget2->setProperty("MitarbeiterName", QString::fromStdString(infoVector.at(5)));
|
|
||||||
widget2->setProperty("MitarbeiterID", QString::fromStdString(infoVector.at(7)));
|
|
||||||
widget2->setObjectName("eintragung2");
|
|
||||||
widget2->setFixedSize(210, 70);
|
|
||||||
widget2->setToolTip(QString::fromStdString(infoVector.at(7)));
|
|
||||||
widget2->setCursor(Qt::PointingHandCursor);
|
|
||||||
layout2->setAlignment(Qt::AlignCenter);
|
|
||||||
|
|
||||||
widget2->setStyleSheet(QString::fromStdString(R"(
|
|
||||||
#eintragung2{
|
|
||||||
border: 0px solid #313131;
|
|
||||||
background-color: )" + color + R"(;
|
|
||||||
color: #212121;
|
|
||||||
font-weight: 900;
|
|
||||||
font-size: 18px;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
)"));
|
|
||||||
|
|
||||||
container2->setFixedSize(240, 100);
|
|
||||||
|
|
||||||
planMap->insert(qMakePair(
|
|
||||||
weekdays[std::stoi(infoVector.at(0)) - 1],
|
|
||||||
QString::fromStdString(infoVector.at(2).erase(5, 8))),
|
|
||||||
container2);
|
|
||||||
}
|
|
||||||
|
|
||||||
planMap->insert(qMakePair(
|
planMap->insert(qMakePair(
|
||||||
weekdays[std::stoi(infoVector.at(0)) - 1],
|
weekdays[std::stoi(infoVector.at(0)) - 1],
|
||||||
QString::fromStdString(infoVector.at(1).erase(5, 8))),
|
QString::fromStdString(infoVector.at(1).erase(5, 8))),
|
||||||
container);
|
container);
|
||||||
|
|
||||||
|
std::string originalString = infoVector.at(1);
|
||||||
|
if (originalString.length( ) >= 2) {
|
||||||
|
char secondChar = originalString[1];
|
||||||
|
secondChar += 2;
|
||||||
|
originalString[1] = secondChar;
|
||||||
|
}
|
||||||
|
|
||||||
|
planMap->insert(qMakePair(
|
||||||
|
weekdays[std::stoi(infoVector.at(0)) - 1],
|
||||||
|
QString::fromStdString(originalString)),
|
||||||
|
container);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
planMap->insert(qMakePair(
|
||||||
|
weekdays[std::stoi(infoVector.at(0)) - 1],
|
||||||
|
QString::fromStdString(infoVector.at(1).erase(5, 8))),
|
||||||
|
container);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return planMap;
|
return planMap;
|
||||||
|
|||||||
37
src/Core/config/config.hpp
Normal file
37
src/Core/config/config.hpp
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
inline static const std::map<std::string, std::string>& load_config( ) {
|
||||||
|
static std::map<std::string, std::string> config;
|
||||||
|
static bool is_loaded{ false };
|
||||||
|
static std::string fn{ "" };
|
||||||
|
|
||||||
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
|
std::string filename = std::string(std::getenv("USER")) + "\\config.cfg";
|
||||||
|
#elif defined(__unix__) || defined(__APPLE__)
|
||||||
|
std::string filename = std::string(std::getenv("HOME")) + "/Dokumente/git/EinsatzplanQT/config.cfg";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!is_loaded || fn != filename) {
|
||||||
|
std::ifstream file(filename);
|
||||||
|
std::string line;
|
||||||
|
|
||||||
|
while (std::getline(file, line)) {
|
||||||
|
std::istringstream line_stream(line);
|
||||||
|
std::string key;
|
||||||
|
if (std::getline(line_stream, key, '=')) {
|
||||||
|
std::string value;
|
||||||
|
if (std::getline(line_stream, value))
|
||||||
|
config[key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
is_loaded = true;
|
||||||
|
fn = filename;
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
}
|
||||||
137
src/View/EinsatzplanFrame/Dialogs/CreateMember/CreateMember.cpp
Normal file
137
src/View/EinsatzplanFrame/Dialogs/CreateMember/CreateMember.cpp
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
#include "CreateMember.hpp"
|
||||||
|
|
||||||
|
CreateMemDialog::CreateMemDialog(QWidget* parent)
|
||||||
|
:QDialog(parent) {
|
||||||
|
setWindowTitle("Mitarbeiter Hinzufügen");
|
||||||
|
setFixedSize(300, 400);
|
||||||
|
setObjectName("CreateMemDialog");
|
||||||
|
setStyleSheet(R"(
|
||||||
|
#CreateMemDialog{
|
||||||
|
background-color: #212121;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
m_name = new QLineEdit(this);
|
||||||
|
m_name->setPlaceholderText("Name");
|
||||||
|
m_name->setFixedSize(220, 40);
|
||||||
|
m_name->setObjectName("name");
|
||||||
|
m_name->setStyleSheet(R"(
|
||||||
|
#name{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_name->show( );
|
||||||
|
|
||||||
|
|
||||||
|
m_email = new QLineEdit(this);
|
||||||
|
m_email->setPlaceholderText("Email");
|
||||||
|
m_email->setFixedSize(220, 40);
|
||||||
|
m_email->setObjectName("email");
|
||||||
|
m_email->setStyleSheet(R"(
|
||||||
|
#email{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_email->show( );
|
||||||
|
|
||||||
|
m_password = new QLineEdit(this);
|
||||||
|
m_password->setPlaceholderText("Passwort");
|
||||||
|
m_password->setEchoMode(QLineEdit::Password);
|
||||||
|
m_password->setFixedSize(220, 40);
|
||||||
|
m_password->setObjectName("password");
|
||||||
|
m_password->setStyleSheet(R"(
|
||||||
|
#password{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_password->show( );
|
||||||
|
|
||||||
|
m_admin = new QCheckBox("Admin", this);
|
||||||
|
m_admin->setFixedSize(220, 40);
|
||||||
|
m_admin->setObjectName("admin");
|
||||||
|
m_admin->setStyleSheet(R"(
|
||||||
|
#admin{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 20px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_admin->show( );
|
||||||
|
|
||||||
|
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||||
|
|
||||||
|
layout->setContentsMargins(30, 30, 30, 30);
|
||||||
|
|
||||||
|
layout->addWidget(m_name, 1, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_email, 1, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_password, 1, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_admin, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
QHBoxLayout* buttonLayout = new QHBoxLayout( );
|
||||||
|
|
||||||
|
m_okButton = new QPushButton("OK", this);
|
||||||
|
m_okButton->setFixedSize(110, 40);
|
||||||
|
m_okButton->setObjectName("okButton");
|
||||||
|
m_okButton->setStyleSheet(R"(
|
||||||
|
#okButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #A5D6A7;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
m_cancelButton = new QPushButton("Abbrechen", this);
|
||||||
|
m_cancelButton->setFixedSize(110, 40);
|
||||||
|
m_cancelButton->setObjectName("cancelButton");
|
||||||
|
m_cancelButton->setStyleSheet(R"(
|
||||||
|
#cancelButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #EF9A9A;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
buttonLayout->addWidget(m_okButton, 1, Qt::AlignCenter);
|
||||||
|
buttonLayout->addWidget(m_cancelButton, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
layout->addLayout(buttonLayout);
|
||||||
|
|
||||||
|
connect(m_okButton, &QPushButton::clicked, this, &QDialog::accept);
|
||||||
|
connect(m_cancelButton, &QPushButton::clicked, this, &QDialog::reject);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateMemDialog::getName( ) const {
|
||||||
|
return m_name->text( );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateMemDialog::getEmail( ) const {
|
||||||
|
return m_email->text( );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateMemDialog::getPassword( ) const {
|
||||||
|
return m_password->text( );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CreateMemDialog::isAdmin( ) const {
|
||||||
|
return m_admin->isChecked( );
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QCheckBox>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
class CreateMemDialog : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
protected:
|
||||||
|
QLineEdit* m_name;
|
||||||
|
QLineEdit* m_email;
|
||||||
|
QLineEdit* m_password;
|
||||||
|
QCheckBox* m_admin;
|
||||||
|
QPushButton* m_okButton;
|
||||||
|
QPushButton* m_cancelButton;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CreateMemDialog(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
QString getName( ) const;
|
||||||
|
QString getEmail( ) const;
|
||||||
|
QString getPassword( ) const;
|
||||||
|
bool isAdmin( ) const;
|
||||||
|
};
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
#include "CreateVeranstaltung.hpp"
|
||||||
|
|
||||||
|
CreateVerDialog::CreateVerDialog(QWidget* parent)
|
||||||
|
: QDialog(parent) {
|
||||||
|
setWindowTitle("Veranstaltung Hinzufügen");
|
||||||
|
setFixedSize(300, 400);
|
||||||
|
setObjectName("createMemDialog");
|
||||||
|
setStyleSheet(R"(
|
||||||
|
#createMemDialog{
|
||||||
|
background-color: #212121;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||||
|
layout->setContentsMargins(30, 30, 30, 30);
|
||||||
|
|
||||||
|
m_name = new QLineEdit(this);
|
||||||
|
m_name->setPlaceholderText("Veranstaltungskürzel");
|
||||||
|
m_name->setFixedSize(220, 40);
|
||||||
|
m_name->setObjectName("name");
|
||||||
|
m_name->setStyleSheet(R"(
|
||||||
|
#name{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
layout->addWidget(m_name, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
m_raum = new QLineEdit(this);
|
||||||
|
m_raum->setPlaceholderText("Raum");
|
||||||
|
m_raum->setFixedSize(220, 40);
|
||||||
|
m_raum->setObjectName("raum");
|
||||||
|
m_raum->setStyleSheet(R"(
|
||||||
|
#raum{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
layout->addWidget(m_raum, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
m_campus = new QComboBox(this);
|
||||||
|
m_campus->addItem("Campus A");
|
||||||
|
m_campus->addItem("Campus B");
|
||||||
|
m_campus->setFixedSize(220, 40);
|
||||||
|
m_campus->setObjectName("campus");
|
||||||
|
m_campus->setStyleSheet(R"(
|
||||||
|
#campus{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
#campus::Item{
|
||||||
|
color: #DADADA;
|
||||||
|
background-color: #313131;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
layout->addWidget(m_campus, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
m_time = new QComboBox(this);
|
||||||
|
m_time->addItem("2h");
|
||||||
|
m_time->addItem("4h");
|
||||||
|
m_time->setFixedSize(220, 40);
|
||||||
|
m_time->setObjectName("time");
|
||||||
|
m_time->setStyleSheet(R"(
|
||||||
|
#time{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
#time::Item{
|
||||||
|
color: #DADADA;
|
||||||
|
background-color: #313131;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
layout->addWidget(m_time, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
QHBoxLayout* buttonLayout = new QHBoxLayout( );
|
||||||
|
|
||||||
|
m_okButton = new QPushButton("OK", this);
|
||||||
|
m_okButton->setFixedSize(110, 40);
|
||||||
|
m_okButton->setObjectName("okButton");
|
||||||
|
m_okButton->setStyleSheet(R"(
|
||||||
|
#okButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #53EC87;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
m_cancelButton = new QPushButton("Abbrechen", this);
|
||||||
|
m_cancelButton->setFixedSize(110, 40);
|
||||||
|
m_cancelButton->setObjectName("cancelButton");
|
||||||
|
m_cancelButton->setStyleSheet(R"(
|
||||||
|
#cancelButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #FF5555;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
buttonLayout->addWidget(m_okButton, 1, Qt::AlignCenter);
|
||||||
|
buttonLayout->addWidget(m_cancelButton, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
layout->addLayout(buttonLayout, 1);
|
||||||
|
|
||||||
|
connect(m_okButton, &QPushButton::clicked, this, &QDialog::accept);
|
||||||
|
connect(m_cancelButton, &QPushButton::clicked, this, &QDialog::reject);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateVerDialog::getName( ) const {
|
||||||
|
return m_name->text( );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateVerDialog::getRaum( ) const {
|
||||||
|
return m_raum->text( );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateVerDialog::getCampus( ) const {
|
||||||
|
return m_campus->currentText( );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CreateVerDialog::getTime( ) const {
|
||||||
|
return m_time->currentText( );
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QComboBox>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
class CreateVerDialog : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
protected:
|
||||||
|
QLineEdit* m_name;
|
||||||
|
QLineEdit* m_raum;
|
||||||
|
|
||||||
|
QComboBox* m_campus;
|
||||||
|
QComboBox* m_time;
|
||||||
|
|
||||||
|
QPushButton* m_okButton;
|
||||||
|
QPushButton* m_cancelButton;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CreateVerDialog(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
QString getName( ) const;
|
||||||
|
QString getRaum( ) const;
|
||||||
|
QString getCampus( ) const;
|
||||||
|
QString getTime( ) const;
|
||||||
|
};
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
#include "Krankmelden.hpp"
|
||||||
|
|
||||||
|
Krankmelden::Krankmelden(const QString& mitarbeiterName, QWidget* parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
m_text(new QLabel(QString::fromStdString(mitarbeiterName.toStdString( ) + " krankmelden?"))) {
|
||||||
|
setWindowTitle("Mitarbeiter Krankmelden?");
|
||||||
|
setFixedSize(350, 150);
|
||||||
|
setObjectName("Krankmelden");
|
||||||
|
setStyleSheet(R"(
|
||||||
|
#Krankmelden{
|
||||||
|
background-color: #212121;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
m_accept = new QPushButton("Ja", this);
|
||||||
|
m_accept->setFixedSize(110, 40);
|
||||||
|
m_accept->setObjectName("acceptButton");
|
||||||
|
m_accept->setStyleSheet(R"(
|
||||||
|
#acceptButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #A5D6A7;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_decline = new QPushButton("Nein", this);
|
||||||
|
m_decline->setFixedSize(110, 40);
|
||||||
|
m_decline->setObjectName("declineButton");
|
||||||
|
m_decline->setStyleSheet(R"(
|
||||||
|
#declineButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #EF9A9A;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
m_text->setObjectName("mitarbeiterName");
|
||||||
|
m_text->setStyleSheet(R"(
|
||||||
|
#mitarbeiterName{
|
||||||
|
background-color: none;
|
||||||
|
border:none;
|
||||||
|
color: #D8D8D8;
|
||||||
|
font-size:18px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
||||||
|
mainLayout->addWidget(m_text, 0, Qt::AlignCenter);
|
||||||
|
|
||||||
|
QHBoxLayout* layout = new QHBoxLayout( );
|
||||||
|
mainLayout->addLayout(layout, 1);
|
||||||
|
|
||||||
|
layout->addWidget(m_accept, 1, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_decline, 1, Qt::AlignCenter);
|
||||||
|
|
||||||
|
connect(m_accept, &QPushButton::clicked, this, &QDialog::accept);
|
||||||
|
connect(m_decline, &QPushButton::clicked, this, &QDialog::reject);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
class Krankmelden : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
protected:
|
||||||
|
QPushButton* m_accept;
|
||||||
|
QPushButton* m_decline;
|
||||||
|
QLabel* m_text;
|
||||||
|
public:
|
||||||
|
Krankmelden(const QString& mitarbeiterName, QWidget* parent = nullptr);
|
||||||
|
};
|
||||||
47
src/View/EinsatzplanFrame/EinsatzplanFrame.hpp
Normal file
47
src/View/EinsatzplanFrame/EinsatzplanFrame.hpp
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QFrame>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QInputDialog>
|
||||||
|
#include <QCheckBox>
|
||||||
|
#include <QComboBox>
|
||||||
|
#include <QProcess>
|
||||||
|
|
||||||
|
#include "../PlanGrid/PlanGrid.hpp"
|
||||||
|
#include "../../Controller/EinsatzplanFrameController/EinsatzplanFrameController.hpp"
|
||||||
|
#include "Dialogs/CreateMember/CreateMember.hpp"
|
||||||
|
#include "Dialogs/CreateVeranstaltung/CreateVeranstaltung.hpp"
|
||||||
|
|
||||||
|
class EinsatzplanFrame : public QFrame {
|
||||||
|
Q_OBJECT
|
||||||
|
protected:
|
||||||
|
EinsatzplanFrameController* m_controller;
|
||||||
|
|
||||||
|
QLabel* m_profileImg;
|
||||||
|
QLabel* m_id;
|
||||||
|
QLabel* m_einsatzplanLabel;
|
||||||
|
|
||||||
|
PlanGrid* m_planGrid;
|
||||||
|
|
||||||
|
QPushButton* m_abmeldenButton;
|
||||||
|
QPushButton* m_createMemberButton;
|
||||||
|
QPushButton* m_deleteMemberButton;
|
||||||
|
QPushButton* m_createVeranstaltungButton;
|
||||||
|
QPushButton* m_deleteVeranstaltungButton;
|
||||||
|
|
||||||
|
public:
|
||||||
|
EinsatzplanFrame(QWidget* parent = nullptr, QString id = "0000000", bool admin = true);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void abmelden( );
|
||||||
|
void deleteVeranstaltung( );
|
||||||
|
void createVeranstaltung( );
|
||||||
|
void deleteMember( );
|
||||||
|
void createMember( );
|
||||||
|
};
|
||||||
8
src/View/EinsatzplanWindow/EinsatzplanWindow.cpp
Normal file
8
src/View/EinsatzplanWindow/EinsatzplanWindow.cpp
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#include "EinsatzplanWindow.hpp"
|
||||||
|
|
||||||
|
EinsatzplanWindow::EinsatzplanWindow(QWidget* parent, QString id, bool admin)
|
||||||
|
:QMainWindow(parent) {
|
||||||
|
m_frame = new EinsatzplanFrame(this, id, admin);
|
||||||
|
setFixedSize(1400, 800);
|
||||||
|
m_frame->setFixedSize(size( ));
|
||||||
|
}
|
||||||
12
src/View/EinsatzplanWindow/EinsatzplanWindow.hpp
Normal file
12
src/View/EinsatzplanWindow/EinsatzplanWindow.hpp
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# pragma once
|
||||||
|
# include <QMainWindow>
|
||||||
|
# include "../EinsatzplanFrame/EinsatzplanFrame.hpp"
|
||||||
|
|
||||||
|
class EinsatzplanWindow : public QMainWindow {
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
EinsatzplanFrame* m_frame;
|
||||||
|
|
||||||
|
public:
|
||||||
|
EinsatzplanWindow(QWidget* parent = nullptr, QString id = "0000000", bool admin = true);
|
||||||
|
};
|
||||||
123
src/View/LoginFrame/LoginFrame.cpp
Normal file
123
src/View/LoginFrame/LoginFrame.cpp
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
#include "LoginFrame.hpp"
|
||||||
|
|
||||||
|
LoginFrame::LoginFrame(QWidget* parent)
|
||||||
|
:QFrame(parent) {
|
||||||
|
//configure LoginFrame
|
||||||
|
setObjectName("LoginFrame");
|
||||||
|
setStyleSheet(R"(
|
||||||
|
#LoginFrame{
|
||||||
|
background-color: #212121;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
setFrameStyle(QFrame::Box);
|
||||||
|
|
||||||
|
//create QWidgets and add LoginFrame as parent
|
||||||
|
m_header = new QLabel("Einsatzplan", this);
|
||||||
|
m_header->setFrameStyle(QFrame::Box);
|
||||||
|
m_header->setObjectName("Header");
|
||||||
|
m_header->setStyleSheet(R"(
|
||||||
|
#Header{
|
||||||
|
color: #93F8FF;
|
||||||
|
font-size: 36px;
|
||||||
|
font-weight: bold;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_header->show( );
|
||||||
|
|
||||||
|
m_id = new QLineEdit(this);
|
||||||
|
m_id->setPlaceholderText("ID...");
|
||||||
|
m_id->setObjectName("ID");
|
||||||
|
m_id->setFixedSize(300, 40);
|
||||||
|
m_id->setStyleSheet(R"(
|
||||||
|
#ID{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_id->show( );
|
||||||
|
|
||||||
|
m_password = new QLineEdit(this);
|
||||||
|
m_password->setPlaceholderText("Passwort...");
|
||||||
|
m_password->setObjectName("Password");
|
||||||
|
m_password->setEchoMode(QLineEdit::Password);
|
||||||
|
m_password->setFixedSize(300, 40);
|
||||||
|
m_password->setStyleSheet(R"(
|
||||||
|
#Password{
|
||||||
|
color: #DADADA;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #313131;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
border: 2px solid #414141;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_password->show( );
|
||||||
|
|
||||||
|
m_loginButton = new QPushButton("Login", this);
|
||||||
|
m_loginButton->setObjectName("loginButton");
|
||||||
|
m_loginButton->setFixedSize(QSize(150, 50));
|
||||||
|
m_loginButton->setStyleSheet(R"(
|
||||||
|
#loginButton{
|
||||||
|
color: #212121;
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: #53EC87;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
#loginButton:pressed {
|
||||||
|
background-color: #43DC77;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
m_loginButton->show( );
|
||||||
|
|
||||||
|
//create layout
|
||||||
|
QVBoxLayout* layout = new QVBoxLayout( );
|
||||||
|
|
||||||
|
//layout->setContentsMargins(50, 20, 50, 20);
|
||||||
|
layout->addWidget(m_header, 3, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_id, 1, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_password, 1, Qt::AlignCenter);
|
||||||
|
layout->addWidget(m_loginButton, 3, Qt::AlignCenter);
|
||||||
|
|
||||||
|
//add Layout to LoginFrame
|
||||||
|
setLayout(layout);
|
||||||
|
|
||||||
|
//connect loginButton with function
|
||||||
|
connect(m_loginButton, &QPushButton::clicked, this, &LoginFrame::loginButtonClicked);
|
||||||
|
}
|
||||||
|
|
||||||
|
//try Login if Button clicked
|
||||||
|
void LoginFrame::loginButtonClicked( ) {
|
||||||
|
QString id = m_id->text( );
|
||||||
|
QString password = m_password->text( );
|
||||||
|
|
||||||
|
//check if Contents Valid
|
||||||
|
if (id.isEmpty( ) || password.isEmpty( )) {
|
||||||
|
QMessageBox::warning(this, "Error", "Bitte füllen Sie sowohl die ID als auch das Passwort aus.");
|
||||||
|
} else {
|
||||||
|
LoginFrameController* controller = new LoginFrameController( );
|
||||||
|
int res = controller->tryLogin(id, password);
|
||||||
|
if (res == -1) {
|
||||||
|
QMessageBox::warning(this, "Error", "ID und Passwort stimmen nicht überein!");
|
||||||
|
} else {
|
||||||
|
((QWidget*)(this->parent( )))->hide( );
|
||||||
|
EinsatzplanWindow* win = new EinsatzplanWindow(nullptr, id, res);
|
||||||
|
win->show( );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LoginFrame::~LoginFrame( ) {
|
||||||
|
m_header->~QLabel( );
|
||||||
|
m_id->~QLineEdit( );
|
||||||
|
m_password->~QLineEdit( );
|
||||||
|
m_loginButton->~QPushButton( );
|
||||||
|
m_parent->~QMainWindow( );
|
||||||
|
}
|
||||||
29
src/View/LoginFrame/LoginFrame.hpp
Normal file
29
src/View/LoginFrame/LoginFrame.hpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QFrame>
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QInputDialog>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
|
#include "../../Controller/LoginFrameController/LoginFrameController.hpp"
|
||||||
|
#include "../../View/EinsatzplanWindow/EinsatzplanWindow.hpp"
|
||||||
|
|
||||||
|
class LoginFrame : public QFrame {
|
||||||
|
Q_OBJECT
|
||||||
|
protected:
|
||||||
|
QMainWindow* m_parent;
|
||||||
|
QLabel* m_header;
|
||||||
|
QLineEdit* m_id;
|
||||||
|
QLineEdit* m_password;
|
||||||
|
QPushButton* m_loginButton;
|
||||||
|
|
||||||
|
void loginButtonClicked( );
|
||||||
|
|
||||||
|
public:
|
||||||
|
LoginFrame(QWidget* parent = nullptr);
|
||||||
|
~LoginFrame( );
|
||||||
|
};
|
||||||
8
src/View/LoginWindow/LoginWindow.cpp
Normal file
8
src/View/LoginWindow/LoginWindow.cpp
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#include "LoginWindow.hpp"
|
||||||
|
|
||||||
|
LoginWindow::LoginWindow(QWidget* parent)
|
||||||
|
:QMainWindow(parent) {
|
||||||
|
m_frame = new LoginFrame(this);
|
||||||
|
setFixedSize(400, 550);
|
||||||
|
m_frame->setFixedSize(size( ));
|
||||||
|
}
|
||||||
14
src/View/LoginWindow/LoginWindow.hpp
Normal file
14
src/View/LoginWindow/LoginWindow.hpp
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
|
||||||
|
#include "../LoginFrame/LoginFrame.hpp"
|
||||||
|
|
||||||
|
class LoginWindow : public QMainWindow {
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
LoginFrame* m_frame;
|
||||||
|
|
||||||
|
public:
|
||||||
|
LoginWindow(QWidget* parent = nullptr);
|
||||||
|
};
|
||||||
34
src/View/PlanGrid/PlanGrid.hpp
Normal file
34
src/View/PlanGrid/PlanGrid.hpp
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QGridLayout>
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QDateTime>
|
||||||
|
|
||||||
|
#include "../../Controller/PlanGridController/PlanGridController.hpp"
|
||||||
|
#include "../EinsatzplanFrame/Dialogs/Krankmelden/Krankmelden.hpp"
|
||||||
|
#include "../EinsatzplanFrame/Dialogs/CreateMember/CreateMember.hpp"
|
||||||
|
|
||||||
|
class PlanGrid : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
QString m_weekdays[5];
|
||||||
|
QString m_times[6];
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QGridLayout* gridLayout;
|
||||||
|
QMap<QPair<QString, QString>, QWidget*>* planMap;
|
||||||
|
|
||||||
|
void KrankmeldenDialog( );
|
||||||
|
|
||||||
|
public:
|
||||||
|
PlanGrid(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
PlanGridController* planGridController;
|
||||||
|
|
||||||
|
void populateGrid( );
|
||||||
|
|
||||||
|
inline void setPlanMap(QMap<QPair<QString, QString>, QWidget*>* planMap) {
|
||||||
|
this->planMap = planMap;
|
||||||
|
}
|
||||||
|
};
|
||||||
10
src/main.cpp
Normal file
10
src/main.cpp
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
#include "View/LoginWindow/LoginWindow.hpp"
|
||||||
|
|
||||||
|
int main(int argc, char* argv[]) {
|
||||||
|
QApplication app(argc, argv);
|
||||||
|
LoginWindow* loginWindow = new LoginWindow( );
|
||||||
|
loginWindow->show( );
|
||||||
|
return app.exec( );
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user