logplus/ConvertorManager/include/ImportdataDialog.h
2025-10-29 17:23:30 +08:00

145 lines
4.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file ImportDataDialog.h
* @brief 测井数据导入界面
* @date 2014-8-8
* @author: ZhouWenfei
*/
#ifndef IMPORTDATA_H
#define IMPORTDATA_H
#pragma warning( push ,0)
#include <QDialog>
//#include "ObjectFolder.h"
//#include "ObjProject.h"
#include <QItemDelegate>
#include "ConvertorManager.h"
#include "InterfaceWidget.h"
#include "ConvertorExport.h"
//#include "ObjWell.h"
//#include "Family.h"
//#include "ProjectCommand.h"
#pragma execution_character_set("utf-8")
#pragma warning( pop )
namespace Ui
{
class ImportData ;
}
BEGIN_OSGGRAPHICS_NAMESPACE;
//用于在表格中解析曲线类型Family
class FamilyDelegate : public QItemDelegate
{
Q_OBJECT
public:
FamilyDelegate(QObject *parent = 0): QItemDelegate(parent) { }
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QComboBox *editor = new QComboBox(parent);
// static std::vector<Family> familys;//避免多次从数据库加载
// if(familys.size()<=0){
// Family afa;
// afa.GetFamily(familys);
// }
// for(int i=0;i<familys.size();i++)
// {
// editor->addItem(QString::fromStdString(familys[i].GetFamilyType()));
// }
return editor;
}
void setEditorData(QWidget *editor, const QModelIndex &index) const
{
QString text = index.model()->data(index, Qt::EditRole).toString();
QComboBox *comboBox = static_cast<QComboBox*>(editor);
int tindex = comboBox->findText(text);
comboBox->setCurrentIndex(tindex);
}
void setModelData(QWidget *editor, QAbstractItemModel *model,
const QModelIndex &index) const
{
QComboBox *comboBox = static_cast<QComboBox*>(editor);
QString text = comboBox->currentText();
model->setData(index, text, Qt::EditRole);
}
void updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option, const QModelIndex &index) const
{
editor->setGeometry(option.rect);
}
};
class CONVERTOR_EXPORT ImportDataDialog : public QDialog
{
Q_OBJECT
public:
ImportDataDialog(QWidget *parent = 0,QString wellname="",QString wellroundname="");
~ImportDataDialog();
QString m_CurrentWellName;
QString m_CurrentWellRoundName;
public:
/**
* @brief 展示主界面数据
* @param[in]ConvertorVector 所有转换器
* @param[in]filePath 文件路径
*/
void DisplayFileInformationAreaData( const QVector<IConvertor*>ConvertorVector,const QString filePath);
bool IsHaveSameCurve(int NumLog,vector<int> &OutCurveNo,vector<char*> &OutCurve);
void SetProjectname(const QString projectname){m_projectname = projectname;}
//int CheckExistCurve(QString outputfilename,int NumLog,vector<int>& OutCurveNo,vector<char*>& OutCurve);
private:
/**
* @brief 选择区数据展示
* @param[in]pInterface 主界面UI
* @param[in]fileHead 表头
* @param[in]CurverName 曲线名
* @param[in]pConvertor 转换器
*/
void DisplaySelectAreaData( InterfaceWidget *pInterface,const QStringList fileHead, IConvertor *pConvertor);
private slots:
/**
* @brief 确定按钮曲线上树信号槽
*/
virtual void AcceptOK();
//whp add 2019.10.12
void SelAll();
void NotSelAll();
void ReverseSel();
private:
// CObjWell * GetWellBaseName(IConvertor *pConvertor,const std::string strWellName);
bool SelectAndDeleteWellLog(int row,/* QList<CObjWellLog*>&vOSGWellLog,*/InterfaceWidget *pCurrentInterfaceWidget, int ColumnCount,IConvertor *pConvertor);//, CBaseObject *pWellTime);
void InitWell(InterfaceWidget *pInterfaceWidget,IConvertor*pConvertor);
void InitWellLogRound(InterfaceWidget *pInterfaceWidget,IConvertor*pConvertor);
void UpdateWell(InterfaceWidget *pInterfaceWidget,IConvertor *pConvertor);
void UpdateWellLogRound(InterfaceWidget *pInterfaceWidget,IConvertor *pConvertor);
private:
//内部数据采用slf格式处理尤其是wave\table类数据需要自动生成slf文件名
QString GenerateSlfFileName(InterfaceWidget *pCurrentInterfaceWidget);
QVector<IConvertor*>m_vConvertorVector;
std::map<QWidget*,InterfaceWidget*>m_TabInterWidget;
// std::map<IConvertor*,QList<CObjWellLog*> >m_ConvertorWellLog;
Ui::ImportData *m_pImportDataUI;
QString m_FilePath;
bool m_ExistSameWellName;
bool m_ExistSameWellRoundName;
QString m_projectname;
};
END_OSGGRAPHICS_NAMESPACE;
using namespace pai::graphics;
#endif // IMPORTDATA_H