#ifndef TEMPLATECLASS3_H #define TEMPLATECLASS3_H #include #include class TTableView; class TUiLoader; class TSearchEntry; class TPageTool; class TSplitter; class TopTemplateClass3 : public TopClassAbs { Q_OBJECT public: explicit TopTemplateClass3(const QString &iModuleName = QString(""), const QVariantMap &iUrlPars = QVariantMap(), QWidget *iParent = nullptr); ~TopTemplateClass3(); public slots: void refresh(bool iResetPage = true); void refreshDetail(const QString &iUid); QString detailUid() const; void setDetailUid(const QString &iUid, bool iForceRefresh = false); bool isDetailModified() const; void setIsDetailModified(bool iIsDetailModified); QVariantList selectedItems() const; QVariantList selectedDataMaps() const; void newItem(); void saveItem(); void reloadItem(); void copyItem(); void deleteItems(const QVariantList &iItems); TTableView *tableView() const; TUiLoader *uiLoader() const; signals: void isDetailModifiedChanged(bool iIsDetailModified); void detailUidChanged(const QString &iDetailUid); void detailSaved(const QString &iUid); void selectionChanged(); private slots: void onPageChanged(); void onDetailDataChanged(); void onDetailSaved(const QString &iUid); void onDetailChanged(bool iIsDetailModified); void onSelectionChanged(); private: void initUi(); private: TSplitter *mBodySplitter = nullptr; QWidget *mBodyWgt = nullptr; TTableView *mTableView = nullptr; TSearchEntry *mSearchEntry = nullptr; TPageTool *mPageTool = nullptr; TUiLoader *mDetailView = nullptr; TopClassTableConf mTableConf; bool mIsDetailModified = false; QVariantList mSelectedItems; QString mLastDetailUid; QString mDetailUid; QTimer *mRefreshTimer = nullptr; }; #endif // TEMPLATECLASS3_H