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 CONNECTDIALOG_H 30 #define CONNECTDIALOG_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 "ui_connectdialog.h" 44 #include <QtWidgets/qdialog.h> 45 46 QT_BEGIN_NAMESPACE 47 48 class QDesignerFormWindowInterface; 49 class QPushButton; 50 51 namespace qdesigner_internal { 52 53 class ConnectDialog : public QDialog 54 { 55 Q_OBJECT 56 public: 57 ConnectDialog(QDesignerFormWindowInterface *formWindow, QWidget *sender, QWidget *receiver, QWidget *parent = nullptr); 58 59 QString signal() const; 60 QString slot() const; 61 62 void setSignalSlot(const QString &signal, const QString &slot); 63 64 bool showAllSignalsSlots() const; 65 void setShowAllSignalsSlots(bool showIt); 66 67 private slots: 68 void populateLists(); 69 void selectSignal(QListWidgetItem *item); 70 void selectSlot(QListWidgetItem *item); 71 void populateSignalList(); 72 void populateSlotList(const QString &signal = QString()); 73 void editSignals(); 74 void editSlots(); 75 76 private: 77 enum WidgetMode { NormalWidget, MainContainer, PromotedWidget }; 78 79 static WidgetMode widgetMode(QWidget *w, QDesignerFormWindowInterface *formWindow); 80 QPushButton *okButton(); 81 void setOkButtonEnabled(bool); 82 void editSignalsSlots(QWidget *w, WidgetMode mode, int signalSlotDialogMode); 83 84 QWidget *m_source; 85 QWidget *m_destination; 86 const WidgetMode m_sourceMode; 87 const WidgetMode m_destinationMode; 88 QDesignerFormWindowInterface *m_formWindow; 89 Ui::ConnectDialog m_ui; 90 }; 91 92 } 93 94 QT_END_NAMESPACE 95 96 #endif // CONNECTDIALOG_H 97