From 79e935f8ac41b6af367e552a72bba121a2ecf02d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 14 Nov 2025 22:29:21 -0500 Subject: [PATCH] Fix middle button pan on Connections tab --- forms/mainwindow.ui | 5 +---- include/editor.h | 1 + include/ui/graphicsview.h | 4 +++- src/editor.cpp | 8 +++++++- src/mainwindow.cpp | 12 ++++++------ 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index 977028e2..c6b6931e 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -1249,7 +1249,7 @@ - + 0 @@ -2605,9 +2605,6 @@ QAbstractScrollArea::SizeAdjustPolicy::AdjustIgnored - - QGraphicsView::DragMode::NoDrag - QGraphicsView::ViewportAnchor::AnchorUnderMouse diff --git a/include/editor.h b/include/editor.h index 21368f61..5b36dbfc 100644 --- a/include/editor.h +++ b/include/editor.h @@ -259,6 +259,7 @@ private: void onMapStartPaint(QGraphicsSceneMouseEvent *event, LayoutPixmapItem *item); void onMapEndPaint(QGraphicsSceneMouseEvent *event, LayoutPixmapItem *item); void setStatusFromMapPos(const QPoint &pos); + bool isMiddleButtonScrollInProgress() const; private slots: void setSmartPathCursorMode(QGraphicsSceneMouseEvent *event); diff --git a/include/ui/graphicsview.h b/include/ui/graphicsview.h index d4fef2ec..8557f5b2 100644 --- a/include/ui/graphicsview.h +++ b/include/ui/graphicsview.h @@ -118,7 +118,9 @@ class ConnectionsView : public GraphicsView { Q_OBJECT public: - ConnectionsView(QWidget *parent = nullptr) : GraphicsView(parent) {} + ConnectionsView(QWidget *parent = nullptr) : GraphicsView(parent) { + this->enableMiddleMouseButtonScroll = true; + } signals: void pressedDelete(); diff --git a/src/editor.cpp b/src/editor.cpp index 2d4add0d..793453e9 100644 --- a/src/editor.cpp +++ b/src/editor.cpp @@ -1432,9 +1432,15 @@ void Editor::adjustStraightPathPos(QGraphicsSceneMouseEvent *event, LayoutPixmap } } +bool Editor::isMiddleButtonScrollInProgress() const { + if (this->editMode == EditMode::Connections) + return ui->graphicsView_Connections->getIsMiddleButtonScrollInProgress(); + return ui->graphicsView_Map->getIsMiddleButtonScrollInProgress(); +} + void Editor::mouseEvent_map(QGraphicsSceneMouseEvent *event, LayoutPixmapItem *item) { auto editAction = getEditAction(); - if (editAction == EditAction::Move || ui->graphicsView_Map->getIsMiddleButtonScrollInProgress()) { + if (editAction == EditAction::Move || isMiddleButtonScrollInProgress()) { event->ignore(); return; } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 315d6bda..1781e51e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1302,9 +1302,9 @@ void MainWindow::refreshMapScene() { ui->graphicsView_currentMetatileSelection->setScene(editor->scene_current_metatile_selection); ui->graphicsView_currentMetatileSelection->setFixedSize(editor->current_metatile_selection_item->pixmap().width() + 2, editor->current_metatile_selection_item->pixmap().height() + 2); - ui->graphicsView_Collision->setScene(editor->scene_collision_metatiles); - //ui->graphicsView_Collision->setSceneRect(editor->scene_collision_metatiles->sceneRect()); - ui->graphicsView_Collision->setFixedSize(editor->movement_permissions_selector_item->pixmap().width() + 2, editor->movement_permissions_selector_item->pixmap().height() + 2); + ui->graphicsView_CollisionSelector->setScene(editor->scene_collision_metatiles); + //ui->graphicsView_CollisionSelector->setSceneRect(editor->scene_collision_metatiles->sceneRect()); + ui->graphicsView_CollisionSelector->setFixedSize(editor->movement_permissions_selector_item->pixmap().width() + 2, editor->movement_permissions_selector_item->pixmap().height() + 2); on_mainTabBar_tabBarClicked(ui->mainTabBar->currentIndex()); } @@ -3150,9 +3150,9 @@ void MainWindow::on_horizontalSlider_CollisionZoom_valueChanged(int value) { editor->movement_permissions_selector_item->pixmap().height()); size *= scale; - ui->graphicsView_Collision->setResizeAnchor(QGraphicsView::NoAnchor); - ui->graphicsView_Collision->setTransform(transform); - ui->graphicsView_Collision->setFixedSize(size.width() + 2, size.height() + 2); + ui->graphicsView_CollisionSelector->setResizeAnchor(QGraphicsView::NoAnchor); + ui->graphicsView_CollisionSelector->setTransform(transform); + ui->graphicsView_CollisionSelector->setFixedSize(size.width() + 2, size.height() + 2); ui->scrollAreaWidgetContents_Collision->adjustSize(); }