ui: Added style for graph zoom buttons

* moved zoom buttons to QtGraphicsView due to stylesheet and repositioning on resize
This commit is contained in:
Eberhard Graether
2017-01-30 16:28:32 +01:00
parent 85be119e7f
commit 00cba732df
7 changed files with 87 additions and 54 deletions
@@ -14,7 +14,9 @@
#include "qt/view/graphElements/QtGraphNodeData.h"
#include "qt/view/graphElements/QtGraphNodeBundle.h"
#include "qt/utility/QtContextMenu.h"
#include "qt/utility/utilityQt.h"
#include "settings/ApplicationSettings.h"
#include "utility/ResourcePaths.h"
QtGraphicsView::QtGraphicsView(QWidget* parent)
: QGraphicsView(parent)
@@ -25,6 +27,8 @@ QtGraphicsView::QtGraphicsView(QWidget* parent)
, m_left(false)
, m_right(false)
, m_shift(false)
, m_zoomInButtonSpeed(20.0f)
, m_zoomOutButtonSpeed(-20.0f)
{
setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
@@ -44,6 +48,20 @@ QtGraphicsView::QtGraphicsView(QWidget* parent)
m_copyNodeNameAction->setStatusTip(tr("Copies the name of this node to the clipboard"));
m_copyNodeNameAction->setToolTip(tr("Copies the name of this node to the clipboard"));
connect(m_copyNodeNameAction, SIGNAL(triggered()), this, SLOT(copyNodeName()));
m_zoomInButton = new QPushButton(this);
m_zoomInButton->setObjectName("zoom_in_button");
m_zoomInButton->setAutoRepeat(true);
m_zoomInButton->setToolTip("Zoom in (Shift + Mousewheel forward)");
connect(m_zoomInButton, SIGNAL(pressed()), this, SLOT(zoomInPressed()));
m_zoomOutButton = new QPushButton(this);
m_zoomOutButton->setObjectName("zoom_out_button");
m_zoomOutButton->setAutoRepeat(true);
m_zoomOutButton->setToolTip("Zoom out (Shift + Mousewheel back)");
connect(m_zoomOutButton, SIGNAL(pressed()), this, SLOT(zoomOutPressed()));
refreshStyle();
}
float QtGraphicsView::getZoomFactor() const
@@ -118,6 +136,28 @@ void QtGraphicsView::updateZoom(float delta)
updateTransform();
}
void QtGraphicsView::refreshStyle()
{
m_zoomInButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath() + "graph_view/images/zoomin.png",
"search/button"
));
m_zoomOutButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath() + "graph_view/images/zoomout.png",
"search/button"
));
}
void QtGraphicsView::resizeEvent(QResizeEvent* event)
{
m_zoomInButton->setGeometry(QRect(8, event->size().height() - 50, 19, 19));
m_zoomOutButton->setGeometry(QRect(8, event->size().height() - 27, 19, 19));
m_zoomInButton->setIconSize(QSize(15, 15));
m_zoomOutButton->setIconSize(QSize(15, 15));
}
void QtGraphicsView::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton && !itemAt(event->pos()))
@@ -405,6 +445,16 @@ void QtGraphicsView::copyNodeName()
QApplication::clipboard()->setText(m_clipboardNodeName.c_str());
}
void QtGraphicsView::zoomInPressed()
{
updateZoom(m_zoomInButtonSpeed);
}
void QtGraphicsView::zoomOutPressed()
{
updateZoom(m_zoomOutButtonSpeed);
}
bool QtGraphicsView::moves() const
{
return m_up || m_down || m_left || m_right;
+16 -2
View File
@@ -4,6 +4,7 @@
#include <memory>
#include <QGraphicsView>
#include <QPushButton>
#include "utility/file/FilePath.h"
@@ -27,9 +28,13 @@ public:
void updateZoom(float delta);
void refreshStyle();
protected:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void resizeEvent(QResizeEvent* event);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void keyPressEvent(QKeyEvent* event);
void keyReleaseEvent(QKeyEvent* event);
@@ -48,6 +53,9 @@ private slots:
void exportGraph();
void copyNodeName();
void zoomInPressed();
void zoomOutPressed();
private:
bool moves() const;
@@ -71,6 +79,12 @@ private:
QAction* m_exportGraphAction;
QAction* m_copyNodeNameAction;
QPushButton* m_zoomInButton;
QPushButton* m_zoomOutButton;
float m_zoomInButtonSpeed;
float m_zoomOutButtonSpeed;
};
#endif // QT_GRAPHICS_VIEW_H