QValidator::State PathValidator::validate(QString & qtext, int &) const { if (!latex_doc_) return QValidator::Acceptable; docstring const text = support::trim(qstring_to_ucs4(qtext)); if (text.empty()) return acceptable_if_empty_ ? QValidator::Acceptable : QValidator::Intermediate; docstring invalid_chars = from_ascii("#$%{}()[]\"^"); if (!tex_allows_spaces_) invalid_chars += ' '; if (text.find_first_of(invalid_chars) != docstring::npos) { static int counter = 0; if (counter == 0) { Alert::error(_("Invalid filename"), _("LyX does not provide LaTeX support for file names containing any of these characters:\n") + printable_list(invalid_chars)); } ++counter; return QValidator::Intermediate; } return QValidator::Acceptable; }
bool BranchList::add(docstring const & s) { bool added = false; size_t i = 0; while (true) { size_t const j = s.find_first_of(separator_, i); docstring name; if (j == docstring::npos) name = s.substr(i); else name = s.substr(i, j - i); // Is this name already in the list? bool const already = find_if(list.begin(), list.end(), BranchNamesEqual(name)) != list.end(); if (!already) { added = true; Branch br; br.setBranch(name); br.setSelected(false); br.setFileNameSuffix(false); list.push_back(br); } if (j == docstring::npos) break; i = j + 1; } return added; }
bool IndicesList::add(docstring const & n, docstring const & s) { bool added = false; size_t i = 0; while (true) { size_t const j = n.find_first_of(separator_, i); docstring name; if (j == docstring::npos) name = n.substr(i); else name = n.substr(i, j - i); // Is this name already in the list? bool const already = find_if(list.begin(), list.end(), IndexNamesEqual(name)) != list.end(); if (!already) { added = true; Index in; in.setIndex(name); docstring sc = s.empty() ? trim(lowercase(name.substr(0, 3))) : s; if (findShortcut(sc) != 0) { int i = 1; docstring scn = sc + convert<docstring>(i); while (findShortcut(scn) != 0) { ++i; scn = sc + convert<docstring>(i); } in.setShortcut(scn); } else in.setShortcut(sc); list.push_back(in); } if (j == docstring::npos) break; i = j + 1; } return added; }