diff --git a/plugins/dockers/overview/overviewdocker_dock.h b/plugins/dockers/overview/overviewdocker_dock.h --- a/plugins/dockers/overview/overviewdocker_dock.h +++ b/plugins/dockers/overview/overviewdocker_dock.h @@ -19,9 +19,11 @@ #define _OVERVIEW_DOCK_H_ #include +#include #include class QVBoxLayout; +class QHBoxLayout; class KisCanvas2; class OverviewWidget; @@ -35,8 +37,12 @@ private: QVBoxLayout *m_layout; + QHBoxLayout *m_buttonLayout; OverviewWidget *m_overviewWidget; QWidget *m_zoomSlider; + QToolButton *m_resetRotation; + QToolButton *m_rotateLeft; + QToolButton *m_rotateRight; KisCanvas2 *m_canvas; }; diff --git a/plugins/dockers/overview/overviewdocker_dock.cpp b/plugins/dockers/overview/overviewdocker_dock.cpp --- a/plugins/dockers/overview/overviewdocker_dock.cpp +++ b/plugins/dockers/overview/overviewdocker_dock.cpp @@ -20,20 +20,28 @@ #include #include +#include #include #include #include "kis_canvas2.h" #include #include +#include +#include +#include #include "kis_image.h" #include "kis_paint_device.h" #include "kis_signal_compressor.h" +#include "kis_icon_utils.h" OverviewDockerDock::OverviewDockerDock( ) : QDockWidget(i18n("Overview")) , m_zoomSlider(0) + , m_resetRotation(0) + , m_rotateLeft(0) + , m_rotateRight(0) , m_canvas(0) { QWidget *page = new QWidget(this); @@ -43,6 +51,8 @@ m_overviewWidget->setMinimumHeight(50); m_layout->addWidget(m_overviewWidget, 1); + m_buttonLayout = new QHBoxLayout(); + m_layout->addLayout(m_buttonLayout); setWidget(page); } @@ -60,17 +70,62 @@ } if (m_zoomSlider) { - m_layout->removeWidget(m_zoomSlider); + m_buttonLayout->removeWidget(m_zoomSlider); delete m_zoomSlider; m_zoomSlider = 0; } + if (m_rotateLeft) { + m_buttonLayout->removeWidget(m_rotateLeft); + delete m_rotateLeft; + m_rotateLeft = 0; + } + if (m_resetRotation) { + m_buttonLayout->removeWidget(m_resetRotation); + delete m_resetRotation; + m_resetRotation = 0; + } + if (m_rotateRight) { + m_buttonLayout->removeWidget(m_rotateRight); + delete m_rotateRight; + m_rotateRight = 0; + } + m_canvas = dynamic_cast(canvas); m_overviewWidget->setCanvas(canvas); + + + if (m_canvas && m_canvas->viewManager()&& m_canvas->viewManager()->actionManager()) { + KisActionManager *manager = m_canvas->viewManager()->actionManager(); + KisAction *rotateRight = manager->actionByName("rotate_canvas_right"); + if (rotateRight) { + m_rotateRight = new QToolButton(); + m_rotateRight->setIcon(KisIconUtils::loadIcon("transform_icons_rotate_cw")); + m_rotateRight->setDefaultAction(dynamic_cast(rotateRight)); + m_buttonLayout->addWidget(m_rotateRight); + } + + KisAction *rotateReset = manager->actionByName("reset_canvas_rotation"); + if (rotateReset) { + m_resetRotation = new QToolButton(); + //m_rotateRight->setIcon("object-rotate-right"); + m_resetRotation->setText("0°"); + m_resetRotation->setDefaultAction(dynamic_cast(rotateReset)); + m_buttonLayout->addWidget(m_resetRotation); + } + KisAction *rotateLeft = manager->actionByName("rotate_canvas_left"); + if (rotateLeft) { + m_rotateLeft = new QToolButton(); + m_rotateLeft->setIcon(KisIconUtils::loadIcon("transform_icons_rotate_ccw")); + m_rotateLeft->setDefaultAction(dynamic_cast(rotateLeft)); + m_buttonLayout->addWidget(m_rotateLeft); + } + } + if (m_canvas && m_canvas->viewManager() && m_canvas->viewManager()->zoomController() && m_canvas->viewManager()->zoomController()->zoomAction()) { m_zoomSlider = m_canvas->viewManager()->zoomController()->zoomAction()->createWidget(m_canvas->imageView()->KisView::statusBar()); - m_layout->addWidget(m_zoomSlider); + m_buttonLayout->addWidget(m_zoomSlider); } }