void IgnoreListEditor::readIgnoreFile(const QString &file, bool readOnly) { MirallConfigFile cfgFile; const QString disabledTip(tr("This entry is provided by the system at '%1' " "and cannot be modified in this view.") .arg(QDir::toNativeSeparators(cfgFile.excludeFile(MirallConfigFile::SystemScope)))); QFile ignores(file); if (ignores.open(QIODevice::ReadOnly)) { while (!ignores.atEnd()) { QString line = QString::fromUtf8(ignores.readLine()); line.chop(1); if (!line.isEmpty() && !line.startsWith("#")) { QListWidgetItem *item = new QListWidgetItem; setupItemFlags(item); if (line.startsWith("]")) { line = line.mid(1); item->setCheckState(Qt::Checked); } item->setText(line); if (readOnly) { item->setFlags(item->flags() ^ Qt::ItemIsEnabled); item->setToolTip(disabledTip); } ui->listWidget->addItem(item); } } } }
void IgnoreListEditor::slotUpdateLocalIgnoreList() { ConfigFile cfgFile; QString ignoreFile = cfgFile.excludeFile(ConfigFile::UserScope); QFile ignores(ignoreFile); if (ignores.open(QIODevice::WriteOnly)) { for(int row = 0; row < ui->tableWidget->rowCount(); ++row) { QTableWidgetItem *patternItem = ui->tableWidget->item(row, patternCol); QTableWidgetItem *deletableItem = ui->tableWidget->item(row, deletableCol); if (patternItem->flags() & Qt::ItemIsEnabled) { QByteArray prepend; if (deletableItem->checkState() == Qt::Checked) { prepend = "]"; } ignores.write(prepend+patternItem->text().toUtf8()+'\n'); } } // We need to force a remote discovery after a change of the ignore list. // Otherwise we would not download the files/directories that are no longer // ignored (because the remote etag did not change) (issue #3172) foreach (Folder* folder, FolderMan::instance()->map()) { folder->journalDb()->forceRemoteDiscoveryNextSync(); } } else {
void IgnoreListEditor::slotUpdateLocalIgnoreList() { MirallConfigFile cfgFile; QString ignoreFile = cfgFile.excludeFile(MirallConfigFile::UserScope); QFile ignores(ignoreFile); if (ignores.open(QIODevice::WriteOnly)) { for(int i = 0; i < ui->listWidget->count(); ++i) { QListWidgetItem *item = ui->listWidget->item(i); if (item->flags() & Qt::ItemIsEnabled) { QByteArray prepend; if (item->checkState() == Qt::Checked) { prepend = "]"; } ignores.write(prepend+item->text().toUtf8()+'\n'); } } } else { QMessageBox::warning(this, tr("Could not open file"), tr("Cannot write changes to '%1'.").arg(ignoreFile)); } }
int is_tell_ok(CHAR_DATA * ch, CHAR_DATA * vict) { if (ch == vict) { send_to_char("Вы начали потихоньку разговаривать с самим собой.\r\n", ch); return (FALSE); } else if (!IS_NPC(ch) && PLR_FLAGGED(ch, PLR_DUMB)) { send_to_char("Вам запрещено обращаться к другим игрокам.\r\n", ch); return (FALSE); } else if (!IS_NPC(vict) && !vict->desc) /* linkless */ { act("$N потерял$G связь в этот момент.", FALSE, ch, 0, vict, TO_CHAR | TO_SLEEP); return (FALSE); } else if (PLR_FLAGGED(vict, PLR_WRITING)) { act("$N пишет сообщение - повторите попозже.", FALSE, ch, 0, vict, TO_CHAR | TO_SLEEP); return (FALSE); } if (IS_GOD(ch) || Privilege::check_flag(ch, Privilege::KRODER)) return (TRUE); if (ROOM_FLAGGED(ch->in_room, ROOM_SOUNDPROOF)) send_to_char("Стены заглушили Ваши слова.\r\n", ch); else if ((!IS_NPC(vict) && (PRF_FLAGGED(vict, PRF_NOTELL) || ignores(vict, ch, IGNORE_TELL))) || ROOM_FLAGGED(vict->in_room, ROOM_SOUNDPROOF)) act("$N не сможет Вас услышать.", FALSE, ch, 0, vict, TO_CHAR | TO_SLEEP); else if (GET_POS(vict) < POS_RESTING || AFF_FLAGGED(vict, AFF_DEAFNESS)) act("$N Вас не услышит.", FALSE, ch, 0, vict, TO_CHAR | TO_SLEEP); else return (TRUE); return (FALSE); }
void sendRoomI(const string& user, const string& what, bool raw) { ::user* u = yace->users().getUser(user); if(u == NULL) return; room* r = yace->rooms().getRoom(u->getRoom()); if(r == NULL) { u->DecRef(); return; } string modsend = yace->sql().getString("modsend"); set<string> members = r->getAllUsers(); if(!u->igetProp("gag")) { bool cantalk = (u->igetProp("rights")) >= (r->igetProp("modtalk")); for(set<string>::iterator it = members.begin(); it != members.end(); ++it) { ::user* act = yace->users().getUser(*it); if(!ignores(*it, user)) { if(cantalk) { sendUser(*it, what, raw); } else if(((act->igetProp("rights")) >= (r->igetProp("modhear"))) || (act == u)) { sendUser(*it, replace(modsend, "%TEXT%", what), raw); } } act->DecRef(); } } u->DecRef(); r->DecRef(); }
void sendUserI(const string& who, const string& whom, const string& what, bool raw) { if(!ignores(whom, who)) sendUser(whom, what, raw); }