fix: compatible with gcc 11

Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
ComixHe 2023-10-17 14:37:03 +08:00 committed by Comix
parent fc5184bab4
commit 5597ba5c44
3 changed files with 10 additions and 10 deletions

View File

@ -5,7 +5,7 @@
#include "applicationmimeinfo.h" #include "applicationmimeinfo.h"
#include "global.h" #include "global.h"
constexpr decltype(auto) desktopSuffix = u8".desktop"; constexpr std::array<char, 9> desktopSuffix{u8".desktop"};
QStringList getListFiles() noexcept QStringList getListFiles() noexcept
{ {
@ -60,7 +60,7 @@ QString toString(const MimeContent &content) noexcept
QString removeDesktopSuffix(const QString &str) noexcept QString removeDesktopSuffix(const QString &str) noexcept
{ {
return str.chopped(sizeof(desktopSuffix) - 1); return str.chopped(desktopSuffix.size() - 1);
} }
} // namespace } // namespace
@ -140,7 +140,7 @@ void MimeApps::insertToSection(const QString &section, const QString &mimeType,
targetSection = map.insert(section, {}); targetSection = map.insert(section, {});
} }
QStringList newApps{appId + desktopSuffix}; QStringList newApps{QString{appId}.append(desktopSuffix.data())};
auto oldApps = targetSection->find(mimeType); auto oldApps = targetSection->find(mimeType);
if (oldApps != targetSection->end()) { if (oldApps != targetSection->end()) {
newApps.append(*oldApps); newApps.append(*oldApps);
@ -168,7 +168,7 @@ void MimeApps::setDefaultApplication(const QString &mimeType, const QString &app
defaultSection = map.insert(defaultApplications, {}); defaultSection = map.insert(defaultApplications, {});
} }
defaultSection->insert(mimeType, {appId + desktopSuffix}); defaultSection->insert(mimeType, {QString{appId}.append(desktopSuffix.data())});
} }
void MimeApps::unsetDefaultApplication(const QString &mimeType) noexcept void MimeApps::unsetDefaultApplication(const QString &mimeType) noexcept
@ -186,7 +186,7 @@ void MimeApps::unsetDefaultApplication(const QString &mimeType) noexcept
AppList MimeApps::queryTypes(QString appId) const noexcept AppList MimeApps::queryTypes(QString appId) const noexcept
{ {
AppList ret; AppList ret;
appId.append(desktopSuffix); appId.append(desktopSuffix.data());
const auto &lists = content(); const auto &lists = content();
if (const auto &adds = lists.constFind(addedAssociations); adds != lists.cend()) { if (const auto &adds = lists.constFind(addedAssociations); adds != lists.cend()) {
@ -258,7 +258,7 @@ QString MimeApps::queryDefaultApp(const QMimeType &type) const noexcept
QStringList MimeCache::queryTypes(QString appId) const noexcept QStringList MimeCache::queryTypes(QString appId) const noexcept
{ {
QStringList ret; QStringList ret;
appId.append(desktopSuffix); appId.append(desktopSuffix.data());
const auto &cache = content()[mimeCache]; const auto &cache = content()[mimeCache];
for (auto it = cache.constKeyValueBegin(); it != cache.constKeyValueEnd(); ++it) { for (auto it = cache.constKeyValueBegin(); it != cache.constKeyValueEnd(); ++it) {
if (it->second.contains(appId)) { if (it->second.contains(appId)) {
@ -297,7 +297,7 @@ QStringList MimeCache::queryApps(const QMimeType &type) const noexcept
if (auto kv = it->constFind(type.name()); kv != it->constEnd()) { if (auto kv = it->constFind(type.name()); kv != it->constEnd()) {
const auto &apps = kv.value(); const auto &apps = kv.value();
for (const auto &e : apps) { for (const auto &e : apps) {
if (!e.endsWith(desktopSuffix)) { if (!e.endsWith(desktopSuffix.data())) {
continue; continue;
} }
ret.append(removeDesktopSuffix(e)); ret.append(removeDesktopSuffix(e));

View File

@ -1,5 +1,5 @@
{ {
"Exec": "/usr/bin/echo", "Exec": "/usr/bin/stat",
"Args": [ "Args": [
"for test" "for test"
] ]

View File

@ -14,12 +14,12 @@ TEST(ApplicationHookTest, load)
auto hook = ApplicationHook::loadFromFile(file); auto hook = ApplicationHook::loadFromFile(file);
EXPECT_TRUE(hook); EXPECT_TRUE(hook);
EXPECT_EQ(hook->hookName(), QString{"1-test.json"}); EXPECT_EQ(hook->hookName(), QString{"1-test.json"});
EXPECT_EQ(hook->execPath(), QString{"/usr/bin/echo"}); EXPECT_EQ(hook->execPath(), QString{"/usr/bin/stat"});
QStringList tmp{"for test"}; QStringList tmp{"for test"};
EXPECT_EQ(hook->args(), tmp); EXPECT_EQ(hook->args(), tmp);
tmp.push_front("/usr/bin/echo"); tmp.push_front("/usr/bin/stat");
auto elem = generateHooks({std::move(hook).value()}); auto elem = generateHooks({std::move(hook).value()});
EXPECT_EQ(elem, tmp); EXPECT_EQ(elem, tmp);
} }