Files
Chronos/sources/mainwindow.h
2022-10-16 17:36:47 +02:00

82 lines
1.8 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#define KEY_TEMPLATE "template"
#define KEY_YEARS "years"
#define SAVE_FILENAME "data.json"
#define SAVE_FILE_VERSION 4
#define KEY_SAVE_FILE_VERSION "version"
#include <QMouseEvent>
#include <QGraphicsView>
#include <QJsonArray>
#include <QMainWindow>
#include <QDir>
#include <QStandardPaths>
#include <QJsonObject>
#include <QJsonDocument>
#include <QMap>
#include <QMapIterator>
#include <QMessageBox>
#include <QTimer>
#include <QProcess>
#include <QDir>
#include "models/week.h"
#include "models/year.h"
#include "welcome.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 updateLabels();
void highlightDayOfWeek();
void updateWeekTime();
void updateDayLabels(QLabel *start, QLabel *end, QLabel *breaks, QFrame *validate, QFrame *warning, QFrame *not_working, Day *d);
QString get_save_file_path();
Identifier get_identifier(QString objectName);
void modify_value(Day*);
Week* week_template;
Week* current_week;
Year* current_year;
QMap<int, Year*> years;
QMap<QString, Identifier> 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