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

📄 metadatabase.cpp

📁 Qt/Embedded是一个多平台的C++图形用户界面应用程序框架
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    Slot s;    s.slot = slot;    s.access = access;    r->slotList.append( s );}void MetaDataBase::removeSlot( QObject *o, const QCString &slot, const QString &access ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    for ( QValueList<Slot>::Iterator it = r->slotList.begin(); it != r->slotList.end(); ++it ) {	Slot s = *it;	if ( s.slot == slot &&	     s.access == access ) {	    r->slotList.remove( it );	    break;	}    }}QValueList<MetaDataBase::Slot> MetaDataBase::slotList( QObject *o ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return QValueList<Slot>();    }    return r->slotList;}bool MetaDataBase::isSlotUsed( QObject *o, const QCString &slot ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return FALSE;    }    QValueList<Connection> conns = connections( o );    for ( QValueList<Connection>::Iterator it = conns.begin(); it != conns.end(); ++it ) {	if ( (*it).slot == slot )	    return TRUE;    }    return FALSE;}bool MetaDataBase::hasSlot( QObject *o, const QCString &slot ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return FALSE;    }    QStrList slotList = o->metaObject()->slotNames( TRUE );    if ( slotList.find( slot ) != -1 )	return TRUE;    if ( o->inherits( "FormWindow" ) ) {	o = ( (FormWindow*)o )->mainContainer();	slotList = o->metaObject()->slotNames( TRUE );	if ( slotList.find( slot ) != -1 )	    return TRUE;    }    for ( QValueList<Slot>::Iterator it = r->slotList.begin(); it != r->slotList.end(); ++it ) {	Slot s = *it;	if ( s.slot == slot )	    return TRUE;    }    return FALSE;}bool MetaDataBase::addCustomWidget( CustomWidget *wid ){    setupDataBase();    for ( CustomWidget *w = cWidgets->first(); w; w = cWidgets->next() ) {	if ( *wid == *w ) {	    for ( QValueList<QCString>::ConstIterator it = wid->lstSignals.begin(); it != wid->lstSignals.end(); ++it ) {		if ( !w->hasSignal( *it ) )		    w->lstSignals.append( *it );	    }	    for ( QValueList<MetaDataBase::Slot>::ConstIterator it2 = wid->lstSlots.begin(); it2 != wid->lstSlots.end(); ++it2 ) {		if ( !w->hasSlot( (*it2).slot ) )		    w->lstSlots.append( *it2 );	    }	    for ( QValueList<MetaDataBase::Property>::ConstIterator it3 = wid->lstProperties.begin(); it3 != wid->lstProperties.end(); ++it3 ) {		if ( !w->hasProperty( (*it3).property ) )		    w->lstProperties.append( *it3 );	    }	    delete wid;	    return FALSE;	}    }    WidgetDatabaseRecord *r = new WidgetDatabaseRecord;    r->name = wid->className;    r->group = WidgetDatabase::widgetGroup( "Custom" );    r->toolTip = wid->className;    r->icon = new QIconSet( *wid->pixmap, *wid->pixmap );    r->isContainer = wid->isContainer;    wid->id = WidgetDatabase::addCustomWidget( r );    cWidgets->append( wid );    return TRUE;}void MetaDataBase::removeCustomWidget( CustomWidget *w ){    cWidgets->removeRef( w );}QList<MetaDataBase::CustomWidget> *MetaDataBase::customWidgets(){    setupDataBase();    return cWidgets;}MetaDataBase::CustomWidget *MetaDataBase::customWidget( int id ){    for ( CustomWidget *w = cWidgets->first(); w; w = cWidgets->next() ) {	if ( id == w->id )	    return w;    }    return 0;}bool MetaDataBase::isWidgetNameUsed( CustomWidget *wid ){    for ( CustomWidget *w = cWidgets->first(); w; w = cWidgets->next() ) {	if ( w == wid )	    continue;	if ( wid->className == w->className )	    return TRUE;    }    return FALSE;}bool MetaDataBase::hasCustomWidget( const QString &className ){    for ( CustomWidget *w = cWidgets->first(); w; w = cWidgets->next() ) {	if ( w->className == className )	    return TRUE;    }    return FALSE;}void MetaDataBase::setTabOrder( QWidget *w, const QWidgetList &order ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*) w );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  w, w->name(), w->className() );	return;    }    r->tabOrder = order;}QWidgetList MetaDataBase::tabOrder( QWidget *w ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*) w );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  w, w->name(), w->className() );	return QWidgetList();    }    return r->tabOrder;}void MetaDataBase::setIncludes( QObject *o, const QValueList<Include> &incs ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    r->includes = incs;}QValueList<MetaDataBase::Include> MetaDataBase::includes( QObject *o ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return QValueList<Include>();    }    return r->includes;}void MetaDataBase::setForwards( QObject *o, const QStringList &fwds ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    r->forwards = fwds;}QStringList MetaDataBase::forwards( QObject *o ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return QStringList();    }    return r->forwards;}void MetaDataBase::setMetaInfo( QObject *o, MetaInfo mi ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    r->metaInfo = mi;}MetaDataBase::MetaInfo MetaDataBase::metaInfo( QObject *o ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return MetaInfo();    }    return r->metaInfo;}MetaDataBase::CustomWidget::CustomWidget(){	    className = "MyCustomWidget";    includeFile = "mywidget.h";    includePolicy = Local;    sizeHint = QSize( -1, -1 );    pixmap = new QPixmap( PixmapChooser::loadPixmap( "customwidget.xpm" ) );    id = -1;    sizePolicy = QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );    isContainer = FALSE;};MetaDataBase::CustomWidget::CustomWidget( const CustomWidget &w ){    className = w.className;    includeFile = w.includeFile;    includePolicy = w.includePolicy;    sizeHint = w.sizeHint;    if ( w.pixmap )	pixmap = new QPixmap( *w.pixmap );    else	pixmap = 0;    id = w.id;    isContainer = w.isContainer;}MetaDataBase::CustomWidget::~CustomWidget(){    delete pixmap;}	void MetaDataBase::setCursor( QWidget *w, const QCursor &c ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)w );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  w, w->name(), w->className() );	return;    }    r->cursor = c;}QCursor MetaDataBase::cursor( QWidget *w ){    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)w );    if ( !r ) {	w->unsetCursor();	return w->cursor();    }    return r->cursor;}bool MetaDataBase::CustomWidget::operator==( const CustomWidget &w ) const{    return className == w.className;}	MetaDataBase::CustomWidget &MetaDataBase::CustomWidget::operator=( const CustomWidget &w ){    delete pixmap;    className = w.className;    includeFile = w.includeFile;    includePolicy = w.includePolicy;    sizeHint = w.sizeHint;    if ( w.pixmap )	pixmap = new QPixmap( *w.pixmap );    else	pixmap = 0;    lstSignals = w.lstSignals;    lstSlots = w.lstSlots;    lstProperties = w.lstProperties;    id = w.id;    isContainer = w.isContainer;    return *this;}bool MetaDataBase::CustomWidget::hasSignal( const QCString &signal ) const{    QStrList sigList = QWidget::staticMetaObject()->signalNames( TRUE );    if ( sigList.find( signal ) != -1 )	return TRUE;    for ( QValueList<QCString>::ConstIterator it = lstSignals.begin(); it != lstSignals.end(); ++it ) {	if ( *it == signal )	    return TRUE;    }    return FALSE;}bool MetaDataBase::CustomWidget::hasSlot( const QCString &slot ) const{    QStrList slotList = QWidget::staticMetaObject()->slotNames( TRUE );    if ( slotList.find( slot ) != -1 )	return TRUE;    for ( QValueList<MetaDataBase::Slot>::ConstIterator it = lstSlots.begin(); it != lstSlots.end(); ++it ) {	if ( (*it).slot == slot )	    return TRUE;    }    return FALSE;}bool MetaDataBase::CustomWidget::hasProperty( const QCString &prop ) const{    QStrList propList = QWidget::staticMetaObject()->propertyNames( TRUE );    if ( propList.find( prop ) != -1 )	return TRUE;    for ( QValueList<MetaDataBase::Property>::ConstIterator it = lstProperties.begin(); it != lstProperties.end(); ++it ) {	if ( (*it).property == prop )	    return TRUE;    }    return FALSE;}void MetaDataBase::setPixmapArgument( QObject *o, int pixmap, const QString &arg ){    if ( !o )	return;    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    r->pixmapArguments.remove( pixmap );    r->pixmapArguments.insert( pixmap, arg );}QString MetaDataBase::pixmapArgument( QObject *o, int pixmap ){    if ( !o )	return QString::null;    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return QString::null;    }    return *r->pixmapArguments.find( pixmap );}void MetaDataBase::clearPixmapArguments( QObject *o ){    if ( !o )	return;    setupDataBase();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    r->pixmapArguments.clear();}

⌨️ 快捷键说明

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