diff --git a/logPlus/qtprojectwidgets.cpp b/logPlus/qtprojectwidgets.cpp index e2f9fd8..17a2e12 100644 --- a/logPlus/qtprojectwidgets.cpp +++ b/logPlus/qtprojectwidgets.cpp @@ -58,6 +58,10 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent) //为树 tree 创建信号槽,鼠标press时会触发对应的信号。 connect(ui->treeWidget, &QTreeWidget::itemPressed, this, &QtProjectWidgets::onItemClicked); //connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &QtProjectWidgets::onItemChanged); + + // 设置选择模式为多选模式 + ui->treeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); // 或者使用 QAbstractItemView::MultiSelection + } QtProjectWidgets::~QtProjectWidgets() @@ -622,6 +626,10 @@ void QtProjectWidgets::initMenu() _menuCurveObject = new QMenu(ui->treeWidget); initCurveObjectTreeMenu(_menuCurveObject, ui->treeWidget); + //波列对象-右键菜单 + _menuWaveObject = new QMenu(ui->treeWidget); + initWaveObjectTreeMenu(_menuWaveObject, ui->treeWidget); + //表格对象-右键菜单 _menuTableObject = new QMenu(ui->treeWidget); initTableObjectTreeMenu(_menuTableObject, ui->treeWidget); @@ -671,6 +679,20 @@ void QtProjectWidgets::initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWid menu->addAction(m_action_DepthShift); } +//初始化波列对象-右键菜单 +void QtProjectWidgets::initWaveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget) +{ +// QAction* action_WaveObject = new QAction("数据查看", treeWidget); +// action_WaveObject->setIcon(QIcon(GetImagePath() + "icon/Sheet.png")); // 设置图标 +// connect(action_WaveObject, SIGNAL(triggered(bool)), this, SLOT(onShowWave(bool))); +// menu->addAction(action_WaveObject); + // + QAction* action_DepthShift = new QAction("深度移动", treeWidget); + action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标 + connect(action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool))); + menu->addAction(action_DepthShift); +} + //初始化表格对象-右键菜单 void QtProjectWidgets::initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget) { @@ -805,11 +827,27 @@ void QtProjectWidgets::onDepthShift(bool checked) } } - //emit CallManage::getInstance()->sig_DepthShift(m_strSlfName, m_strCurveObjectName, depthshift); + //支持多选 + foreach(QTreeWidgetItem *item, ui->treeWidget->selectedItems()) + { + QString strTreeTag = item->data(0, Qt::UserRole).toString(); + if (strTreeTag == "curveObject" || strTreeTag=="waveObject" || strTreeTag == "tableObject") + { + QString strLineName = item->text(0); + QString strSlfName = item->data(0, Qt::UserRole+1).toString(); + + // + ApplyShiftDepth(strSlfName, strLineName, depthshift); + } + } +} + +void QtProjectWidgets::ApplyShiftDepth(QString strSlfName, QString strLineName, double DepthOffset) +{ //1.修改内存数据 - if(m_strSlfName=="") return ; + if(strSlfName=="") return ; CMemRdWt * logio=new CMemRdWt(); - if(!logio->Open(m_strSlfName.toStdString().c_str(),CSlfIO::modeReadWrite)) + if(!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeReadWrite)) { delete logio; //AppendConsole(pai::log::PAI_ERROR,"SLF文件打开失败,请检查!"); @@ -817,12 +855,12 @@ void QtProjectWidgets::onDepthShift(bool checked) }; bool isok=0; //TODO 目前对于表格类,参数卡类不支持,会崩溃 - int curveindex=logio->FindObjectName((char *)m_strCurveObjectName.toStdString().c_str()); + int curveindex=logio->FindObjectName((char *)strLineName.toStdString().c_str()); if(curveindex>=0) { CString szBuffer=""; - szBuffer=QString::number(depthshift,'f',3)+"\r\n"; - WriteShiftMessage(*logio,szBuffer,m_strCurveObjectName); - logio->CorrectObjectDepth(curveindex, depthshift); + szBuffer=QString::number(DepthOffset,'f',3)+"\r\n"; + WriteShiftMessage(*logio,szBuffer,strLineName); + logio->CorrectObjectDepth(curveindex, DepthOffset); isok=1; } delete logio; diff --git a/logPlus/qtprojectwidgets.h b/logPlus/qtprojectwidgets.h index f98b53c..efddf74 100644 --- a/logPlus/qtprojectwidgets.h +++ b/logPlus/qtprojectwidgets.h @@ -40,6 +40,7 @@ public slots: //曲线 void onShowCurve(bool checked = false); //数据查看 + void ApplyShiftDepth(QString strSlfName, QString strLineName, double DepthOffset); void onDepthShift(bool checked = false); //深度移动 //表格 void onShowTable(bool checked = false); //数据查看 @@ -60,6 +61,7 @@ public: //右键菜单 QMenu *_menuRoot; QMenu *_menuCurveObject; //曲线对象(AC、BS...) + QMenu *_menuWaveObject; //波列对象 QMenu *_menuTableObject; //表格对象 QMenu *_menuWellName; //井名 QMenu *_menuSlfName; //井次 @@ -89,6 +91,8 @@ public: void initRootTreeMenu(QMenu *menu, QTreeWidget *treeWidget); //初始化曲线对象(AC、BS...)-右键菜单 void initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget); + //初始化波列对象-右键菜单 + void initWaveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget); //初始化表格对象-右键菜单 void initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget); //初始化根节点(井名称)-右键菜单