Initial commit

This commit is contained in:
Janik 2025-01-24 23:16:24 +01:00 committed by Tronax
parent 4d4ea94522
commit 2407aa35e7
5 changed files with 294 additions and 0 deletions

42
WorkTimeCalculator.h Normal file
View file

@ -0,0 +1,42 @@
#ifndef WORKTIMECALCULATOR_H
#define WORKTIMECALCULATOR_H
#include <QMainWindow> // Basis-Klasse für das Hauptfenster
#include <QTimeEdit> // Widget zur Eingabe von Uhrzeiten
#include <QPushButton> // Button-Widget
#include <QCheckBox> // Checkbox-Widget
#include <QListWidget> // Widget zur Anzeige der Pausenzeiten
#include <QSpinBox> // Eingabe für numerische Werte (z. B. Stunden/Minuten)
#include <QLabel> // Widget zur Anzeige von Text
class WorkTimeCalculator : public QMainWindow {
Q_OBJECT // Erforderlich für Qt-Signal- und Slot-Mechanismus
public:
// Konstruktor und Destruktor
WorkTimeCalculator(); // Initialisiert das GUI und die Logik
~WorkTimeCalculator(); // Speichert Einstellungen beim Schließen
private slots:
// Slots für Benutzeraktionen
void addBreak(); // Hinzufügen einer neuen Pause
void calculateWorkTime(); // Berechnet die Netto-Arbeitszeit
private:
// Hilfsfunktionen
void loadSettings(); // Lädt gespeicherte Einstellungen
void saveSettings(); // Speichert aktuelle Einstellungen
// GUI-Komponenten
QTimeEdit *startTimeEdit; // Widget für die Einstempelzeit
QTimeEdit *endTimeEdit; // Widget für die Ausstempelzeit (optional)
QPushButton *addBreakButton; // Button, um eine Pause hinzuzufügen
QPushButton *calculateButton; // Button, um die Arbeitszeit zu berechnen
QCheckBox *includeEndTimeCheckbox; // Checkbox zur Aktivierung der Ausstempelzeit
QListWidget *breakList; // Liste der eingegebenen Pausenzeiten
QSpinBox *dailyHoursSpin; // Eingabe für tägliche Sollarbeitszeit (Stunden)
QSpinBox *dailyMinutesSpin; // Eingabe für tägliche Sollarbeitszeit (Minuten)
QLabel *resultLabel; // Anzeige für das Ergebnis der Berechnung
};
#endif // WORKTIMECALCULATOR_H