moduleconfmgt.h 2.33 KB
#ifndef SYSCONFMGT_H
#define SYSCONFMGT_H

#include <topcore/topclassabs.h>

class TTreeView;
class TTextEdit;
class TDataResponse;
class TSplitter;
class SysModuleConfPanel;
class TSearchEntry;
class TUiloaderDialog;
class TTableChooserDialog;

class SysModuleConfMgt : public TopClassAbs
{
    Q_OBJECT
public:
    explicit SysModuleConfMgt(const QString &iModuleNameStr = QString(""),
                        const QVariantMap &iUrlPars = QVariantMap(),
                        QWidget *iParent = nullptr);
    ~SysModuleConfMgt();

public slots:
    void refreshTree(const QString &iTextStr = "");
    void refresh();
    void showInputPassword();
    void exportDevConfig();
    void exportProdConfig();
    void exportProjectConfig();
    void exportAdminConfig();
    void exportUserConfig();
    void exportModuleFile(const QString &iTypeStr);

private:
    void initTreeView();
    void initLeftWidget();
    void initMiddleWidget();
    void initRightWidget();
    void fillTreeData(const TDataResponse &iDataRes);
    bool getMatchedStrLst(const QVariant &iDataVar, const QString &iPatternStr, QStringList &iMatchedLst);
    void initChooseDialog();

private slots:
    void onSearched(const QString &iTextStr, const QVariant &iFieldsVar);
    void onPasswordAccept();
    void onDataChange();
    void onDataSave();
    void addChooseSelection(const QModelIndex &iModelIndex);
    void removeChooseSelection(const QModelIndex &iModelIndex);
    void writeConfigFile(const QString &iDirectoryStr, const QVariantList &iDataLst, const QString &iTypeStr);
    void writePermissionAndEnumFile(const QString &iDirectoryStr, const QStringList &iPermissionLst, const QStringList &iEnumLst, const QString &iTypeStr);
    QVariantMap analysisModuleConf(const QString &iConfStr);
    void writeFile(const QString &iFilePath, const QStringList &iInfoLst);
    void writeFile(const QString &iFilePath, const QString &iInfoStr);

private:
    TTreeView *mTreeView = nullptr;
    TTextEdit *mTextEdit = nullptr;
    TSearchEntry *mLeftSearchEntry = nullptr;
    TSplitter *mSplitter = nullptr;
    QList<SysModuleConfPanel*> mPanelLst;
    TUiloaderDialog *mPasswordDialog = nullptr;
    QWidget *mLeftWidget = nullptr;
    TTableChooserDialog *mChooseDlg = nullptr;
    QVariantList mDataLst;
    QVariantList mAllDataLst;
    QStringList mTreeDataKeyLst;
};

#endif // SYSCONFMGT_H