左侧树图,拖拽井次,使用json模板生成多井。
This commit is contained in:
parent
b195449efb
commit
99c19344b5
|
|
@ -106,6 +106,9 @@ signals:
|
||||||
//LogMud
|
//LogMud
|
||||||
void sig_AddLogMud(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int nW = 0);
|
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);
|
void sig_AddWave(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strWaveName);
|
||||||
//删除波列
|
//删除波列
|
||||||
|
|
|
||||||
|
|
@ -7484,8 +7484,19 @@ void FormDraw::dropEvent(QDropEvent* event)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 如果井名不正确,不接受拖拽事件
|
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||||
event->ignore();
|
{
|
||||||
|
//拖拽井次,生成多井
|
||||||
|
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||||
|
// 接受拖拽事件
|
||||||
|
event->setDropAction(Qt::MoveAction);
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 如果井名不正确,不接受拖拽事件
|
||||||
|
event->ignore();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -2508,8 +2508,19 @@ void FormInfo::dropEvent(QDropEvent* event)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 如果井名不正确,不接受拖拽事件
|
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||||
event->ignore();
|
{
|
||||||
|
//拖拽井次,生成多井
|
||||||
|
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||||
|
// 接受拖拽事件
|
||||||
|
event->setDropAction(Qt::MoveAction);
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 如果井名不正确,不接受拖拽事件
|
||||||
|
event->ignore();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -271,8 +271,19 @@ void FormTrackTop::dropEvent(QDropEvent* event)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 如果井名不正确,不接受拖拽事件
|
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||||
event->ignore();
|
{
|
||||||
|
//拖拽井次,生成多井
|
||||||
|
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||||
|
// 接受拖拽事件
|
||||||
|
event->setDropAction(Qt::MoveAction);
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 如果井名不正确,不接受拖拽事件
|
||||||
|
event->ignore();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
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_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=new QDockWidget(tr(""),this);
|
||||||
m_dock1->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable
|
m_dock1->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable
|
||||||
|
|
@ -5271,6 +5273,11 @@ void MainWindowCurve::dropEvent(QDropEvent* event)
|
||||||
//新建井+道+曲线(首条)
|
//新建井+道+曲线(首条)
|
||||||
NewWellAndTrack(strWellName, strSlfName, strLineName, strType);
|
NewWellAndTrack(strWellName, strSlfName, strLineName, strType);
|
||||||
}
|
}
|
||||||
|
else if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||||
|
{
|
||||||
|
//拖拽井次,生成多井
|
||||||
|
emit CallManage::getInstance()->sig_AddMultiWell(m_strUuid, strSlfName, strWellName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//QMessageBox::information(this, "提示", strExtern);
|
//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)
|
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();
|
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 DisplayTrack_Top(int id, QJsonObject trackTop, QJsonObject trackInfo);
|
||||||
|
|
||||||
void Open(QString fileFull);//打开
|
void Open(QString fileFull);//打开
|
||||||
QString m_fileJson;
|
void OpenMultiWell(QString fileFull);//打开
|
||||||
|
QString m_fileJson="";
|
||||||
|
|
||||||
bool m_bMultiProject = false; //多井的打开工程,使用模板的井名和slf名
|
bool m_bMultiProject = false; //多井的打开工程,使用模板的井名和slf名
|
||||||
public:
|
public:
|
||||||
|
|
@ -233,6 +234,9 @@ public slots:
|
||||||
//列宽改变
|
//列宽改变
|
||||||
void onSectionResized(int logicalIndex, int oldSize, int newSize);
|
void onSectionResized(int logicalIndex, int oldSize, int newSize);
|
||||||
|
|
||||||
|
//拖拽井次,生成多井
|
||||||
|
void s_AddMultiWell(QString strUuid, QString strSlfName, QString strWellName);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QAction* m_selectWellAc = nullptr; //选择井
|
QAction* m_selectWellAc = nullptr; //选择井
|
||||||
QAction* m_fixwellsectionHeaderAc = nullptr; //锁头
|
QAction* m_fixwellsectionHeaderAc = nullptr; //锁头
|
||||||
|
|
|
||||||
|
|
@ -377,8 +377,19 @@ void PreQTableWidget::dropEvent(QDropEvent *event)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 如果井名不正确,不接受拖拽事件
|
if(strType=="wellItem")//井次名称对应多井,统一处理
|
||||||
event->ignore();
|
{
|
||||||
|
//拖拽井次,生成多井
|
||||||
|
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 strSlfName = item->data(0, Qt::UserRole+1).toString();
|
||||||
QString strWellName = item->data(0, Qt::UserRole+2).toString();
|
QString strWellName = item->data(0, Qt::UserRole+2).toString();
|
||||||
|
if (strTreeTag == "wellItem")//井次名称
|
||||||
|
{
|
||||||
|
strWellName = item->text(0);
|
||||||
|
}
|
||||||
//曲线对象(AC、BS...)
|
//曲线对象(AC、BS...)
|
||||||
QMimeData *mimeData = new QMimeData;
|
QMimeData *mimeData = new QMimeData;
|
||||||
// 这里需要根据你的item数据来设置mimeData,例如:
|
// 这里需要根据你的item数据来设置mimeData,例如:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user