You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/mGui/mGuiSysManager/iWxWelcomeNew.h

264 lines
7.1 KiB
C

#pragma once
#include "iDlgBase.h"
#include "iCardInfo.h"
#include <QMainWindow>
class ZxDataProject;
class iRibbonXmlGroup;
// <20>°<EFBFBD><C2B0><EFBFBD>ҳ<EFBFBD><D2B3>
class M_GUI_SYSMANAGER_EXPORT iWxWelcomeNew : public QMainWindow
{
Q_OBJECT
public:
explicit iWxWelcomeNew(MainWindowOption o = MWO_WTAI,\
QWidget* parent = nullptr);
~iWxWelcomeNew();
public:
void setXmlFileGroup(iRibbonXmlGroup* p) {}
void changeLeft2Mode(bool bReorgUi = true) {}
void initUI();
private:
void applyStyleSheet();
QWidget* initUI_Up();
QBoxLayout* initUI_Up_Line();
void initUI_Up_Line_Sort(QToolButton* pBtnSort);
QWidget* initUI_Up_CardsArea();
QWidget* initUI_Down();
QWidget* initUI_Down_RecentProjs();
QWidget* initUI_Down_RecentDirs();
QWidget* initUI_Down_Updates();
QWidget* initUI_Bottom();
void _freshWsCount();
void onOpenDir();
void onOpenFile();
private slots:
void slotSbActionClicked(QString sName);
void slotBrowseDir();
void slotDirTextChanged(const QString &text);
void slotSearchTextChanged(const QString &text);
// void slotSortCbxCurIndexChanged(int index);
void slotSortOptionmChanged();
void slotListWxRecentProjDblClicked(QListWidgetItem* item);
void slotListWxRecentDirDblClicked(QListWidgetItem* item);
private slots:
void slotBtnHome();
// <20><>ťͳһ<CDB3><D2BB>Ӧ
void slotSubBtnTriggered();
void slotCardWxNew();
#ifdef _SCAN_OLD_CODES_
void slotCardWxOpen();
void slotCardWxSaveAs();
void slotCardWxClose();
void slotCardWxDelete();
#endif
private slots:
void slotHideBtnsTimeout();
void slotDelayedFreshLayout();
private:
QString getLastPrjWorkDir();
QStringList getProjBaseNames(QString sDir);
bool _runProjNew(QWidget* pWxCard);
bool _runProjOpen(QWidget* pWxCard);
bool _runProjSaveAs(QWidget* pWxCard);
bool _runProjClose(QWidget* pWxCard);
bool _runProjDel(QWidget* pWxCard);
/// @brief <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0>Card
/// @param sDir <20><><EFBFBD><EFBFBD> E:\Run\mWTAI\Bin\TestOfWTAI
/// @param sProjName <20><><EFBFBD><EFBFBD> TestDemo3
/// @note E:\Run\mWTAI\Bin\TestOfWTAI\TestDemo3\TestDemo3.db
QWidget* findWxCard(QString sDir, QString sProjName);
/// @brief <20><>֯Url
/// @param sDir <20><><EFBFBD><EFBFBD> E:\Run\mWTAI\Bin\TestOfWTAI
/// @param sProjName <20><><EFBFBD><EFBFBD> TestDemo3
/// @note E:\Run\mWTAI\Bin\TestOfWTAI\TestDemo3\TestDemo3.db
QString sumFullUrl(QString sDir, QString sProjName);
/// @brief <20><><EFBFBD><EFBFBD>Url
/// @param sUrl <20><><EFBFBD><EFBFBD> E:\Run\mWTAI\Bin\TestOfWTAI\TestDemo3\TestDemo3.db
/// @param sDir <20><><EFBFBD><EFBFBD> E:\Run\mWTAI\Bin\TestOfWTAI
/// @param sProjName <20><><EFBFBD><EFBFBD> TestDemo3
bool parseUrl(QString sUrl, QString& sDir, QString& sProjName);
void refreshCurrentProjs();
bool removeFromRecentDirs(QString sDir);
void refreshRecentProjs();
void addToRecentProjs(QString sUrl);
bool removeFromRecentProjects(QString sUrl);
void refreshRecentDirs();
void addToRecentDirs(const QString &path);
//////////////////////////////////////////////////////////////////////////////
// Card <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD>Card
void rebuildAllCards();
// ֻ<><D6BB>ˢ<EFBFBD>²<EFBFBD><C2B2>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD>Size<7A>ı<EFBFBD>ʱ
void freshCardLayout();
// <20><><EFBFBD><EFBFBD>Card<72><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QWidget* createProjCard(const iCardInfo &wscd);
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD>
void _configWxCardNormal(QWidget* pWxCard, const iCardInfo &wscd);
void _configWxCardNew(QWidget* pWxCard, const iCardInfo &wscd);
// <20><><EFBFBD><EFBFBD>Card <20><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void _initLayout_CardNormal(QWidget* pWxCard, \
const iCardInfo& wscd, \
QVBoxLayout*& pLayout);
void _initLayout_CardNormal_Title(QWidget* pWxCard, \
const iCardInfo& wscd, \
QVBoxLayout*& pLayout);
void _initLayout_CardNormal_Desc(QWidget* pWxCard, \
const iCardInfo& wscd, \
QVBoxLayout*& pLayout);
void _initLayout_CardNormal_WellAbouts(QWidget* pWxCard, \
const iCardInfo& wscd, \
QVBoxLayout*& pLayout);
void _initLayout_CardNormal_Others(QWidget* pWxCard, \
const iCardInfo& wscd, \
QVBoxLayout*& pLayout);
// <20><><EFBFBD><EFBFBD>Card <20>½<EFBFBD>
void _initLayout_CardNew(QWidget* pWxCard, \
const iCardInfo& wscd, \
QVBoxLayout*& pLayout);
/// @brief <20><><EFBFBD>գ<EFBFBD><D5A3>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
/// @param pWxCard <20><><EFBFBD><EFBFBD><EFBFBD>ǿգ<C7BF><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Card<72><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>
void clearCardWxs(QWidget* pWxCard = nullptr);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Active<76><65>
void setWxCardActive(QWidget* pWxCard, bool bActive);
// ˢ<>µ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>Card<72>ľ<EFBFBD>/<2F>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////
public:
// <20><><EFBFBD>½<EFBFBD><><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳ɹ<DFB3>ʱ<EFBFBD><CAB1>ˢ<EFBFBD><CBA2>
// <20><><EFBFBD>Ե<EFBFBD>ǰ<EFBFBD>򿪵Ĺ<F2BFAAB5><C4B9><EFBFBD>
void freshWellRstAbouts(bool bWell, \
QStringList& listTags, \
TreeNodeCmd o);
private:
protected:
void resizeEvent(QResizeEvent* event);
bool eventFilter(QObject* obj, QEvent* event);
signals:
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>enable
//void sigBtnEnabled(QString sName, int nID, bool& bEnabled);
// ѡ<><D1A1><EFBFBD>󼴽<EFBFBD><F3BCB4BD>򿪣<EFBFBD><F2BFAAA3><EFBFBD>Ϊ<EFBFBD>ӿڵ<D3BF><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>sDir<69><72>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ProjName<6D><65>
void sigProjSelected(QString sDir, QString sProj, bool& bOk);
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>򿪵<EFBFBD>Project<63><74>ȫ·<C8AB><C2B7>
//void sigGetCurProjFullpath(QString& s);
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ˢ<EFBFBD><CBA2>
void sigProjDeleted(QString sPath);
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>Project
void sigGetCurProject(ZxDataProject*&);
// <20>л<EFBFBD><D0BB>Ӵ<EFBFBD>
void sigChange2Main();
// <20><><EFBFBD><EFBFBD><EEB4AB>
void sigAction2Main(QString sAction, bool& bExecuted);
private:
// <20><>ǰģ<C7B0>飬Ĭ<E9A3AC><C4AC>ΪWTAI
MainWindowOption m_oMwo;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QVBoxLayout* m_pMainLayout;
// <20>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
QLineEdit* m_pTbxDir;
QLineEdit* m_pTbxSearch;
int m_nSortIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD>ڷ<EFBFBD><DAB7>գ<EFBFBD>Ŀǰ<C4BF>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD>֣<EFBFBD>
//listOptions << "TimeInc" << "TimeDesc" << "NameInc" << "NameDesc";
QAction* m_pLastSortAction; //<2F><>һ<EFBFBD><D2BB>Checked<65><64>Action
QLabel* m_pLblCount;
QScrollArea* m_pAreaScroll;
QWidget* m_pGridContainer;
QGridLayout* m_pGridLayout;
// <20>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>
QListWidget* m_pListWxRecentProjs;
int m_maxRecentProjs;
// <20>²<EFBFBD><C2B2>Ҳ<EFBFBD>
QListWidget* m_pListWxRecentDirs;
int m_maxRecentDirs;
// <20><>ʱ<EFBFBD><CAB1>
QTimer* m_pTimerRelayout;
QTimer* m_pTimerHideBtns;
// <20><><EFBFBD><EFBFBD>/<2F>Ӵ<EFBFBD><D3B4><EFBFBD>
QList<iCardInfo> m_listCardInfos;
QVector<QWidget*> m_vecCardWxs; // <20><EFBFBD><E6B4A2><EFBFBD><EFBFBD>Cardָ<64><D6B8>
QWidget* m_pLastWxCard;//<2F>ϴ<EFBFBD>ѡ<EFBFBD>е<EFBFBD>Card
// <20><>ť<EFBFBD><C5A5><EFBFBD>֣<EFBFBD><D6A3><EFBFBD>¼ÿ<C2BC><C3BF>Card<72>İ<EFBFBD>ť
struct stCardWxButtons {
QToolButton* pBtnOpen;
QToolButton* pBtnSaveAs;
QToolButton* pBtnDelete;
QWidget* container;
};
QMap<QWidget*, stCardWxButtons> m_mapCardBtns;
// ɸѡ/<2F><><EFBFBD><EFBFBD>
QString m_sLastSearchTag;
//
// ״̬<D7B4><CCAC>ʶ/<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŲ<C5BA>
bool m_bUnableSP;
// Ĭ<>Ͽ<EFBFBD><CFBF><EFBFBD>
/*static*/ int m_nCardWidth;
};