-QVariantMap IrcChannel::initUserModes() const {
- QVariantMap usermodes;
- QHash<IrcUser *, QString>::const_iterator iter = _userModes.constBegin();
- while(iter != _userModes.constEnd()) {
- usermodes[iter.key()->nick()] = iter.value();
- iter++;
- }
- return usermodes;
-}
-
-void IrcChannel::initSetUserModes(const QVariantMap &usermodes) {
- QList<IrcUser *> users;
- QStringList modes;
- QVariantMap::const_iterator iter = usermodes.constBegin();
- while(iter != usermodes.constEnd()) {
- users << network->newIrcUser(iter.key());
- modes << iter.value().toString();
- iter++;
- }
- joinIrcUsers(users, modes);
-}
-
-QVariantMap IrcChannel::initChanModes() const {
- QVariantMap channelModes;
-
- QVariantMap A_modes;
- QHash<QChar, QStringList>::const_iterator A_iter = _A_channelModes.constBegin();
- while(A_iter != _A_channelModes.constEnd()) {
- A_modes[A_iter.key()] = A_iter.value();
- A_iter++;
- }
- channelModes["A"] = A_modes;
-
- QVariantMap B_modes;
- QHash<QChar, QString>::const_iterator B_iter = _B_channelModes.constBegin();
- while(B_iter != _B_channelModes.constEnd()) {
- B_modes[B_iter.key()] = B_iter.value();
- B_iter++;
- }
- channelModes["B"] = B_modes;
-
- QVariantMap C_modes;
- QHash<QChar, QString>::const_iterator C_iter = _C_channelModes.constBegin();
- while(C_iter != _C_channelModes.constEnd()) {
- C_modes[C_iter.key()] = C_iter.value();
- C_iter++;
- }
- channelModes["C"] = C_modes;
-
- QString D_modes;
- QSet<QChar>::const_iterator D_iter = _D_channelModes.constBegin();
- while(D_iter != _D_channelModes.constEnd()) {
- D_modes += *D_iter;
- D_iter++;
- }
- channelModes["D"] = D_modes;
-
- return channelModes;
-}
-
-void IrcChannel::initSetChanModes(const QVariantMap &channelModes) {
- QVariantMap::const_iterator iter = channelModes["A"].toMap().constBegin();
- QVariantMap::const_iterator iterEnd = channelModes["A"].toMap().constEnd();
- while(iter != iterEnd) {
- _A_channelModes[iter.key()[0]] = iter.value().toStringList();
- iter++;
- }
-
- iter = channelModes["B"].toMap().constBegin();
- iterEnd = channelModes["B"].toMap().constEnd();
- while(iter != iterEnd) {
- _B_channelModes[iter.key()[0]] = iter.value().toString();
- iter++;
- }
-
- iter = channelModes["C"].toMap().constBegin();
- iterEnd = channelModes["C"].toMap().constEnd();
- while(iter != iterEnd) {
- _C_channelModes[iter.key()[0]] = iter.value().toString();
- iter++;
- }
-
- QString D_modes = channelModes["D"].toString();
- for(int i = 0; i < D_modes.count(); i++) {
- _D_channelModes << D_modes[i];
- }
-
-}
-
-void IrcChannel::ircUserDestroyed() {
- IrcUser *ircUser = static_cast<IrcUser *>(sender());
- Q_ASSERT(ircUser);
- _userModes.remove(ircUser);
- // no further propagation.
- // this leads only to fuck ups.
-}
-
-void IrcChannel::ircUserNickSet(QString nick) {
- IrcUser *ircUser = qobject_cast<IrcUser *>(sender());
- Q_ASSERT(ircUser);
- emit ircUserNickSet(ircUser, nick);