void ResourceModel::setDataIndex(DataIndex* dataIndex) { if (dataIndex != m_dataIndex) { beginResetModel(); if (m_dataIndex) { m_dataIndex->disconnect(this); } m_dataIndex = dataIndex; if (m_dataIndex) { connect(m_dataIndex, SIGNAL(courseAboutToBeAdded(DataIndexCourse*,int)), SLOT(onCourseAboutToBeAdded(DataIndexCourse*,int))); connect(m_dataIndex, SIGNAL(courseAdded()), SLOT(onResourceAdded())); connect(m_dataIndex, SIGNAL(coursesAboutToBeRemoved(int,int)), SLOT(onCoursesAboutToBeRemoved(int,int))); connect(m_dataIndex, SIGNAL(coursesRemoved()), SLOT(onResourceRemoved())); connect(m_dataIndex, SIGNAL(keyboardLayoutAboutToBeAdded(DataIndexKeyboardLayout*,int)), SLOT(onKeyboardLayoutAboutToBeAdded(DataIndexKeyboardLayout*,int))); connect(m_dataIndex, SIGNAL(keyboardLayoutAdded()), SLOT(onResourceAdded())); connect(m_dataIndex, SIGNAL(keyboardLayoutsAboutToBeRemoved(int,int)), SLOT(onKeyboardLayoutsAboutToBeRemoved(int,int))); connect(m_dataIndex, SIGNAL(keyboardLayoutsRemoved()), SLOT(onResourceRemoved())); } for (int i = 0; i < dataIndex->courseCount(); i++) { connectToCourse(dataIndex->course(i)); } for (int i = 0; i < dataIndex->keyboardLayoutCount(); i++) { connectToKeyboardLayout(dataIndex->keyboardLayout(i)); } updateMappings(); endResetModel(); emit dataIndexChanged(); } }
void ResourceManager::removeResource(uint64 key) { auto handle = resources.get(key, HandleInvalid); if(handle == HandleInvalid) return; ResourceEvent event; event.handle = handle; onResourceRemoved( event ); resources.remove(key); }