#pragma once #include "DataModel.h" #include #include #include class DataModel; class QDataWidgetMapper; namespace Ui { class MainWindow; }; class MainWindow : public QMainWindow { Q_OBJECT private: Ui::MainWindow* ui; DataModel m_dataModel; QString m_filename; bool m_saveOnClose = false; public: MainWindow(QWidget* parent); MainWindow(QWidget* parent, const QString& filename); ~MainWindow(); public slots: void newFile(); void openFile(); void openFile(const QString& filename); void saveFile(); void saveFileAs(); void closeFile(); void print() const; void dataModelChanged(); void savePdf(); void aboutDialog(); protected: void closeEvent(QCloseEvent* event) override; private: void setupUi(); void saveFile(const QString& filename); void savePdf(const QString& filename); };