/** * @file ImportDataDialog.h * @brief 测井数据导入界面 * @date 2014-8-8 * @author: ZhouWenfei */ #ifndef IMPORTDATA_H #define IMPORTDATA_H #pragma warning( push ,0) #include //#include "ObjectFolder.h" //#include "ObjProject.h" #include #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 familys;//避免多次从数据库加载 // if(familys.size()<=0){ // Family afa; // afa.GetFamily(familys); // } // for(int i=0;iaddItem(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(editor); int tindex = comboBox->findText(text); comboBox->setCurrentIndex(tindex); } void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { QComboBox *comboBox = static_cast(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 QVectorConvertorVector,const QString filePath); bool IsHaveSameCurve(int NumLog,vector &OutCurveNo,vector &OutCurve); void SetProjectname(const QString projectname){m_projectname = projectname;} //int CheckExistCurve(QString outputfilename,int NumLog,vector& OutCurveNo,vector& 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&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); QVectorm_vConvertorVector; std::mapm_TabInterWidget; // std::map >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