diff --git a/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-left-calligra.svg b/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-left-calligra.svg index 4cb22b1539..bf8efc1e13 100644 --- a/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-left-calligra.svg +++ b/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-left-calligra.svg @@ -1,187 +1,192 @@ image/svg+xml Timothée Giet 2015 Based on Breeze icons - - - + + + + + diff --git a/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-right-calligra.svg b/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-right-calligra.svg index bf8efc1e13..4cb22b1539 100644 --- a/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-right-calligra.svg +++ b/krita/pics/misc-dark/dark_ox16-action-object-align-horizontal-right-calligra.svg @@ -1,192 +1,187 @@ image/svg+xml Timothée Giet 2015 Based on Breeze icons - - - - - + + + diff --git a/krita/pics/misc-dark/misc-dark-icons.qrc b/krita/pics/misc-dark/misc-dark-icons.qrc index 0f999d6a3f..f72b960e74 100644 --- a/krita/pics/misc-dark/misc-dark-icons.qrc +++ b/krita/pics/misc-dark/misc-dark-icons.qrc @@ -1,67 +1,67 @@ dark_draw-eraser.svg dark_geometry.svg dark_ox16-action-object-align-horizontal-center-calligra.svg - dark_ox16-action-object-align-horizontal-left-calligra.svg - dark_ox16-action-object-align-horizontal-right-calligra.svg dark_ox16-action-object-align-vertical-bottom-calligra.svg dark_ox16-action-object-align-vertical-center-calligra.svg dark_ox16-action-object-align-vertical-top-calligra.svg dark_ox16-action-object-order-back-calligra.svg dark_ox16-action-object-order-front-calligra.svg dark_ox16-action-object-order-lower-calligra.svg dark_ox16-action-object-order-raise-calligra.svg dark_ox16-action-object-group-calligra.svg dark_ox16-action-object-ungroup-calligra.svg dark_distribute-horizontal-center.svg dark_distribute-horizontal-left.svg dark_distribute-horizontal-right.svg dark_distribute-horizontal.svg dark_distribute-vertical-bottom.svg dark_distribute-vertical-center.svg dark_distribute-vertical-top.svg dark_distribute-vertical.svg dark_paintop_settings_01.svg dark_paintop_settings_02.svg dark_pivot-point.svg dark_stroke-cap-butt.svg dark_stroke-cap-round.svg dark_stroke-cap-square.svg dark_stroke-join-bevel.svg dark_stroke-join-miter.svg dark_stroke-join-round.svg dark_symmetry-horizontal.svg dark_symmetry-vertical.svg dark_onionOff.svg dark_onionOn.svg dark_onion_skin_options.svg dark_path-break-point.svg dark_path-break-segment.svg dark_pathpoint-corner.svg dark_pathpoint-curve.svg dark_pathpoint-insert.svg dark_pathpoint-join.svg dark_pathpoint-line.svg dark_pathpoint-merge.svg dark_pathpoint-remove.svg dark_pathpoint-smooth.svg dark_pathpoint-symmetric.svg dark_pathsegment-curve.svg dark_pathsegment-line.svg dark_opacity-increase.svg dark_opacity-decrease.svg dark_lightness-increase.svg dark_lightness-decrease.svg dark_brushsize-increase.svg dark_brushsize-decrease.svg dark_curve-preset-u.svg dark_curve-preset-s.svg dark_curve-preset-s-reverse.svg dark_curve-preset-linear.svg dark_curve-preset-linear-reverse.svg dark_curve-preset-l.svg dark_curve-preset-j.svg dark_curve-preset-arch.svg + dark_ox16-action-object-align-horizontal-right-calligra.svg + dark_ox16-action-object-align-horizontal-left-calligra.svg diff --git a/krita/pics/misc-light/light_ox16-action-object-align-horizontal-left-calligra.svg b/krita/pics/misc-light/light_ox16-action-object-align-horizontal-left-calligra.svg index 0043ded962..6a2cb4faa5 100644 --- a/krita/pics/misc-light/light_ox16-action-object-align-horizontal-left-calligra.svg +++ b/krita/pics/misc-light/light_ox16-action-object-align-horizontal-left-calligra.svg @@ -1,187 +1,191 @@ image/svg+xml Timothée Giet 2015 Based on Breeze icons - - - + + + + + diff --git a/krita/pics/misc-light/light_ox16-action-object-align-horizontal-right-calligra.svg b/krita/pics/misc-light/light_ox16-action-object-align-horizontal-right-calligra.svg index 6a2cb4faa5..0043ded962 100644 --- a/krita/pics/misc-light/light_ox16-action-object-align-horizontal-right-calligra.svg +++ b/krita/pics/misc-light/light_ox16-action-object-align-horizontal-right-calligra.svg @@ -1,191 +1,187 @@ image/svg+xml Timothée Giet 2015 Based on Breeze icons - - - - - + + + diff --git a/krita/pics/misc-light/misc-light-icons.qrc b/krita/pics/misc-light/misc-light-icons.qrc index d3d1264663..dc7b2ed33a 100644 --- a/krita/pics/misc-light/misc-light-icons.qrc +++ b/krita/pics/misc-light/misc-light-icons.qrc @@ -1,67 +1,67 @@ light_draw-eraser.svg light_geometry.svg light_ox16-action-object-align-horizontal-center-calligra.svg - light_ox16-action-object-align-horizontal-left-calligra.svg - light_ox16-action-object-align-horizontal-right-calligra.svg light_ox16-action-object-align-vertical-bottom-calligra.svg light_ox16-action-object-align-vertical-center-calligra.svg light_ox16-action-object-align-vertical-top-calligra.svg light_ox16-action-object-order-back-calligra.svg light_ox16-action-object-order-front-calligra.svg light_ox16-action-object-order-lower-calligra.svg light_ox16-action-object-order-raise-calligra.svg light_ox16-action-object-group-calligra.svg light_ox16-action-object-ungroup-calligra.svg light_distribute-horizontal-center.svg light_distribute-horizontal-left.svg light_distribute-horizontal-right.svg light_distribute-horizontal.svg light_distribute-vertical-bottom.svg light_distribute-vertical-center.svg light_distribute-vertical-top.svg light_distribute-vertical.svg light_paintop_settings_01.svg light_paintop_settings_02.svg light_pivot-point.svg light_stroke-cap-butt.svg light_stroke-cap-round.svg light_stroke-cap-square.svg light_stroke-join-bevel.svg light_stroke-join-miter.svg light_stroke-join-round.svg light_symmetry-horizontal.svg light_symmetry-vertical.svg light_onionOff.svg light_onionOn.svg light_onion_skin_options.svg light_path-break-point.svg light_path-break-segment.svg light_pathpoint-corner.svg light_pathpoint-curve.svg light_pathpoint-insert.svg light_pathpoint-join.svg light_pathpoint-line.svg light_pathpoint-merge.svg light_pathpoint-remove.svg light_pathpoint-smooth.svg light_pathpoint-symmetric.svg light_pathsegment-curve.svg light_pathsegment-line.svg light_opacity-increase.svg light_opacity-decrease.svg light_lightness-increase.svg light_lightness-decrease.svg light_brushsize-increase.svg light_brushsize-decrease.svg light_curve-preset-u.svg light_curve-preset-s.svg light_curve-preset-s-reverse.svg light_curve-preset-linear.svg light_curve-preset-linear-reverse.svg light_curve-preset-l.svg light_curve-preset-j.svg light_curve-preset-arch.svg + light_ox16-action-object-align-horizontal-left-calligra.svg + light_ox16-action-object-align-horizontal-right-calligra.svg diff --git a/plugins/dockers/arrangedocker/arrange_docker_widget.cpp b/plugins/dockers/arrangedocker/arrange_docker_widget.cpp index b0020342fa..760ff036da 100644 --- a/plugins/dockers/arrangedocker/arrange_docker_widget.cpp +++ b/plugins/dockers/arrangedocker/arrange_docker_widget.cpp @@ -1,91 +1,102 @@ /* * Copyright (c) 2016 Dmitry Kazakov * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "arrange_docker_widget.h" #include "ui_arrange_docker_widget.h" #include "kis_debug.h" #include "kactioncollection.h" #include #include struct ArrangeDockerWidget::Private { }; ArrangeDockerWidget::ArrangeDockerWidget(QWidget *parent) : QWidget(parent), ui(new Ui::ArrangeDockerWidget), m_d(new Private) { ui->setupUi(this); } ArrangeDockerWidget::~ArrangeDockerWidget() { } void replaceAction(QToolButton *button, QAction *newAction) { Q_FOREACH (QAction *action, button->actions()) { button->removeAction(action); } if (newAction) { button->setDefaultAction(newAction); } } void ArrangeDockerWidget::setActionCollection(KActionCollection *collection) { const bool enabled = collection->action("object_order_front"); if (enabled) { replaceAction(ui->bringToFront, collection->action("object_order_front")); replaceAction(ui->raiseLevel, collection->action("object_order_raise")); replaceAction(ui->lowerLevel, collection->action("object_order_lower")); replaceAction(ui->sendBack, collection->action("object_order_back")); replaceAction(ui->leftAlign, collection->action("object_align_horizontal_left")); replaceAction(ui->hCenterAlign, collection->action("object_align_horizontal_center")); replaceAction(ui->rightAlign, collection->action("object_align_horizontal_right")); replaceAction(ui->topAlign, collection->action("object_align_vertical_top")); replaceAction(ui->vCenterAlign, collection->action("object_align_vertical_center")); replaceAction(ui->bottomAlign, collection->action("object_align_vertical_bottom")); replaceAction(ui->hDistributeLeft, collection->action("object_distribute_horizontal_left")); replaceAction(ui->hDistributeCenter, collection->action("object_distribute_horizontal_center")); replaceAction(ui->hDistributeRight, collection->action("object_distribute_horizontal_right")); replaceAction(ui->hDistributeGaps, collection->action("object_distribute_horizontal_gaps")); replaceAction(ui->vDistributeTop, collection->action("object_distribute_vertical_top")); replaceAction(ui->vDistributeCenter, collection->action("object_distribute_vertical_center")); replaceAction(ui->vDistributeBottom, collection->action("object_distribute_vertical_bottom")); replaceAction(ui->vDistributeGaps, collection->action("object_distribute_vertical_gaps")); replaceAction(ui->group, collection->action("object_group")); replaceAction(ui->ungroup, collection->action("object_ungroup")); } setEnabled(enabled); } +void ArrangeDockerWidget::switchState(bool enabled) +{ + if (enabled) { + ui->buttons->show(); + ui->disabledLabel->hide(); + } else { + ui->buttons->hide(); + ui->disabledLabel->show(); + } +} + diff --git a/plugins/dockers/arrangedocker/arrange_docker_widget.h b/plugins/dockers/arrangedocker/arrange_docker_widget.h index 88ce957f74..4054dbc5b9 100644 --- a/plugins/dockers/arrangedocker/arrange_docker_widget.h +++ b/plugins/dockers/arrangedocker/arrange_docker_widget.h @@ -1,48 +1,49 @@ /* * Copyright (c) 2016 Dmitry Kazakov * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef ARRANGE_DOCKER_WIDGET_H #define ARRANGE_DOCKER_WIDGET_H #include #include #include "kactioncollection.h" namespace Ui { class ArrangeDockerWidget; } class ArrangeDockerWidget : public QWidget { Q_OBJECT public: explicit ArrangeDockerWidget(QWidget *parent = 0); ~ArrangeDockerWidget() override; void setActionCollection(KActionCollection *collection); + void switchState(bool enabled); private: Ui::ArrangeDockerWidget *ui; struct Private; const QScopedPointer m_d; }; #endif // ARRANGE_DOCKER_WIDGET_H diff --git a/plugins/dockers/arrangedocker/arrange_docker_widget.ui b/plugins/dockers/arrangedocker/arrange_docker_widget.ui index efdc308b02..4090b5ef1d 100644 --- a/plugins/dockers/arrangedocker/arrange_docker_widget.ui +++ b/plugins/dockers/arrangedocker/arrange_docker_widget.ui @@ -1,303 +1,533 @@ ArrangeDockerWidget 0 0 - 838 - 448 + 303 + 426 - - - - - 2 + + + + + QFrame::NoFrame - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - QFrame::VLine - - - QFrame::Raised - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Minimum - - - - 6 - 6 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Preferred - - - - 6 - 6 - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - QFrame::VLine - - - QFrame::Raised - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - - - - Qt::NoFocus - - - - - - - + + QFrame::Raised + + + + 4 + + + 5 + + + 5 + + + 5 + + + + + Activate the Select Shapes Tool to arrange objects. + + + true + + + + + - - - - Qt::Horizontal + + + + + 0 + 0 + - - - 631 - 20 - + + QFrame::NoFrame - + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 4 + + + 7 + + + 7 + + + 5 + + + + + Align + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Order + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Spacing + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + Group + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + Distribute + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + + + + + + 0 + 15 + + + + Qt::Horizontal + + + + + + + + 0 + 15 + + + + Qt::Horizontal + + + + + + + + 0 + 15 + + + + Qt::Horizontal + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + - + Qt::Vertical 20 - 323 + 40 diff --git a/plugins/dockers/arrangedocker/arrangedocker_dock.cpp b/plugins/dockers/arrangedocker/arrangedocker_dock.cpp index c414dbfa66..0208d8e25c 100644 --- a/plugins/dockers/arrangedocker/arrangedocker_dock.cpp +++ b/plugins/dockers/arrangedocker/arrangedocker_dock.cpp @@ -1,82 +1,90 @@ /* * Copyright (c) 2016 Dmitry Kazakov * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "arrangedocker_dock.h" #include #include "kis_canvas2.h" #include #include "arrange_docker_widget.h" #include #include ArrangeDockerDock::ArrangeDockerDock( ) : QDockWidget(i18n("Arrange")) , m_canvas(0) { m_configWidget = new ArrangeDockerWidget(this); + m_configWidget->switchState(false); setWidget(m_configWidget); setEnabled(m_canvas); } ArrangeDockerDock::~ArrangeDockerDock() { } void ArrangeDockerDock::setCanvas(KoCanvasBase * canvas) { if(canvas && m_canvas == canvas) return; if (m_canvas) { m_canvasConnections.clear(); m_canvas->disconnectCanvasObserver(this); m_canvas->image()->disconnect(this); } m_canvas = canvas ? dynamic_cast(canvas) : 0; setEnabled(m_canvas); if (m_canvas) { m_canvasConnections.addConnection( m_canvas->toolProxy(), SIGNAL(toolChanged(QString)), this, - SLOT(slotToolChanged())); + SLOT(slotToolChanged(QString))); m_canvasConnections.addConnection( m_canvas->shapeManager(), SIGNAL(selectionChanged()), this, SLOT(slotToolChanged())); slotToolChanged(); } } void ArrangeDockerDock::unsetCanvas() { setCanvas(0); } void ArrangeDockerDock::slotToolChanged() { KActionCollection *collection = m_canvas->viewManager()->actionCollection(); m_configWidget->setActionCollection(collection); } + +void ArrangeDockerDock::slotToolChanged(QString toolId) +{ + bool enableWidget = (toolId == "InteractionTool") ? true : false; + m_configWidget->switchState(enableWidget); + slotToolChanged(); +} diff --git a/plugins/dockers/arrangedocker/arrangedocker_dock.h b/plugins/dockers/arrangedocker/arrangedocker_dock.h index b8243d9330..ffcb2eac08 100644 --- a/plugins/dockers/arrangedocker/arrangedocker_dock.h +++ b/plugins/dockers/arrangedocker/arrangedocker_dock.h @@ -1,48 +1,49 @@ /* * Copyright (c) 2016 Dmitry Kazakov * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GRID_DOCK_H_ #define _GRID_DOCK_H_ #include #include #include "kis_signal_auto_connection.h" class KisCanvas2; class ArrangeDockerWidget; class KisSignalAutoConnection; class ArrangeDockerDock : public QDockWidget, public KoCanvasObserverBase { Q_OBJECT public: ArrangeDockerDock(); ~ArrangeDockerDock() override; QString observerName() override { return "ArrangeDockerDock"; } void setCanvas(KoCanvasBase *canvas) override; void unsetCanvas() override; private Q_SLOTS: void slotToolChanged(); + void slotToolChanged(QString toolId); private: ArrangeDockerWidget *m_configWidget; QPointer m_canvas; KisSignalAutoConnectionsStore m_canvasConnections; }; #endif