diff --git a/.idea/QtSettings.xml b/.idea/QtSettings.xml index ba715ef..1762fa9 100644 --- a/.idea/QtSettings.xml +++ b/.idea/QtSettings.xml @@ -7,16 +7,16 @@ - - diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 897b274..714877c 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -1,11 +1,5 @@ \ No newline at end of file diff --git a/.idea/editor.xml b/.idea/editor.xml new file mode 100644 index 0000000..46540da --- /dev/null +++ b/.idea/editor.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/cmake/FindCGNS.cmake b/cmake/FindCGNS.cmake index c5bb959..61e8f97 100644 --- a/cmake/FindCGNS.cmake +++ b/cmake/FindCGNS.cmake @@ -39,7 +39,7 @@ find_path(CGNS_DIRS NAMES include/cgnslib.h PATHS - D:/vcpkg/installed/x64-windows + C:/vcpkg/installed/x64-windows NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH ) diff --git a/cmake/FindOpenCASCADE.cmake b/cmake/FindOpenCASCADE.cmake index 88fd0ba..b84b010 100644 --- a/cmake/FindOpenCASCADE.cmake +++ b/cmake/FindOpenCASCADE.cmake @@ -35,7 +35,7 @@ if(LAMPCAE_OpenCASCADE_ALREADY_INCLUDED) endif() set(LAMPCAE_OpenCASCADE_ALREADY_INCLUDED 1) -set(OpenCASCADE_DIRS "C:/OCCT") +set(OpenCASCADE_DIRS ${CMAKE_SOURCE_DIR}/extlib/OCCT) set(OpenCASCADE_VERSION_MAJOR 7) set(OpenCASCADE_VERSION_MINOR 6) @@ -101,10 +101,10 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") set_property(TARGET OpenCASCADE::Tcl86 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_property(TARGET OpenCASCADE::Tk86 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(OpenCASCADE::Freetype PROPERTIES - IMPORTED_IMPLIB_RELEASE "D:/vcpkg/installed/x64-windows/lib/freetype.lib" - IMPORTED_LOCATION_RELEASE "D:/vcpkg/installed/x64-windows/bin/freetype.dll" - IMPORTED_IMPLIB_DEBUG "D:/vcpkg/installed/x64-windows/debug/lib/freetyped.lib" - IMPORTED_LOCATION_DEBUG "D:/vcpkg/installed/x64-windows/debug/bin/freetyped.dll" + IMPORTED_IMPLIB_RELEASE "C:/vcpkg/installed/x64-windows/lib/freetype.lib" + IMPORTED_LOCATION_RELEASE "C:/vcpkg/installed/x64-windows/bin/freetype.dll" + IMPORTED_IMPLIB_DEBUG "C:/vcpkg/installed/x64-windows/debug/lib/freetyped.lib" + IMPORTED_LOCATION_DEBUG "C:/vcpkg/installed/x64-windows/debug/bin/freetyped.dll" ) set_target_properties(OpenCASCADE::Tcl86 PROPERTIES IMPORTED_IMPLIB_RELEASE "${OpenCASCADE_LIBRARY_DIRS}/tcl86.lib" diff --git a/cmake/FindVTK.cmake b/cmake/FindVTK.cmake index 3644a27..7a932f1 100644 --- a/cmake/FindVTK.cmake +++ b/cmake/FindVTK.cmake @@ -36,7 +36,7 @@ endif() set(LAMPCAE_VTK_ALREADY_INCLUDED 1) #set(VTK_DIRS "${CMAKE_SOURCE_DIR}/extlib/VTK") -set(VTK_DIRS "C:/VTK") +set(VTK_DIRS ${CMAKE_SOURCE_DIR}/extlib/VTK) set(VTK_VERSION_MAJOR 9) set(VTK_VERSION_MINOR 3) diff --git a/src/MainWidgets/SelectNodeShow.cpp b/src/MainWidgets/SelectNodeShow.cpp new file mode 100644 index 0000000..dc79191 --- /dev/null +++ b/src/MainWidgets/SelectNodeShow.cpp @@ -0,0 +1,284 @@ +#include +#include "SelectNodeShow.h" +#include "ui_SelectNodeShow.h" +#include +#include +#include +#include +#include +#include "MeshData/meshSingleton.h" +#include "MeshData/meshKernal.h" +#include "preWindow.h" +#include "vtkMeshSelectTableModel.h" +#include "Settings/busAPI.h" // 获取高亮颜色 +#include "Settings/GraphOption.h" // 获取高亮颜色 +namespace MainWidget { + + SelectNodeShow::SelectNodeShow(PreWindow* preWindow,QWidget* parent) + : QDialog(parent) + , ui(new Ui::SelectNodeShow) + ,_preWindow(preWindow) + { + ui->setupUi(this); + init(); + + } + + SelectNodeShow::~SelectNodeShow() + { + delete ui; + } + + void SelectNodeShow::search() + { + on_btnSearch_clicked(); + } + + void SelectNodeShow::revert() + { + on_btnCancel_clicked(); + } + + void SelectNodeShow::submit() + { + on_btnSubmit_clicked(); + } + + bool SelectNodeShow::editable() + { + return true; + } + + void SelectNodeShow::init() + { + //m_editMode = false; + + // m_access = new AccessDB(nullptr, "Threshold"); + // m_access->initDB(); + + this->setAttribute(Qt::WA_StyledBackground); + + initTableView(); + } + + void SelectNodeShow::initTableView() + { + this->_model=new vtkMeshSelectTableModel(_preWindow,this); + this->_model->clear(); + this->ui->tableView->setModel(this->_model); + selectionModel = this->ui->tableView->selectionModel(); + connect(selectionModel,SIGNAL(currentChanged(const QModelIndex&, const QModelIndex&)),this,SLOT(currentChanged(const QModelIndex&, const QModelIndex&))); + // m_sqlModel = new QSqlTableModel(this, m_access); + // + // m_sqlModel->setTable("XXX"); + // + // m_sqlModel->setEditStrategy(QSqlTableModel::OnManualSubmit); + // + // if (!m_sqlModel->select()) { + // qDebug() << "查询失败"; + // qDebug() << m_sqlModel->lastError(); + // return; + // } + // + // ui->tableView->setModel(m_sqlModel); + // + // ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); + // ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); + // + // ui->tableView->setShowGrid(false); + // + // ui->tableView->verticalHeader()->setVisible(false); + // + // ui->tableView->setEditTriggers(QTableView::NoEditTriggers); + } + + bool SelectNodeShow::editMode() + { + return false; + } + + void SelectNodeShow::on_btnEdit_clicked() + { + // // TODO + // // 将其余按键状态置灰 + // // 将表格的编辑模式打开 + // m_editMode = true; + // + // ui->tableView->setEditTriggers(QAbstractItemView::DoubleClicked); + // + // ui->btnNew->setDisabled(true); + // ui->btnNew->setDisabled(true); + // ui->btnDelete->setDisabled(true); + // ui->btnCancel->setEnabled(true); + // ui->btnSubmit->setEnabled(true); + } + + void SelectNodeShow::on_btnNew_clicked() + { + // 删除指定行数 + QItemSelectionModel* selectionModel = this->ui->tableView->selectionModel(); + QModelIndexList selectedIndexes = selectionModel->selectedIndexes(); + if (selectedIndexes.count() == 0) { + return; + } + QList rows; + for (int i = 0; i < selectedIndexes.count(); i++) { + rows.push_back(selectedIndexes[i].row()); + this->_model->setRemoveFlag(selectedIndexes[i].row(),false); + } + + ModuleBase::SelectModel _selectModel=this->_model->getSelectModel(); + if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) { + this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor()); + } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) { + this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor()); + } + _preWindow->reRender(); + this->ui->tableView->show(); + } + + void SelectNodeShow::on_btnSubmit_clicked() + { + // 更新items + QMultiHash selectItems = this->_model->getSelectItems(); + this->_preWindow->setSelectItems(selectItems,this->_model->getSelectModel()); + } + + void SelectNodeShow::on_btnCancel_clicked() + { + + } + + void SelectNodeShow::on_btnDelete_clicked() + { + // 删除指定行数 + QItemSelectionModel* selectionModel = this->ui->tableView->selectionModel(); + QModelIndexList selectedIndexes = selectionModel->selectedIndexes(); + if (selectedIndexes.count() == 0) { + return; + } + QList rows; + for (int i = 0; i < selectedIndexes.count(); i++) { + rows.push_back(selectedIndexes[i].row()); + this->_model->setRemoveFlag(selectedIndexes[i].row(),true); + } + + ModuleBase::SelectModel _selectModel=this->_model->getSelectModel(); + if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) { + this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getMeshNodeColor()); + } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) { + this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getMeshFaceColor()); + } + _preWindow->reRender(); + this->ui->tableView->show(); + } + + void SelectNodeShow::on_btnSearch_clicked() + { + // m_sqlModel->setSort(0, Qt::AscendingOrder); + // + // int result = m_sqlModel->select(); + // if (!result) { + // qDebug() << u8"查询失败: " << m_sqlModel->lastError().text(); + // return; + // } + // + // ui->btnNew->setEnabled(true); + // ui->btnEdit->setEnabled(true); + // ui->btnDelete->setEnabled(true); + // ui->btnCancel->setDisabled(true); + // ui->btnSubmit->setDisabled(true); + // + // ui->tableView->scrollToTop(); + } + void SelectNodeShow::initSelectNodeShow(QMultiHash* selectItems,ModuleBase::SelectModel _selectModel) + { + this->_model->SetData(selectItems,_selectModel); + // + + if (this->_model->rowCount() > 1e4) { + this->ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); + }else{ + this->ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + } + this->ui->tableView->show(); + + } + void SelectNodeShow::currentChanged(const QModelIndex& current, + const QModelIndex& previous) + { + if (current.isValid()) { + // 处理当前行的逻辑,比如更新界面或者执行其他操作 + this->_model->setCurrentRowIndex(current); + } + } + void SelectNodeShow::on_btnHightlightSelect_clicked() { + ModuleBase::SelectModel _selectModel=this->_model->getSelectModel(); + // 清除选中行 + QList deleterows; + QList highrows; + deleterows.clear(); + highrows.clear(); + for(int i=0;i_model->getRemoveFlag(selectRows[i])) { + deleterows.push_back(selectRows[i]); + } else { + highrows.push_back(selectRows[i]); + } + } + if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) { + this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshNodeColor()); + this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor()); + } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) { + this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshFaceColor()); + this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor()); + } + + // 删除指定行数 + QItemSelectionModel* selectionModel = this->ui->tableView->selectionModel(); + QModelIndexList selectedIndexes = selectionModel->selectedIndexes(); + if (selectedIndexes.count() == 0) { + return; + } + QList rows; + for (int i = 0; i < selectedIndexes.count(); i++) { + rows.push_back(selectedIndexes[i].row()); + } + +// ModuleBase::SelectModel _selectModel=this->_model->getSelectModel(); + if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) { + this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getPreHighLightColor()); + } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) { + this->_model->HightlightRows(rows,Setting::BusAPI::instance()->getGraphOption()->getPreHighLightColor()); + } + _preWindow->reRender(); + selectRows=rows; +// this->ui->tableView->show(); + } + void SelectNodeShow::on_btnShowSelect_clicked() { + QList deleterows; + QList highrows; + deleterows.clear(); + highrows.clear(); + // 针对所有行进行操作 + for(int i=0;i_model->rowCount();i++) { + if(this->_model->getRemoveFlag(i)) { + deleterows.push_back(i); + } else { + highrows.push_back(i); + } + } + ModuleBase::SelectModel _selectModel=this->_model->getSelectModel(); + if( _selectModel== ModuleBase::BoxMeshNode || _selectModel == ModuleBase::MeshNode||_selectModel==ModuleBase::BoxMeshSurfaceNode) { + this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshNodeColor()); + this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor()); + } else if(_selectModel == ModuleBase::BoxMeshCell || _selectModel == ModuleBase::MeshCell||_selectModel==ModuleBase::BoxMeshSurfaceCell) { + this->_model->HightlightRows(deleterows,Setting::BusAPI::instance()->getGraphOption()->getMeshFaceColor()); + this->_model->HightlightRows(highrows,Setting::BusAPI::instance()->getGraphOption()->getHighLightColor()); + } + + _preWindow->reRender(); + + + } +} \ No newline at end of file diff --git a/src/MainWidgets/SelectNodeShow.h b/src/MainWidgets/SelectNodeShow.h new file mode 100644 index 0000000..9b86d80 --- /dev/null +++ b/src/MainWidgets/SelectNodeShow.h @@ -0,0 +1,81 @@ +#ifndef THRESHOLDMANAGE_H +#define THRESHOLDMANAGE_H + +#include "mainWidgetsAPI.h" +#include +#include +#include +#include +#include +#include +#include "MeshData/meshSingleton.h" +#include "MeshData/meshKernal.h" +#include "preWindow.h" +#include "meshViewProvider.h" +#include "meshKernalViewObject.h" +#include "vtkMeshSelectTableModel.h" +#include "preWindow.h" +#include "MeshData/meshKernal.h" +#include "meshViewProvider.h" +#include "meshKernalViewObject.h" +#include "MeshData/meshSet.h" + + + +namespace Ui { + class SelectNodeShow; +} + +namespace MainWidget { + class MAINWIDGETSAPI SelectNodeShow : public QDialog { + Q_OBJECT + + public: + explicit SelectNodeShow(PreWindow* preWindow,QWidget* parent = nullptr); + ~SelectNodeShow(); + + void search(); + + void revert(); + + void submit(); + + bool editable(); + + bool editMode(); + + void initSelectNodeShow(QMultiHash* selectItems,ModuleBase::SelectModel _selectModel); + + private: + void init(); + + void initTableView(); + + private slots: + void on_btnEdit_clicked(); + + void on_btnNew_clicked(); + + void on_btnSubmit_clicked(); + + void on_btnCancel_clicked(); + + void on_btnDelete_clicked(); + + void on_btnSearch_clicked(); + + void on_btnShowSelect_clicked(); + + void on_btnHightlightSelect_clicked(); + + void currentChanged(const QModelIndex& current, const QModelIndex& previous) ; + + private: + Ui::SelectNodeShow* ui; + vtkMeshSelectTableModel* _model; + PreWindow* _preWindow; + QItemSelectionModel *selectionModel; + QList selectRows; + }; +} // namespace MainWidget +#endif // THRESHOLDMANAGE_H diff --git a/src/MainWidgets/SelectNodeShow.ui b/src/MainWidgets/SelectNodeShow.ui new file mode 100644 index 0000000..e61065c --- /dev/null +++ b/src/MainWidgets/SelectNodeShow.ui @@ -0,0 +1,145 @@ + + + SelectNodeShow + + + + 0 + 0 + 840 + 782 + + + + Form + + + + + + + 0 + 0 + + + + + 16777215 + 50 + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + + + 提交 + + + false + + + + + + + + 0 + 0 + + + + + + + 删除 + + + false + + + + + + + + 0 + 0 + + + + + + + 新增 + + + false + + + + + + + 高亮选择 + + + + + + + 显示点集 + + + + + + + Qt::Horizontal + + + + 1598 + 20 + + + + + + + + + + + + + + +