⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectionviewerimpl.cpp

📁 Qt/Embedded是一个多平台的C++图形用户界面应用程序框架
💻 CPP
字号:
/************************************************************************ 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.************************************************************************/#include "connectionviewerimpl.h"#include "formwindow.h"#include "connectioneditorimpl.h"#include "mainwindow.h"#include "command.h"#include <qlistview.h>#include <qpushbutton.h>#include <qobjectlist.h>ConnectionViewer::ConnectionViewer( QWidget *parent, FormWindow *fw )    : ConnectionViewerBase( parent, 0, TRUE ), formWindow( fw ){    readConnections();    editButton->setEnabled( (bool)connectionListView->currentItem() );	    disconnectButton->setEnabled( (bool)connectionListView->currentItem() );	    connect( helpButton, SIGNAL( clicked() ), MainWindow::self, SLOT( showDialogHelp() ) );}void ConnectionViewer::editConnection(){    QListViewItem *i = connectionListView->currentItem();    if ( !i )	return;    QObject *sender = 0, *receiver = 0;    QString senderName = i->text( 0 );    QString receiverName = i->text( 2 );    if ( senderName == "this" || qstrcmp( formWindow->name(), senderName ) == 0 ) {	sender = formWindow;    } else {	QObjectList *l = formWindow->queryList( 0, senderName, FALSE );	if ( l ) {	    if ( l->first() )		sender = l->first();	    delete l;	}    }    if ( receiverName == "this" || qstrcmp( formWindow->name(), receiverName ) == 0 ) {	receiver = formWindow;    } else {	QObjectList *l = formWindow->queryList( 0, receiverName, FALSE );	if ( l ) {	    if ( l->first() )		receiver = l->first();	    delete l;	}    }    if ( sender && receiver ) {	ConnectionEditor editor( formWindow->mainWindow(), sender, receiver, formWindow );	editor.exec();	connectionListView->clear();	readConnections();    }	}void ConnectionViewer::currentConnectionChanged( QListViewItem *i ){    if ( !i ) {	editButton->setEnabled( FALSE );	disconnectButton->setEnabled( FALSE );	return;    }    editButton->setEnabled( TRUE );	    disconnectButton->setEnabled( TRUE );	}void ConnectionViewer::readConnections(){    QValueList<MetaDataBase::Connection> connectionlist	= MetaDataBase::connections( formWindow );    for ( QValueList<MetaDataBase::Connection>::Iterator it = connectionlist.begin(); it != connectionlist.end(); ++it ) {	if ( formWindow->isMainContainer( (QWidget*)(*it).receiver ) && !MetaDataBase::hasSlot( formWindow, (*it).slot ) )	    continue;	QListViewItem *i = new QListViewItem( connectionListView );	MetaDataBase::Connection conn = *it;	i->setText( 0, conn.sender->name() );	i->setText( 1, conn.signal );	i->setText( 2, conn.receiver->name() );	i->setText( 3, conn.slot );	connections.insert( i, conn );    }    if ( connectionListView->firstChild() )	connectionListView->setCurrentItem( connectionListView->firstChild() );}void ConnectionViewer::disconnectConnection(){    if ( !connectionListView->currentItem() )	return;    MetaDataBase::Connection conn = connections[ connectionListView->currentItem() ];    RemoveConnectionCommand *cmd = new RemoveConnectionCommand( tr( "Remove connection between %1 and %2" ).								arg( conn.sender->name() ).arg( conn.receiver->name() ),								formWindow, conn );    formWindow->commandHistory()->addCommand( cmd );    cmd->execute();    delete connectionListView->currentItem();    if ( connectionListView->currentItem() )	connectionListView->setSelected( connectionListView->currentItem(), TRUE );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -