#ifndef MAINWINDOW_H #define MAINWINDOW_H #include class NewItemDialog; class QAbstractItemModel; QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class GenericCore; using namespace std; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget* parent = nullptr); ~MainWindow(); signals: void displayStatusMessage(QString message); void checkForUpdates(); protected: void closeEvent(QCloseEvent* event) override; private slots: void onAboutClicked(); void showStatusMessage(const QString text); void on_actionCheck_for_update_triggered(); void on_pushButton_clicked(); /// slots for menu actions void openNewItemDialog(); private: Ui::MainWindow* ui; // GenericCore* m_core; unique_ptr m_core; shared_ptr m_tableModel; /// File actions unique_ptr m_newFileAct; unique_ptr m_openAct; unique_ptr m_saveAct; unique_ptr m_importAct; unique_ptr m_exportAct; unique_ptr m_printAct; unique_ptr m_exitAct; /// Edit actions unique_ptr m_undoAct; unique_ptr m_redoAct; unique_ptr m_cutAct; unique_ptr m_copyAct; unique_ptr m_pasteAct; unique_ptr m_openNewItemDialogAct; unique_ptr m_openEditItemDialogAct; unique_ptr m_deleteItemAct; unique_ptr m_findItemAct; /// Dialogs unique_ptr m_newItemDialog; /// Setup functions void createActions(); void createFileActions(); void createEditActions(); void createHelpMenu(); void createGuiDialogs(); }; #endif // MAINWINDOW_H