[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [ksudoku/frameworks] src/gui: Cleanup KSudoku::updateShapesList() to remove manual path fiddling.
From: Johan Ouwerkerk <null () kde ! org>
Date: 2017-04-30 15:51:30
Message-ID: E1d4r8E-0003kS-Tk () code ! kde ! org
[Download RAW message or body]
Git commit 52bdce6a0d93b21becad5011ffa27b7a5af617b3 by Johan Ouwerkerk.
Committed on 30/04/2017 at 15:51.
Pushed by ouwerkerk into branch 'frameworks'.
Cleanup KSudoku::updateShapesList() to remove manual path fiddling.
Summary: This change resolves Phabricator/Maniphest task T5977.
Test Plan:
Compiled & tested I could still generate custom game variant puzzles: Mathdoku 4x4, \
Killer 9x9.
Also, to confirm the duplicate filtering is redundant I ran ksudoku with a \
deliberately messed up `XDG_DATA_DIRS` environment variable: ```
XDG_DATA_DIRS="$XDG_DATA_DIRS:$PWD/kde-5/share;$PWD/kde-5/share;$PWD/kde-5/share" \
./kde-5/bin/ksudoku ```
(Which still lists each game variant type only once, meaning the filtering was in \
fact redundant.)
Reviewers: #kde_games, ltoscano
Reviewed By: ltoscano
Subscribers: ltoscano, #kde_games
Maniphest Tasks: T5977
Differential Revision: https://phabricator.kde.org/D5669
M +5 -10 src/gui/ksudoku.cpp
https://commits.kde.org/ksudoku/52bdce6a0d93b21becad5011ffa27b7a5af617b3
diff --git a/src/gui/ksudoku.cpp b/src/gui/ksudoku.cpp
index e54b849..058dd54 100644
--- a/src/gui/ksudoku.cpp
+++ b/src/gui/ksudoku.cpp
@@ -187,14 +187,10 @@ void KSudoku::updateShapesList()
const QStringList gamevariantdirs = \
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "ksudoku", \
QStandardPaths::LocateDirectory);
- QStringList filepaths;
+ QFileInfoList filepaths;
for (const QString& gamevariantdir : gamevariantdirs) {
- const QStringList fileNames = QDir(gamevariantdir).entryList(QStringList() << \
QStringLiteral("*.desktop"));
- for (const QString &file : fileNames) {
- if (!filepaths.contains(gamevariantdir + '/' + file)) {
- filepaths.append(gamevariantdir + '/' + file);
- }
- }
+ const auto fileNames = QDir(gamevariantdir).entryInfoList(QStringList() << \
QStringLiteral("*.desktop"), QDir::Files | QDir::Readable | QDir::NoDotAndDotDot); \
+ filepaths.append(fileNames); }
QString variantName;
@@ -202,10 +198,9 @@ void KSudoku::updateShapesList()
QString variantDataPath;
QString variantIcon;
- for (const QString &filepath : qAsConst(filepaths)) {
- const QFileInfo configFileInfo(filepath);
+ for (const QFileInfo &configFileInfo : qAsConst(filepaths)) {
const QDir variantDir = configFileInfo.dir();
- KConfig variantConfig(filepath, KConfig::SimpleConfig);
+ KConfig variantConfig(configFileInfo.filePath(), KConfig::SimpleConfig);
KConfigGroup group = variantConfig.group ("KSudokuVariant");
variantName = group.readEntry("Name", i18n("Missing Variant Name")); // \
Translated.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic