#pragma once #include "TreeWxMain.h" class M_GUI_TREE_EXPORT TreeWxMainDa : public TreeWxMain { Q_OBJECT public: TreeWxMainDa(QWidget* parent = 0); ~TreeWxMainDa(); // 填写树 // virtual void fillTree(); // virtual void initTopLevels(); // virtual void initTopLevel_OneWell(ZxDataObject* p, \ // TreeItemMain*& pItem, \ // TreeItemMain* pItemP, \ // bool bExcusive = true); virtual void initSubLevels(TreeItemMain* pItem); void initSubLevel_WellPF(TreeItemMain *&pParent); void initThirdLevel_WellPF(TreeItemMain*& pParent); void initSubLevel_WellOther(TreeItemMain *&pParent); void initThirdLevel_WellOther(TreeItemMain*& p); // void initTopLevel_AllData(); // void initSubLevel_AllData(TreeItemMain *&p); // 改变当前选项状态 virtual void modifyCurrentItemStates(QString sItemName, bool bInit); protected: /// 右键菜单功能_节点通用 virtual void initContextMenuCommonNode(QMenu* pMenu); // 空节点通用 virtual void initContextMenuCommonAll(QMenu* pMenu); // 右键节点级别的菜单 virtual void initContextMenuWell(QMenu* pMenu); void initContextMenuDataChild(QMenu* pMenu); void initContextMenuPFChild(QMenu* pMenu); virtual bool delCurrentNodes(QList &listItems); // 如果点击的是区块或井,那么获取油田、区块信息 bool getCurItemExtInfos(QMap& map); virtual void changeNodeAttrs(TreeItemMain*& p); virtual QString getTipsOf(TreeItemMain*& p); /////////////////////////////////////////////////////////// // 拖拽相关的函数处理,很啰嗦 virtual bool isDragAccepted(QDragEnterEvent* event); virtual void dealwithDrop(QDropEvent* event); bool findParentItem2Drop(MainTreeNodeType oType, \ QModelIndex modelIndex, \ TreeItemMain*& pItemP, \ int& nIndex); bool _findParentItem2DropWell(QModelIndex modelIndex, \ TreeItemMain*& pItemP, \ int& nIndex); bool _findParentItem2DropPF(QModelIndex modelIndex, \ TreeItemMain*& pItemP, \ int& nIndex); void dropNodeItem(TreeItemMain* pItemSrc, \ TreeItemMain* pItemDestP, \ MainTreeNodeType oType, int nIndex); bool makesureMoveNode(TreeItemMain* pItemSrc, \ TreeItemMain* pItemDestP, \ MainTreeNodeType oType); bool updateDataObj(ZxDataObject* pDataObj, \ TreeItemMain* pItemSrcA, \ TreeItemMain* pItemDestP, \ MainTreeNodeType oType); /////////////////////////////////////////////////////////// public slots: void slotNewWell(); //新建井 void slotScanAndDragOnePF();//拖拽或显示PF单条曲线 // 当通过外界创建了一个PF数据后,刷新到TreeCtrl void slotPfObjAppended(ZxDataGaugeBase* pObj); };