0001-add-support-for-oping-a-whole-channel-with-op.patch
| src/core/coreuserinputhandler.cpp | ||
|---|---|---|
| 371 | 371 | 
    }  | 
| 372 | 372 | |
| 373 | 373 | 
    void CoreUserInputHandler::handleOp(const BufferInfo &bufferInfo, const QString &msg) {
   | 
| 374 | 
      QStringList nicks = msg.split(' ', QString::SkipEmptyParts);
   | 
|
| 375 | 
    QString m = "+"; for(int i = 0; i < nicks.count(); i++) m += 'o';  | 
|
| 376 | 
    QStringList params;  | 
|
| 377 | 
    params << bufferInfo.bufferName() << m << nicks;  | 
|
| 378 | 
      emit putCmd("MODE", serverEncode(params));
   | 
|
| 374 | 
    QStringList nicks;  | 
|
| 375 | 
      if (msg == "*") {
   | 
|
| 376 | 
    const QList<IrcUser*> users = network()->ircChannel(bufferInfo.bufferName())->ircUsers();  | 
|
| 377 | 
        foreach(IrcUser *user, users) {
   | 
|
| 378 | 
          if (!network()->ircChannel(bufferInfo.bufferName())->userModes(user).contains("o"))
   | 
|
| 379 | 
    nicks.append(user->nick());  | 
|
| 380 | 
    }  | 
|
| 381 | 
      } else { 
   | 
|
| 382 | 
        nicks = msg.split(' ', QString::SkipEmptyParts);
   | 
|
| 383 | 
    }  | 
|
| 384 | 
    if (nicks.count() == 0) return;  | 
|
| 385 | 
     | 
|
| 386 | 
    bool isNumber;  | 
|
| 387 | 
      int maxModes = network()->support("MODES").toInt(&isNumber);
   | 
|
| 388 | 
    if (!isNumber || maxModes == 0) maxModes = 1;  | 
|
| 389 | 
     | 
|
| 390 | 
      while (!nicks.isEmpty()) {
   | 
|
| 391 | 
    int amount = qMin(nicks.count(), maxModes);  | 
|
| 392 | 
    QString m = "+"; for(int i = 0; i < amount; i++) m += 'o';  | 
|
| 393 | 
    QStringList params;  | 
|
| 394 | 
    params << bufferInfo.bufferName() << m;  | 
|
| 395 | 
    for(int i = 0; i < amount; i++) params << nicks.takeFirst();  | 
|
| 396 | 
        emit putCmd("MODE", serverEncode(params));
   | 
|
| 397 | 
    }  | 
|
| 379 | 398 | 
    }  | 
| 380 | 399 | |
| 381 | 400 | 
    void CoreUserInputHandler::handleOper(const BufferInfo &bufferInfo, const QString &msg) {
   | 
| 382 | 
    -  | 
|