void KviIrcUserDataBase::setupConnectionWithReguserDb() { connect(g_pRegisteredUserDataBase,SIGNAL(userRemoved(const QString&)),this,SLOT(registeredUserChanged(const QString&))); connect(g_pRegisteredUserDataBase,SIGNAL(userChanged(const QString&)),this,SLOT(registeredUserChanged(const QString&))); connect(g_pRegisteredUserDataBase,SIGNAL(userAdded(const QString&)),this,SLOT(registeredUserAdded(const QString&))); connect(g_pRegisteredUserDataBase,SIGNAL(databaseCleared()),this,SLOT(registeredDatabaseCleared())); }
KviRegisteredUserDataBase::~KviRegisteredUserDataBase() { emit(databaseCleared()); delete m_pUserDict; delete m_pWildMaskList; delete m_pMaskDict; delete m_pGroupDict; }
void KviRegisteredUserDataBase::copyFrom(KviRegisteredUserDataBase * db) { m_pUserDict->clear(); m_pWildMaskList->clear(); m_pMaskDict->clear(); m_pGroupDict->clear(); emit(databaseCleared()); KviPointerHashTableIterator<QString, KviRegisteredUser> it(*(db->m_pUserDict)); while(KviRegisteredUser * theCur = it.current()) { KviRegisteredUser * u = getUser(theCur->name()); // copy masks KviPointerList<KviIrcMask> * l = theCur->maskList(); for(KviIrcMask * m = l->first(); m; m = l->next()) { KviIrcMask * m2 = new KviIrcMask(*m); addMask(u, m2); } // copy properties KviPointerHashTable<QString, QString> * pd = theCur->propertyDict(); if(pd) { KviPointerHashTableIterator<QString, QString> pdi(*pd); while(pdi.current()) { u->setProperty(pdi.currentKey(), *(pdi.current())); ++pdi; } } u->m_iIgnoreFlags = theCur->m_iIgnoreFlags; u->m_bIgnoreEnabled = theCur->m_bIgnoreEnabled; u->setGroup(theCur->group()); ++it; } KviPointerHashTableIterator<QString, KviRegisteredUserGroup> git(*db->m_pGroupDict); while(git.current()) { addGroup(git.currentKey()); ++git; } }