ui: graph zoom buttons
Added simple zoom buttons to graph
This commit is contained in:
@@ -40,6 +40,10 @@ QtGraphView::QtGraphView(ViewLayout* viewLayout)
|
||||
, m_refreshFunctor(std::bind(&QtGraphView::doRefreshView, this))
|
||||
, m_focusInFunctor(std::bind(&QtGraphView::doFocusIn, this, std::placeholders::_1))
|
||||
, m_focusOutFunctor(std::bind(&QtGraphView::doFocusOut, this, std::placeholders::_1))
|
||||
, m_zoomInButton()
|
||||
, m_zoomOutButton()
|
||||
, m_zoomInButtonSpeed(20.0f)
|
||||
, m_zoomOutButtonSpeed(-20.0f)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -68,9 +72,26 @@ void QtGraphView::initView()
|
||||
view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
|
||||
view->viewport()->setCursor(Qt::ArrowCursor);
|
||||
|
||||
getView()->setMouseWheelCallback(std::bind(&QtGraphView::onMouseWheelEvent, this, std::placeholders::_1));
|
||||
|
||||
widget->layout()->addWidget(view);
|
||||
|
||||
m_zoomInButton = new QPushButton(widget);
|
||||
m_zoomInButton->setObjectName("zoom_in_button");
|
||||
m_zoomInButton->setText("+");
|
||||
m_zoomInButton->setGeometry(QRect(5, 5, 25, 25));
|
||||
m_zoomInButton->setAutoRepeat(true);
|
||||
m_zoomInButton->setToolTip("Zoom in (Shift + Mousewheel forward)");
|
||||
connect(m_zoomInButton, SIGNAL(pressed()), this, SLOT(zoomInPressed()));
|
||||
|
||||
m_zoomOutButton = new QPushButton(widget);
|
||||
m_zoomOutButton->setObjectName("zoom_out_button");
|
||||
m_zoomOutButton->setText("-");
|
||||
m_zoomOutButton->setGeometry(QRect(5, 34, 25, 25));
|
||||
m_zoomOutButton->setAutoRepeat(true);
|
||||
m_zoomOutButton->setToolTip("Zoom out (Shift + Mousewheel back)");
|
||||
connect(m_zoomOutButton, SIGNAL(pressed()), this, SLOT(zoomOutPressed()));
|
||||
|
||||
connect(view, SIGNAL(emptySpaceClicked()), this, SLOT(clickedInEmptySpace()));
|
||||
|
||||
m_scrollSpeedChangeListenerHorizontal.setScrollBar(view->horizontalScrollBar());
|
||||
@@ -147,6 +168,34 @@ void QtGraphView::clickedInEmptySpace()
|
||||
}
|
||||
}
|
||||
|
||||
void QtGraphView::zoomInPressed()
|
||||
{
|
||||
zoom(m_zoomInButtonSpeed);
|
||||
}
|
||||
|
||||
void QtGraphView::zoomOutPressed()
|
||||
{
|
||||
zoom(m_zoomOutButtonSpeed);
|
||||
}
|
||||
|
||||
void QtGraphView::onMouseWheelEvent(QWheelEvent* event)
|
||||
{
|
||||
bool zoomDefault = ApplicationSettings::getInstance()->getControlsGraphZoomOnMouseWheel();
|
||||
bool shiftPressed = event->modifiers() == Qt::ShiftModifier;
|
||||
|
||||
if (zoomDefault != shiftPressed)
|
||||
{
|
||||
if (event->delta() != 0.0f)
|
||||
{
|
||||
zoom(event->delta());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// QGraphicsView::wheelEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
void QtGraphView::switchToNewGraphData()
|
||||
{
|
||||
m_oldGraph = m_graph;
|
||||
@@ -723,3 +772,12 @@ void QtGraphView::doFocusOut(const std::vector<Id>& tokenIds)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QtGraphView::zoom(const float delta)
|
||||
{
|
||||
QtGraphicsView* view = getView();
|
||||
if (view != NULL)
|
||||
{
|
||||
view->updateZoom(delta);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include <QGraphicsView>
|
||||
#include <QPointF>
|
||||
|
||||
#include <QPushButton>
|
||||
|
||||
#include "component/view/GraphView.h"
|
||||
#include "qt/utility/QtScrollSpeedChangeListener.h"
|
||||
#include "qt/utility/QtThreadedFunctor.h"
|
||||
@@ -53,6 +55,11 @@ private slots:
|
||||
void finishedTransition();
|
||||
void clickedInEmptySpace();
|
||||
|
||||
void zoomInPressed();
|
||||
void zoomOutPressed();
|
||||
|
||||
void onMouseWheelEvent(QWheelEvent* event);
|
||||
|
||||
private:
|
||||
void switchToNewGraphData();
|
||||
|
||||
@@ -70,6 +77,8 @@ private:
|
||||
void doFocusIn(const std::vector<Id>& tokenIds);
|
||||
void doFocusOut(const std::vector<Id>& tokenIds);
|
||||
|
||||
void zoom(const float delta);
|
||||
|
||||
std::shared_ptr<QtGraphNode> findNodeRecursive(const std::list<std::shared_ptr<QtGraphNode>>& nodes, Id tokenId);
|
||||
|
||||
std::shared_ptr<QtGraphNode> createNodeRecursive(
|
||||
@@ -118,6 +127,12 @@ private:
|
||||
|
||||
QtScrollSpeedChangeListener m_scrollSpeedChangeListenerHorizontal;
|
||||
QtScrollSpeedChangeListener m_scrollSpeedChangeListenerVertical;
|
||||
|
||||
QPushButton* m_zoomInButton;
|
||||
QPushButton* m_zoomOutButton;
|
||||
|
||||
float m_zoomInButtonSpeed;
|
||||
float m_zoomOutButtonSpeed;
|
||||
};
|
||||
|
||||
#endif // QT_GRAPH_VIEW_H
|
||||
|
||||
Reference in New Issue
Block a user