#ifndef MAINWINDOW_H #define MAINWINDOW_H #define KEY_TEMPLATE "template" #define KEY_YEARS "years" #define SAVE_FILENAME "data.json" #define SAVE_FILE_VERSION 3 #define KEY_SAVE_FILE_VERSION "version" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "models/week.h" #include "models/year.h" #include "welcome.h" #include "tools.h" #include "aboutbox.h" #include "weekoption.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); signals: void correctly_started(); private: Ui::MainWindow *ui; void init(); void open_save(); void save_to_file(); void panic_dialog(QString text); // UI Update void updateStartLabel(); void updateBreakLabel(); void updateEndLabel(); void highlightDayOfWeek(); void updateValidIcon(); void updateWarningIcon(); QString get_save_file_path(); Identifier get_identifier(QString objectName); void modify_value(Day*); Week* week_template; Week* current_week; Year* current_year; QMap years; QMap objectId; int todayWeekNumber; int dayOfWeek; bool saveLoaded; private slots: void compute_week_number(const QDateTime &dt); void compute_time(); void set_date_to_now(); void edit(); void edit_template(); void open_about(); void set_week_options(); }; #endif // MAINWINDOW_H