1 /* 2 * LibrePCB - Professional EDA for everyone! 3 * Copyright (C) 2013 LibrePCB Developers, see AUTHORS.md for contributors. 4 * https://librepcb.org/ 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef LIBREPCB_STROKETEXTPROPERTIESDIALOG_H 21 #define LIBREPCB_STROKETEXTPROPERTIESDIALOG_H 22 23 /******************************************************************************* 24 * Includes 25 ******************************************************************************/ 26 #include <QtCore> 27 #include <QtWidgets> 28 29 /******************************************************************************* 30 * Namespace / Forward Declarations 31 ******************************************************************************/ 32 namespace librepcb { 33 34 class UndoStack; 35 class StrokeText; 36 class GraphicsLayer; 37 class LengthUnit; 38 39 namespace Ui { 40 class StrokeTextPropertiesDialog; 41 } 42 43 /******************************************************************************* 44 * Class StrokeTextPropertiesDialog 45 ******************************************************************************/ 46 47 /** 48 * @brief The StrokeTextPropertiesDialog class 49 */ 50 class StrokeTextPropertiesDialog final : public QDialog { 51 Q_OBJECT 52 53 public: 54 // Constructors / Destructor 55 StrokeTextPropertiesDialog() = delete; 56 StrokeTextPropertiesDialog(const StrokeTextPropertiesDialog& other) = delete; 57 StrokeTextPropertiesDialog(StrokeText& text, UndoStack& undoStack, 58 QList<GraphicsLayer*> layers, 59 const LengthUnit& lengthUnit, 60 const QString& settingsPrefix, 61 QWidget* parent = nullptr) noexcept; 62 ~StrokeTextPropertiesDialog() noexcept; 63 64 // Setters 65 void setReadOnly(bool readOnly) noexcept; 66 67 // Operator Overloadings 68 StrokeTextPropertiesDialog& operator=(const StrokeTextPropertiesDialog& rhs) = 69 delete; 70 71 private: // Methods 72 void on_buttonBox_clicked(QAbstractButton* button); 73 bool applyChanges() noexcept; 74 void addLayersToCombobox(const QList<QString>& names) noexcept; 75 void selectLayerNameInCombobox(const QString& name) noexcept; 76 77 private: // Data 78 StrokeText& mText; 79 UndoStack& mUndoStack; 80 QScopedPointer<Ui::StrokeTextPropertiesDialog> mUi; 81 }; 82 83 /******************************************************************************* 84 * End of File 85 ******************************************************************************/ 86 87 } // namespace librepcb 88 89 #endif // LIBREPCB_STROKETEXTPROPERTIESDIALOG_H 90