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

📄 metadatabase.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return;    }    QValueList<Variable>::Iterator it = r->variables.begin();    for ( ; it != r->variables.end(); ++it ) {	if ( (*it).varName == name ) {	    r->variables.remove( it );	    break;	}    }}QValueList<MetaDataBase::Variable> MetaDataBase::variables( 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<MetaDataBase::Variable>();    }    return r->variables;}bool MetaDataBase::hasVariable( QObject *o, const QString &name ){    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<Variable>::Iterator it = r->variables.begin();    for ( ; it != r->variables.end(); ++it ) {	if ( extractVariableName( name ) == extractVariableName( (*it).varName ) )	    return TRUE;    }    return FALSE;}QString MetaDataBase::extractVariableName( const QString &name ){    QString n = name.right( name.length() - name.findRev( ' ' ) - 1 );    if ( n[ 0 ] == '*' || n[ 0 ] == '&' )	n[ 0 ] = ' ';    if ( n[ (int)n.length() - 1 ] == ';' )	n[ (int)n.length() - 1 ] = ' ';    return n.simplifyWhiteSpace();}void MetaDataBase::setSignalList( QObject *o, const QStringList &sigs ){    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->sigs.clear();    for ( QStringList::ConstIterator it = sigs.begin(); it != sigs.end(); ++it ) {	QString s = (*it).simplifyWhiteSpace();	bool hasSemicolon = s.endsWith( ";" );	if ( hasSemicolon )	    s = s.left( s.length() - 1 );	int p = s.find( '(' );	if ( p < 0 )	    p = s.length();	int sp = s.find( ' ' );	if ( sp >= 0 && sp < p ) {	    s = s.mid( sp+1 );	    p -= sp + 1;	}	if ( p == (int) s.length() )	    s += "()";	if ( hasSemicolon )	    s += ";";	r->sigs << s;    }}QStringList MetaDataBase::signalList( 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->sigs;}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( QPixmap::fromMimeSource( "customwidget.png" ) );    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;}void MetaDataBase::setCursor( QWidget *w, const QCursor &c ){    setupDataBase();    if ( w->isA( "PropertyObject" ) ) {	( (PropertyObject*)w )->mdSetCursor( c );	return;    }    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();    if ( w->isA( "PropertyObject" ) )	return ( (PropertyObject*)w )->mdCursor();    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 ( normalizeFunction( *it ) == normalizeFunction( signal ) )	    return TRUE;    }    return FALSE;}bool MetaDataBase::CustomWidget::hasSlot( const QCString &slot ) const{    QStrList slotList = QWidget::staticMetaObject()->slotNames( TRUE );    if ( slotList.find( normalizeFunction( slot ) ) != -1 )	return TRUE;    for ( QValueList<MetaDataBase::Function>::ConstIterator it = lstSlots.begin(); it != lstSlots.end(); ++it ) {	if ( normalizeFunction( (*it).function ) == normalizeFunction( 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();}void MetaDataBase::setPixmapKey( QObject *o, int pixmap, const QString &arg ){    if ( !o )	return;    setupDataBase();    if ( o->isA( "PropertyObject" ) ) {	( (PropertyObject*)o )->mdSetPixmapKey( pixmap, arg );	return;    }    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->pixmapKeys.remove( pixmap );    r->pixmapKeys.insert( pixmap, arg );}QString MetaDataBase::pixmapKey( QObject *o, int pixmap ){    if ( !o )	return QString::null;    setupDataBase();    if ( o->isA( "PropertyObject" ) )	return ( (PropertyObject*)o )->mdPixmapKey( pixmap );    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;    }    QString s = *r->pixmapKeys.find( pixmap );    if ( !s.isNull() )	return s;    if ( !o->isWidgetType() )	return s;    QWidget *w = (QWidget*)o;    if ( w->icon() )	return *r->pixmapKeys.find( w->icon()->serialNumber() );    return s;}void MetaDataBase::clearPixmapKeys( 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->pixmapKeys.clear();}void MetaDataBase::setColumnFields( QObject *o, const QMap<QString, QString> &columnFields ){    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->columnFields = columnFields;}QMap<QString, QString> MetaDataBase::columnFields( QObject *o ){    if ( !o )	return QMap<QString, QString>();    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 QMap<QString, QString>();    }    return r->columnFields;}void MetaDataBase::setEditor( const QStringList &langs ){    editorLangList = langs;}bool MetaDataBase::hasEditor( const QString &lang ){    return editorLangList.find( lang ) != editorLangList.end();}void MetaDataBase::setupInterfaceManagers( const QString &plugDir ){    if ( !languageInterfaceManager ) {	languageInterfaceManager =	    new QPluginManager<LanguageInterface>( IID_Language,						   QApplication::libraryPaths(),						   plugDir );	langList = languageInterfaceManager->featureList();	langList.remove( "C++" );	langList << "C++";    }}QStringList MetaDataBase::languages(){    return langList;}QString MetaDataBase::normalizeFunction( const QString &f ){    return Parser::cleanArgs( f );}LanguageInterface *MetaDataBase::languageInterface( const QString &lang ){    LanguageInterface* iface = 0;    languageInterfaceManager->queryInterface( lang, &iface );    return iface;}void MetaDataBase::clear( QObject *o ){    if ( !o )	return;    setupDataBase();    db->remove( (void*)o );    for ( QPtrDictIterator<QWidget> it( *( (FormWindow*)o )->widgets() ); it.current(); ++it )	db->remove( (void*)it.current() );}void MetaDataBase::setBreakPoints( QObject *o, const QValueList<uint> &l ){    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->breakPoints = l;    QMap<int, QString>::Iterator it = r->breakPointConditions.begin();    while ( it != r->breakPointConditions.end() ) {	int line = it.key();	++it;	if ( r->breakPoints.find( line ) == r->breakPoints.end() )	    r->breakPointConditions.remove( r->breakPointConditions.find( line ) );    }}QValueList<uint> MetaDataBase::breakPoints( QObject *o ){    if ( !o )	return QValueList<uint>();    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<uint>();    }    return r->breakPoints;}void MetaDataBase::setBreakPointCondition( QObject *o, int line, const QString &condition ){    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->breakPointConditions.replace( line, condition );}QString MetaDataBase::breakPointCondition( QObject *o, int line ){    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;    }    QMap<int, QString>::Iterator it = r->breakPointConditions.find( line );    if ( it == r->breakPointConditions.end() )	return QString::null;    return *it;}void MetaDataBase::setExportMacro( QObject *o, const QString &macro ){    if ( !o )	return;    setupDataBase();    if ( o->isA( "PropertyObject" ) ) {	( (PropertyObject*)o )->mdSetExportMacro( macro );	return;    }    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->exportMacro = macro;}QString MetaDataBase::exportMacro( QObject *o ){    if ( !o )	return "";    setupDataBase();    if ( o->isA( "PropertyObject" ) )	return ( (PropertyObject*)o )->mdExportMacro();    MetaDataBaseRecord *r = db->find( (void*)o );    if ( !r ) {	qWarning( "No entry for %p (%s, %s) found in MetaDataBase",		  o, o->name(), o->className() );	return "";    }    return r->exportMacro;}bool MetaDataBase::hasObject( QObject *o ){    return !!db->find( o );}

⌨️ 快捷键说明

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