From 285ec1476ebd2f922549000e1993f98cbbcdfa9d Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 13 Aug 2021 17:05:12 +0200 Subject: TextEditor: Modernize SnippetsCollection More FilePath use, foreach, less .h exposure. Change-Id: Ie24324b33333733736f0cd12c7637798fc88aa34 Reviewed-by: David Schulz --- .../texteditor/snippets/snippetscollection.cpp | 65 +++++++++++----------- 1 file changed, 31 insertions(+), 34 deletions(-) (limited to 'src/plugins/texteditor/snippets/snippetscollection.cpp') diff --git a/src/plugins/texteditor/snippets/snippetscollection.cpp b/src/plugins/texteditor/snippets/snippetscollection.cpp index e814607a12..d47e50fdf7 100644 --- a/src/plugins/texteditor/snippets/snippetscollection.cpp +++ b/src/plugins/texteditor/snippets/snippetscollection.cpp @@ -41,8 +41,10 @@ #include #include -using namespace TextEditor; -using namespace Internal; +using namespace Utils; + +namespace TextEditor { +namespace Internal { /* TRANSLATOR TextEditor::Internal::Snippets @@ -51,8 +53,6 @@ using namespace Internal; disambiguate between snippets with the same trigger. */ -namespace { - static bool snippetComp(const Snippet &a, const Snippet &b) { const int comp = a.trigger().toLower().localeAwareCompare(b.trigger().toLower()); @@ -64,16 +64,14 @@ static bool snippetComp(const Snippet &a, const Snippet &b) return false; } -} // Anonymous - -const QLatin1String SnippetsCollection::kSnippet("snippet"); -const QLatin1String SnippetsCollection::kSnippets("snippets"); -const QLatin1String SnippetsCollection::kTrigger("trigger"); -const QLatin1String SnippetsCollection::kId("id"); -const QLatin1String SnippetsCollection::kComplement("complement"); -const QLatin1String SnippetsCollection::kGroup("group"); -const QLatin1String SnippetsCollection::kRemoved("removed"); -const QLatin1String SnippetsCollection::kModified("modified"); +const QLatin1String kSnippet("snippet"); +const QLatin1String kSnippets("snippets"); +const QLatin1String kTrigger("trigger"); +const QLatin1String kId("id"); +const QLatin1String kComplement("complement"); +const QLatin1String kGroup("group"); +const QLatin1String kRemoved("removed"); +const QLatin1String kModified("modified"); // Hint SnippetsCollection::Hint::Hint(int index) : m_index(index) @@ -95,13 +93,9 @@ SnippetsCollection *SnippetsCollection::instance() // SnippetsCollection SnippetsCollection::SnippetsCollection() - : m_userSnippetsPath(Core::ICore::userResourcePath().pathAppended("snippets/").toString()) - , m_userSnippetsFile(QLatin1String("snippets.xml")) + : m_userSnippetsFile(Core::ICore::userResourcePath("snippets/snippets.xml")), + m_builtInSnippetsFiles(Core::ICore::resourcePath("snippets").dirEntries({"*.xml"})) { - QDir dir = Core::ICore::resourcePath("snippets").toDir(); - dir.setNameFilters(QStringList(QLatin1String("*.xml"))); - foreach (const QFileInfo &fi, dir.entryInfoList()) - m_builtInSnippetsFiles.append(fi.absoluteFilePath()); connect(Core::ICore::instance(), &Core::ICore::coreOpened, this, &SnippetsCollection::identifyGroups); @@ -249,7 +243,7 @@ void SnippetsCollection::restoreRemovedSnippets(const QString &groupId) QVector toRestore(std::distance(m_activeSnippetsEnd[group], m_snippets[group].end())); std::copy(m_activeSnippetsEnd[group], m_snippets[group].end(), toRestore.begin()); m_snippets[group].erase(m_activeSnippetsEnd[group], m_snippets[group].end()); - foreach (Snippet snippet, toRestore) { + for (Snippet snippet : qAsConst(toRestore)) { snippet.setIsRemoved(false); insertSnippet(snippet); } @@ -260,7 +254,7 @@ Snippet SnippetsCollection::revertedSnippet(int index, const QString &groupId) c const Snippet &candidate = snippet(index, groupId); Q_ASSERT(candidate.isBuiltIn()); - foreach (const QString &fileName, m_builtInSnippetsFiles) { + for (const FilePath &fileName : m_builtInSnippetsFiles) { const QList &builtIn = readXML(fileName, candidate.id()); if (builtIn.size() == 1) return builtIn.at(0); @@ -273,7 +267,7 @@ void SnippetsCollection::reset(const QString &groupId) clearSnippets(groupIndex(groupId)); const QList &builtInSnippets = allBuiltInSnippets(); - foreach (const Snippet &snippet, builtInSnippets) + for (const Snippet &snippet : builtInSnippets) if (groupId == snippet.groupId()) insertSnippet(snippet); } @@ -284,29 +278,29 @@ void SnippetsCollection::reload() const QList &builtInSnippets = allBuiltInSnippets(); QHash activeBuiltInSnippets; - foreach (const Snippet &snippet, builtInSnippets) + for (const Snippet &snippet : builtInSnippets) activeBuiltInSnippets.insert(snippet.id(), snippet); - const QList &userSnippets = readXML(m_userSnippetsPath + m_userSnippetsFile); - foreach (const Snippet &snippet, userSnippets) { + const QList &userSnippets = readXML(m_userSnippetsFile); + for (const Snippet &snippet : userSnippets) { if (snippet.isBuiltIn()) // This user snippet overrides the corresponding built-in snippet. activeBuiltInSnippets.remove(snippet.id()); insertSnippet(snippet); } - foreach (const Snippet &snippet, activeBuiltInSnippets) + for (const Snippet &snippet : qAsConst(activeBuiltInSnippets)) insertSnippet(snippet); } bool SnippetsCollection::synchronize(QString *errorString) { - if (!QFile::exists(m_userSnippetsPath) && !QDir().mkpath(m_userSnippetsPath)) { - *errorString = tr("Cannot create user snippet directory %1").arg( - QDir::toNativeSeparators(m_userSnippetsPath)); + if (!m_userSnippetsFile.parentDir().ensureWritableDir()) { + *errorString = tr("Cannot create user snippet directory %1") + .arg(m_userSnippetsFile.parentDir().toUserOutput()); return false; } - Utils::FileSaver saver(Utils::FilePath::fromString(m_userSnippetsPath + m_userSnippetsFile)); + FileSaver saver(m_userSnippetsFile); if (!saver.hasError()) { using GroupIndexByIdConstIt = QHash::ConstIterator; @@ -349,10 +343,10 @@ void SnippetsCollection::writeSnippetXML(const Snippet &snippet, QXmlStreamWrite writer->writeEndElement(); } -QList SnippetsCollection::readXML(const QString &fileName, const QString &snippetId) const +QList SnippetsCollection::readXML(const FilePath &fileName, const QString &snippetId) const { QList snippets; - QFile file(fileName); + QFile file(fileName.toString()); if (file.exists() && file.open(QIODevice::ReadOnly)) { QXmlStreamReader xml(&file); if (xml.readNextStartElement()) { @@ -415,7 +409,7 @@ QList SnippetsCollection::readXML(const QString &fileName, const QStrin QList SnippetsCollection::allBuiltInSnippets() const { QList builtInSnippets; - foreach (const QString &fileName, m_builtInSnippetsFiles) + for (const FilePath &fileName : m_builtInSnippetsFiles) builtInSnippets.append(readXML(fileName)); return builtInSnippets; } @@ -442,3 +436,6 @@ bool SnippetsCollection::isGroupKnown(const QString &groupId) const { return m_groupIndexById.value(groupId, -1) != -1; } + +} // Internal +} // TextEditor -- cgit v1.2.1