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