// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #ifndef COMBOBOX_TASKMENU_H #define COMBOBOX_TASKMENU_H #include #include #include #include QT_BEGIN_NAMESPACE class QLineEdit; class QDesignerFormWindowInterface; namespace qdesigner_internal { class ComboBoxTaskMenu: public QDesignerTaskMenu { Q_OBJECT public: explicit ComboBoxTaskMenu(QComboBox *button, QObject *parent = nullptr); ~ComboBoxTaskMenu() override; QAction *preferredEditAction() const override; QList taskActions() const override; private slots: void editItems(); void updateSelection(); private: QComboBox *m_comboBox; QPointer m_formWindow; QPointer m_editor; mutable QList m_taskActions; QAction *m_editItemsAction; }; class ComboBoxTaskMenuFactory : public ExtensionFactory { public: explicit ComboBoxTaskMenuFactory(const QString &iid, QExtensionManager *extensionManager); private: QComboBox *checkObject(QObject *qObject) const override; }; } // namespace qdesigner_internal QT_END_NAMESPACE #endif // COMBOBOX_TASKMENU_H