feat(app): VtkViewToolbar 接入中央画布(view/zoom/fit + axesSettings 弹窗)(Task12 工具条)
This commit is contained in:
parent
2f07e605c8
commit
6edfad9a2f
|
|
@ -138,6 +138,8 @@
|
|||
#include "panels/columns/ColumnDrawer.hpp"
|
||||
#include "panels/columns/CategoryAnalysisTab.hpp"
|
||||
#include "panels/columns/CategorySection.hpp"
|
||||
#include "VtkViewToolbar.hpp"
|
||||
#include "AxesSettingsDialog.hpp"
|
||||
#include "panels/columns/Column3DDataset.hpp"
|
||||
#include "panels/columns/Column2DDataset.hpp"
|
||||
#include "panels/columns/Column3DAnalysis.hpp"
|
||||
|
|
@ -362,10 +364,12 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
|||
|
||||
// 左侧内嵌三栏抽屉(自带折叠按钮)+ 右侧 GL 画布,水平并列(非 GL 覆盖层,避免 z-order/圆角伪影)。
|
||||
auto* drawer = new geopro::app::ColumnDrawer(centerWidget);
|
||||
auto* viewToolbar = new geopro::app::VtkViewToolbar(centerWidget); // VTK 画布全局视图控制竖排工具条
|
||||
auto* viewRow = new QHBoxLayout();
|
||||
viewRow->setContentsMargins(0, 0, 0, 0);
|
||||
viewRow->setSpacing(0);
|
||||
viewRow->addWidget(drawer); // 左侧抽屉(自带折叠按钮)
|
||||
viewRow->addWidget(viewToolbar); // 画布工具条(竖排:设置/前后上下左右/缩放复位)
|
||||
viewRow->addWidget(vtkWidget, 1); // 右侧 GL 画布
|
||||
centerLayout->addWidget(viewHeader);
|
||||
centerLayout->addLayout(viewRow, 1);
|
||||
|
|
@ -658,6 +662,25 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
|||
&geopro::controller::VtkSceneController::zoomOut);
|
||||
QObject::connect(c3, &geopro::app::Column3DDataset::fitRequested, sceneCtrl,
|
||||
&geopro::controller::VtkSceneController::fit);
|
||||
|
||||
// ── VTK 画布工具条(Task 12 §9):全局视图控制 → sceneCtrl ──────────────────
|
||||
QObject::connect(viewToolbar, &geopro::app::VtkViewToolbar::viewRequested, sceneCtrl,
|
||||
&geopro::controller::VtkSceneController::applyView);
|
||||
QObject::connect(viewToolbar, &geopro::app::VtkViewToolbar::zoomInRequested, sceneCtrl,
|
||||
&geopro::controller::VtkSceneController::zoomIn);
|
||||
QObject::connect(viewToolbar, &geopro::app::VtkViewToolbar::zoomOutRequested, sceneCtrl,
|
||||
&geopro::controller::VtkSceneController::zoomOut);
|
||||
QObject::connect(viewToolbar, &geopro::app::VtkViewToolbar::fitRequested, sceneCtrl,
|
||||
&geopro::controller::VtkSceneController::fit);
|
||||
QObject::connect(viewToolbar, &geopro::app::VtkViewToolbar::axesSettingsRequested, &window,
|
||||
[&window, sceneCtrl]() {
|
||||
geopro::app::AxesSettingsDialog dlg({}, {}, {}, &window);
|
||||
if (dlg.exec() != QDialog::Accepted) return;
|
||||
const bool anyShow = dlg.x().show || dlg.y().show || dlg.z().show;
|
||||
sceneCtrl->setAxesMode(anyShow ? geopro::controller::AxesMode::Standard
|
||||
: geopro::controller::AxesMode::None);
|
||||
// per-axis min/max 范围待 VtkSceneController 加坐标轴范围 API 后接入。
|
||||
});
|
||||
// 三维数据集栏勾选(反演剖面)→ 并入渲染勾选集(剖面走帘面路径)。
|
||||
QObject::connect(c3, &geopro::app::Column3DDataset::checkedDatasetsChanged, sceneCtrl,
|
||||
[checkedProfiles, pushChecked](const QStringList& ids) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue