/********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qt Designer. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef CONNECTIONEDITORIMPL_H #define CONNECTIONEDITORIMPL_H #include "connectioneditor.h" #include "metadatabase.h" #include class QListViewItem; class FormWindow; class ConnectionEditor : public ConnectionEditorBase { Q_OBJECT public: ConnectionEditor(QWidget* parent, QObject* sender, QObject* receiver, FormWindow* fw); ~ConnectionEditor(); protected slots: // Add current pair to the list void connectClicked(); // Remove current pair to the list void disconnectClicked(); // Lists all connections defined in current dialog void fillConnectionsList(); // Lists all widgets in sender or receiver combo void fillWidgetList(KComboBox* a_combo, const QStringList& items, const QString& defaultWidget); // Sender widget was changed - update signal list void senderChanged(const QString & s); // Receiver widget was changed - update slot list void receiverChanged(const QString & s); // Enable/disable 'Connect' button when pair changes void updateConnectButton(); // Enable/disable 'Disconnect' button when selection changes void updateDisconnectButton(); // Accept and close button void okClicked(); // Cancel and close button void cancelClicked(); private: // Whether given signal should appear in the signal list bool isSignalIgnored(const char*) const; // Whether given slot should appear in the slot list bool isSlotIgnored(const QMetaData* md); // Finds widget by name QObject* objectByName(const QString& s) const; bool hasConnection(const QString & snder, const QString & signal, const QString & rcvr, const QString & slot) const; QMap m_connections; QValueList m_oldConnections; QObject* m_sender; QObject* m_receiver; FormWindow* m_formWindow; }; #endif