logplus/ConvertorManager/include/ImportdataDialog.h

145 lines
4.4 KiB
C
Raw Normal View History

2025-10-29 17:23:30 +08:00
/**
* @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