summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/snippets/snippetscollection.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2021-08-13 17:05:12 +0200
committerhjk <hjk@qt.io>2021-08-19 11:05:42 +0000
commit285ec1476ebd2f922549000e1993f98cbbcdfa9d (patch)
treecef5f053e9d1711cbe90d802b7c821af56ae7169 /src/plugins/texteditor/snippets/snippetscollection.cpp
parent026b4ddcda512271b8cc3801e331a02d52f7a94f (diff)
downloadqt-creator-285ec1476ebd2f922549000e1993f98cbbcdfa9d.tar.gz
TextEditor: Modernize SnippetsCollection
More FilePath use, foreach, less .h exposure. Change-Id: Ie24324b33333733736f0cd12c7637798fc88aa34 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/snippets/snippetscollection.cpp')
-rw-r--r--src/plugins/texteditor/snippets/snippetscollection.cpp65
1 files changed, 31 insertions, 34 deletions
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 <iterator>
#include <algorithm>
-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<Snippet> 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<Snippet> &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<Snippet> &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<Snippet> &builtInSnippets = allBuiltInSnippets();
QHash<QString, Snippet> activeBuiltInSnippets;
- foreach (const Snippet &snippet, builtInSnippets)
+ for (const Snippet &snippet : builtInSnippets)
activeBuiltInSnippets.insert(snippet.id(), snippet);
- const QList<Snippet> &userSnippets = readXML(m_userSnippetsPath + m_userSnippetsFile);
- foreach (const Snippet &snippet, userSnippets) {
+ const QList<Snippet> &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<QString, int>::ConstIterator;
@@ -349,10 +343,10 @@ void SnippetsCollection::writeSnippetXML(const Snippet &snippet, QXmlStreamWrite
writer->writeEndElement();
}
-QList<Snippet> SnippetsCollection::readXML(const QString &fileName, const QString &snippetId) const
+QList<Snippet> SnippetsCollection::readXML(const FilePath &fileName, const QString &snippetId) const
{
QList<Snippet> 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<Snippet> SnippetsCollection::readXML(const QString &fileName, const QStrin
QList<Snippet> SnippetsCollection::allBuiltInSnippets() const
{
QList<Snippet> 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