1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the Qt Designer of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 21 ** included in the packaging of this file. Please review the following 22 ** information to ensure the GNU General Public License requirements will 23 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 24 ** 25 ** $QT_END_LICENSE$ 26 ** 27 ****************************************************************************/ 28 29 #ifndef NEWACTIONDIALOG_P_H 30 #define NEWACTIONDIALOG_P_H 31 32 // 33 // W A R N I N G 34 // ------------- 35 // 36 // This file is not part of the Qt API. It exists purely as an 37 // implementation detail. This header file may change from version to 38 // version without notice, or even be removed. 39 // 40 // We mean it. 41 // 42 43 #include "qdesigner_utils_p.h" // PropertySheetIconValue 44 45 #include <QtWidgets/qdialog.h> 46 #include <QtGui/qkeysequence.h> 47 48 QT_BEGIN_NAMESPACE 49 50 namespace qdesigner_internal { 51 52 namespace Ui { 53 class NewActionDialog; 54 } 55 56 class ActionEditor; 57 58 struct ActionData { 59 60 enum ChangeMask { 61 TextChanged = 0x1, NameChanged = 0x2, ToolTipChanged = 0x4, 62 IconChanged = 0x8, CheckableChanged = 0x10, KeysequenceChanged = 0x20 63 }; 64 65 // Returns a combination of ChangeMask flags 66 unsigned compare(const ActionData &rhs) const; 67 68 QString text; 69 QString name; 70 QString toolTip; 71 PropertySheetIconValue icon; 72 bool checkable{false}; 73 PropertySheetKeySequenceValue keysequence; 74 }; 75 76 inline bool operator==(const ActionData &a1, const ActionData &a2) { return a1.compare(a2) == 0u; } 77 inline bool operator!=(const ActionData &a1, const ActionData &a2) { return a1.compare(a2) != 0u; } 78 79 class NewActionDialog: public QDialog 80 { 81 Q_OBJECT 82 public: 83 explicit NewActionDialog(ActionEditor *parent); 84 ~NewActionDialog() override; 85 86 ActionData actionData() const; 87 void setActionData(const ActionData &d); 88 89 QString actionText() const; 90 QString actionName() const; 91 92 public slots: 93 void focusName(); 94 void focusText(); 95 void focusTooltip(); 96 void focusShortcut(); 97 void focusCheckable(); 98 99 private slots: 100 void on_editActionText_textEdited(const QString &text); 101 void on_editObjectName_textEdited(const QString &text); 102 void slotEditToolTip(); 103 void slotResetKeySequence(); 104 105 private: 106 Ui::NewActionDialog *m_ui; 107 ActionEditor *m_actionEditor; 108 bool m_autoUpdateObjectName; 109 110 void updateButtons(); 111 }; 112 113 } // namespace qdesigner_internal 114 115 QT_END_NAMESPACE 116 117 #endif // NEWACTIONDIALOG_P_H 118