42 lines
1.8 KiB
C++
42 lines
1.8 KiB
C++
#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
|