File indexing completed on 2024-06-23 04:28:10

0001 /* This file is part of the KDE project
0002  * SPDX-FileCopyrightText: 2007 Martin Pfeiffer <hubipete@gmx.net>
0003  * SPDX-FileCopyrightText: 2007 Jan Hambrecht <jaham@gmx.net>
0004  * SPDX-FileCopyrightText: 2010 Thomas Zander <zander@kde.org>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.0-or-later
0007  */
0008 #ifndef DEFAULTTOOLGEOMETRYWIDGET_H
0009 #define DEFAULTTOOLGEOMETRYWIDGET_H
0010 
0011 #include <ui_DefaultToolGeometryWidget.h>
0012 #include <KoFlake.h>
0013 
0014 #include <QWidget>
0015 
0016 
0017 class KoInteractionTool;
0018 class KisAspectRatioLocker;
0019 
0020 class DefaultToolGeometryWidget : public QWidget, Ui::DefaultToolGeometryWidget
0021 {
0022     Q_OBJECT
0023 public:
0024     explicit DefaultToolGeometryWidget(KoInteractionTool *tool, QWidget *parent = 0);
0025     ~DefaultToolGeometryWidget() override;
0026 
0027     /// Sets the unit used by the unit aware child widgets
0028     void setUnit(const KoUnit &unit);
0029 
0030     bool useUniformScaling() const;
0031 
0032 protected:
0033     void showEvent(QShowEvent *event) override;
0034 
0035 private Q_SLOTS:
0036     void slotAnchorPointChanged();
0037     void resourceChanged(int key, const QVariant &res);
0038 
0039     void slotUpdatePositionBoxes();
0040     void slotRepositionShapes();
0041 
0042     void slotUpdateSizeBoxes(bool updateAspect = true);
0043     void slotUpdateSizeBoxesNoAspectChange();
0044     void slotResizeShapes();
0045 
0046     void slotUpdateCheckboxes();
0047 
0048     void slotAspectButtonToggled();
0049     void slotUpdateAspectButton();
0050 
0051     void slotOpacitySliderChanged(qreal newOpacity);
0052     void slotUpdateOpacitySlider();
0053 
0054     void slotPaintOrderChanged();
0055     void slotUpdatePaintOrder();
0056 
0057 private:
0058     KoInteractionTool *m_tool;
0059     QScopedPointer<KisAspectRatioLocker> m_sizeAspectLocker;
0060     bool m_savedUniformScaling;
0061 };
0062 
0063 #endif