左侧树图,拖拽井次,使用json模板生成多井。
This commit is contained in:
parent
b195449efb
commit
99c19344b5
|
|
@ -106,6 +106,9 @@ signals:
|
|||
//LogMud
|
||||
void sig_AddLogMud(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW = 0);
|
||||
|
||||
//拖拽井次,生成多井
|
||||
void sig_AddMultiWell(QString strUuid, QString strSlfName, QString strWellName);
|
||||
|
||||
//新建波列
|
||||
void sig_AddWave(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strWaveName);
|
||||
//删除波列
|
||||
|
|
|
|||
|
|
@ -7484,8 +7484,19 @@ void FormDraw::dropEvent(QDropEvent* event)
|
|||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||
{
|
||||
//拖拽井次,生成多井
|
||||
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||
// 接受拖拽事件
|
||||
event->setDropAction(Qt::MoveAction);
|
||||
event->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -2508,8 +2508,19 @@ void FormInfo::dropEvent(QDropEvent* event)
|
|||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||
{
|
||||
//拖拽井次,生成多井
|
||||
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||
// 接受拖拽事件
|
||||
event->setDropAction(Qt::MoveAction);
|
||||
event->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -271,8 +271,19 @@ void FormTrackTop::dropEvent(QDropEvent* event)
|
|||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||
{
|
||||
//拖拽井次,生成多井
|
||||
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||
// 接受拖拽事件
|
||||
event->setDropAction(Qt::MoveAction);
|
||||
event->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -188,6 +188,8 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
|
|||
//重新设置滚动条范围(头)
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_setRangeVScrollBar2(QString)), this, SLOT(s_setRangeVScrollBar2(QString)));
|
||||
|
||||
connect(CallManage::getInstance(), SIGNAL(sig_AddMultiWell(QString, QString, QString)), this, SLOT(s_AddMultiWell(QString, QString, QString)));
|
||||
|
||||
//图头----------
|
||||
m_dock1=new QDockWidget(tr(""),this);
|
||||
m_dock1->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable
|
||||
|
|
@ -5271,6 +5273,11 @@ void MainWindowCurve::dropEvent(QDropEvent* event)
|
|||
//新建井+道+曲线(首条)
|
||||
NewWellAndTrack(strWellName, strSlfName, strLineName, strType);
|
||||
}
|
||||
else if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||
{
|
||||
//拖拽井次,生成多井
|
||||
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||
}
|
||||
}
|
||||
|
||||
//QMessageBox::information(this, "提示", strExtern);
|
||||
|
|
@ -5421,6 +5428,62 @@ void MainWindowCurve::Open(QString fileFull)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindowCurve::OpenMultiWell(QString fileFull)
|
||||
{
|
||||
QString strPrjname = "";
|
||||
QJsonArray wellsArray;
|
||||
|
||||
QJsonParseError jsonError;
|
||||
// 文件
|
||||
QFile file(fileFull);
|
||||
if(file.open(QIODevice::ReadOnly))
|
||||
{
|
||||
// 解析JSON
|
||||
QJsonDocument document = QJsonDocument::fromJson(file.readAll(), &jsonError);
|
||||
if (!document.isNull() && (jsonError.error == QJsonParseError::NoError))
|
||||
{
|
||||
if (document.isObject())
|
||||
{
|
||||
QJsonObject object = document.object();
|
||||
//
|
||||
if (object.contains("wells"))
|
||||
{
|
||||
QJsonValue value = object.value("wells");
|
||||
if (value.isArray()) {
|
||||
wellsArray = value.toArray();
|
||||
qDebug() << "wellsArray number:" << QString::number(wellsArray.size());
|
||||
|
||||
//是否正在加载json
|
||||
g_iLoadingJson = 1;
|
||||
//展示所有井
|
||||
DisplayWells(wellsArray);
|
||||
g_iLoadingJson = 0;
|
||||
|
||||
//统一处理头部滚动条
|
||||
s_setRangeVScrollBar2(m_strUuid);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
file.close();
|
||||
qDebug() << "JSON 模板文件读取成功!";
|
||||
|
||||
//重置右侧滚动条
|
||||
// ui->verticalScrollBar->setRange(-m_iY2*100, -m_iY1*100);
|
||||
// ui->verticalScrollBar->setValue(-m_iY2*100);
|
||||
vertScrollBarChanged(-m_iY2*100);
|
||||
|
||||
QMessageBox::information(NULL,"提示","模板加载完成!",QMessageBox::Ok);
|
||||
emit sig_resizeWindow();
|
||||
|
||||
} else {
|
||||
qWarning() << "JSON 模板文件打开失败:" << file.errorString();
|
||||
QMessageBox::information(NULL,"提示","模板加载失败!",QMessageBox::Ok);
|
||||
}
|
||||
}
|
||||
|
||||
//改变道宽
|
||||
void MainWindowCurve::s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth)
|
||||
{
|
||||
|
|
@ -6610,3 +6673,24 @@ void MainWindowCurve::onSectionResized(int logicalIndex, int oldSize, int newSiz
|
|||
//居中
|
||||
emit sig_resizeWindow();
|
||||
}
|
||||
|
||||
//拖拽井次,生成多井
|
||||
void MainWindowCurve::s_AddMultiWell(QString strUuid, QString strSlfName, QString strWellName)
|
||||
{
|
||||
if(strUuid != m_strUuid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(m_fileJson=="")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
g_strSlfName = strSlfName;
|
||||
g_strWellName = strWellName;
|
||||
//多井的打开工程,使用模板的井名和slf名
|
||||
m_bMultiProject = false;
|
||||
|
||||
//
|
||||
OpenMultiWell(m_fileJson);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,7 +142,8 @@ public:
|
|||
void DisplayTrack_Top(int id, QJsonObject trackTop, QJsonObject trackInfo);
|
||||
|
||||
void Open(QString fileFull);//打开
|
||||
QString m_fileJson;
|
||||
void OpenMultiWell(QString fileFull);//打开
|
||||
QString m_fileJson="";
|
||||
|
||||
bool m_bMultiProject = false; //多井的打开工程,使用模板的井名和slf名
|
||||
public:
|
||||
|
|
@ -233,6 +234,9 @@ public slots:
|
|||
//列宽改变
|
||||
void onSectionResized(int logicalIndex, int oldSize, int newSize);
|
||||
|
||||
//拖拽井次,生成多井
|
||||
void s_AddMultiWell(QString strUuid, QString strSlfName, QString strWellName);
|
||||
|
||||
public:
|
||||
QAction* m_selectWellAc = nullptr; //选择井
|
||||
QAction* m_fixwellsectionHeaderAc = nullptr; //锁头
|
||||
|
|
|
|||
|
|
@ -377,8 +377,19 @@ void PreQTableWidget::dropEvent(QDropEvent *event)
|
|||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||
{
|
||||
//拖拽井次,生成多井
|
||||
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||
// 接受拖拽事件
|
||||
event->setDropAction(Qt::MoveAction);
|
||||
event->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果井名不正确,不接受拖拽事件
|
||||
event->ignore();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,11 +145,16 @@ void QMyTreeWidget::startDrag(Qt::DropActions supportedActions)
|
|||
{
|
||||
//根节点(项目名称)
|
||||
}
|
||||
else if (strTreeTag == "curveObject" || strTreeTag == "waveObject" || strTreeTag == "tableObject"){
|
||||
else if (strTreeTag == "curveObject" || strTreeTag == "waveObject" || strTreeTag == "tableObject" ||
|
||||
strTreeTag == "wellItem")//井次名称对应多井,统一处理
|
||||
{
|
||||
//曲线
|
||||
QString strSlfName = item->data(0, Qt::UserRole+1).toString();
|
||||
QString strWellName = item->data(0, Qt::UserRole+2).toString();
|
||||
|
||||
if (strTreeTag == "wellItem")//井次名称
|
||||
{
|
||||
strWellName = item->text(0);
|
||||
}
|
||||
//曲线对象(AC、BS...)
|
||||
QMimeData *mimeData = new QMimeData;
|
||||
// 这里需要根据你的item数据来设置mimeData,例如:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user