int Tiled::Internal::MapScene::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGraphicsScene::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setGridVisible((*reinterpret_cast< bool(*)>(_a[1]))); break; case 1: refreshScene(); break; case 2: repaintRegion((*reinterpret_cast< const QRegion(*)>(_a[1]))); break; case 3: currentLayerIndexChanged(); break; case 4: mapChanged(); break; case 5: tilesetChanged((*reinterpret_cast< Tileset*(*)>(_a[1]))); break; case 6: layerAdded((*reinterpret_cast< int(*)>(_a[1]))); break; case 7: layerRemoved((*reinterpret_cast< int(*)>(_a[1]))); break; case 8: layerChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: objectsAdded((*reinterpret_cast< const QList<MapObject*>(*)>(_a[1]))); break; case 10: objectsRemoved((*reinterpret_cast< const QList<MapObject*>(*)>(_a[1]))); break; case 11: objectsChanged((*reinterpret_cast< const QList<MapObject*>(*)>(_a[1]))); break; case 12: updateSelectedObjectItems(); break; default: ; } _id -= 13; } return _id; }
void LdapNetworkObjectDirectory::updateComputerRoom( LdapDirectory& ldapDirectory, const QString &computerRoom ) { const NetworkObject computerRoomObject( NetworkObject::Group, computerRoom ); QList<NetworkObject>& computerRoomObjects = m_objects[computerRoomObject]; QStringList computers = ldapDirectory.computerRoomMembers( computerRoom ); bool hasMacAddressAttribute = ( m_configuration.ldapComputerMacAddressAttribute().count() > 0 ); for( const auto& computer : qAsConst( computers ) ) { QString computerHostName = ldapDirectory.computerHostName( computer ); if( computerHostName.isEmpty() ) { continue; } QString computerMacAddress; if( hasMacAddressAttribute ) { computerMacAddress = ldapDirectory.computerMacAddress( computer ); } const NetworkObject computerObject( NetworkObject::Host, computerHostName, computerHostName, computerMacAddress, computer ); if( computerRoomObjects.contains( computerObject ) == false ) { emit objectsAboutToBeInserted( computerRoomObject, computerRoomObjects.count(), 1 ); computerRoomObjects += computerObject; emit objectsInserted(); } } int index = 0; for( auto it = computerRoomObjects.begin(); it != computerRoomObjects.end(); ) { if( computers.contains( it->directoryAddress() ) == false ) { emit objectsAboutToBeRemoved( computerRoomObject, index, 1 ); it = computerRoomObjects.erase( it ); emit objectsRemoved(); } else { ++it; ++index; } } }
void LocalDataNetworkObjectDirectory::update() { const auto networkObjects = m_configuration.networkObjects(); const NetworkObject rootObject( NetworkObject::Root ); QVector<NetworkObject::Uid> roomUids; for( const auto& networkObjectValue : networkObjects ) { const NetworkObject networkObject( networkObjectValue.toObject() ); if( networkObject.type() == NetworkObject::Group ) { roomUids.append( networkObject.uid() ); if( m_objects.contains( networkObject ) == false ) { emit objectsAboutToBeInserted( rootObject, m_objects.count(), 1 ); m_objects[networkObject] = QList<NetworkObject>(); emit objectsInserted(); } updateRoom( networkObject ); } } int index = 0; for( auto it = m_objects.begin(); it != m_objects.end(); ) { if( it.key().type() == NetworkObject::Group && roomUids.contains( it.key().uid() ) == false ) { emit objectsAboutToBeRemoved( rootObject, index, 1 ); it = m_objects.erase( it ); emit objectsRemoved(); } else { ++it; ++index; } } }
void LocalDataNetworkObjectDirectory::updateRoom( const NetworkObject& roomObject ) { const auto networkObjects = m_configuration.networkObjects(); QList<NetworkObject>& computerObjects = m_objects[roomObject]; QVector<NetworkObject::Uid> computerUids; for( const auto& networkObjectValue : networkObjects ) { NetworkObject networkObject( networkObjectValue.toObject() ); if( networkObject.parentUid() == roomObject.uid() ) { computerUids.append( networkObject.uid() ); if( computerObjects.contains( networkObject ) == false ) { emit objectsAboutToBeInserted( roomObject, computerObjects.count(), 1 ); computerObjects += networkObject; emit objectsInserted(); } } } int index = 0; for( auto it = computerObjects.begin(); it != computerObjects.end(); ) { if( computerUids.contains( it->uid() ) == false ) { emit objectsAboutToBeRemoved( roomObject, index, 1 ); it = computerObjects.erase( it ); emit objectsRemoved(); } else { ++it; ++index; } } }
void LdapNetworkObjectDirectory::update() { LdapDirectory ldapDirectory( m_configuration ); const auto computerRooms = ldapDirectory.computerRooms(); const NetworkObject rootObject( NetworkObject::Root ); for( const auto& computerRoom : qAsConst( computerRooms ) ) { NetworkObject computerRoomObject( NetworkObject::Group, computerRoom ); if( m_objects.contains( computerRoomObject ) == false ) { emit objectsAboutToBeInserted( rootObject, m_objects.count(), 1 ); m_objects[computerRoomObject] = QList<NetworkObject>(); emit objectsInserted(); } updateComputerRoom( ldapDirectory, computerRoom ); } int index = 0; for( auto it = m_objects.begin(); it != m_objects.end(); ) { if( computerRooms.contains( it.key().name() ) == false ) { emit objectsAboutToBeRemoved( rootObject, index, 1 ); it = m_objects.erase( it ); emit objectsRemoved(); } else { ++it; ++index; } } }