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 SIGNALSLOTEDITORWINDOW_H 30 #define SIGNALSLOTEDITORWINDOW_H 31 32 #include <QtCore/qpointer.h> 33 #include <QtWidgets/qwidget.h> 34 35 QT_BEGIN_NAMESPACE 36 37 class QDesignerFormWindowInterface; 38 class QDesignerFormEditorInterface; 39 class QModelIndex; 40 class QSortFilterProxyModel; 41 class QTreeView; 42 class QToolButton; 43 44 namespace qdesigner_internal { 45 46 class SignalSlotEditor; 47 class ConnectionModel; 48 class Connection; 49 50 class SignalSlotEditorWindow : public QWidget 51 { 52 Q_OBJECT 53 public: 54 explicit SignalSlotEditorWindow(QDesignerFormEditorInterface *core, QWidget *parent = nullptr); 55 56 public slots: 57 void setActiveFormWindow(QDesignerFormWindowInterface *form); 58 59 private slots: 60 void updateDialogSelection(Connection *con); 61 void updateEditorSelection(const QModelIndex &index); 62 63 void objectNameChanged(QDesignerFormWindowInterface *formWindow, QObject *object, const QString &newName, const QString &oldName); 64 65 void addConnection(); 66 void removeConnection(); 67 void updateUi(); 68 void resizeColumns(); 69 70 private: 71 QTreeView *m_view; 72 QPointer<SignalSlotEditor> m_editor; 73 QToolButton *m_add_button, *m_remove_button; 74 QDesignerFormEditorInterface *m_core; 75 ConnectionModel *m_model; 76 QSortFilterProxyModel *m_proxy_model; 77 bool m_handling_selection_change; 78 }; 79 80 } // namespace qdesigner_internal 81 82 QT_END_NAMESPACE 83 84 #endif // SIGNALSLOTEDITORWINDOW_H 85