#ifndef GENERICCORE_H #define GENERICCORE_H #include #include #include "model/metadata.h" #include "structs.h" class QUndoStack; class QAbstractItemModel; class QAbstractItemModelTester; class QString; class TableModel; class GeneralSortFilterModel; class ModelSummary; class ServerCommunicator; using namespace std; class GenericCore : public QObject { Q_OBJECT public: GenericCore(); ~GenericCore(); QString toString() const; void sayHello() const; bool isApplicationUpdateAvailable(); void triggerApplicationUpdate(const bool saveChanges); QUndoStack* getModelUndoStack() const; shared_ptr getModel() const; shared_ptr getSortFilterModel() const; shared_ptr getModelSummary() const; void saveItems(); void importCSVFile(const QString& filePath); bool exportCSVFile(const QString& filePath); QVariantMap getSettings(QString group = "") const; void applySettings(QVariantMap settingMap, QString group = ""); bool isSyncServerSetup() const; public slots: void onBiddingsChanged(const QList biddings); void onCreateOnlineAccountTriggered(const QString& mailAddress); void onOnlineUserAccountReceived(const QString mailAddress, const QString uuid, const QString accessToken); void onSendInviteMailTriggered(const QString& mailAddress); signals: void displayStatusMessage(QString message); /// *** server communication *** /// request signals void sendGetRequest(GetRequestTypes type, QVariant data = QVariant()); void sendPostRequest(PostRequestTypes type, QByteArray data); /// response signals void currentBiddingRoundChanged(int round, bool isRunning); /// deprecated signals void fetchItemsFromServer(); void postItemToServer(const QByteArray& jsonData); void deleteItemFromServer(const QString& id); private: QUndoStack* m_modelUndoStack; shared_ptr m_mainModel; shared_ptr m_sortFilterModel; shared_ptr m_modelSummary; unique_ptr m_mainModelTester; unique_ptr m_proxyModelTester; void setupModels(); void initModelData(); QString getMaintenanceToolFilePath() const; /// Network communication unique_ptr m_serverCommunicator; void setupServerConfiguration(); void applyServerConfiguration(); }; #endif // GENERICCORE_H