📄 metadatabase.cpp
字号:
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 + -