style: format code

This commit is contained in:
black-desk
2023-07-21 14:47:40 +08:00
parent 5fed3ed9f0
commit 857db2625a
15 changed files with 135 additions and 91 deletions

View File

@ -9,14 +9,20 @@ ApplicationManager1Service::~ApplicationManager1Service() = default;
ApplicationManager1Service::ApplicationManager1Service() = default; ApplicationManager1Service::ApplicationManager1Service() = default;
QList<QDBusObjectPath> ApplicationManager1Service::list() const { return m_applicationList.keys(); } QList<QDBusObjectPath> ApplicationManager1Service::list() const
{
return m_applicationList.keys();
}
bool ApplicationManager1Service::removeOneApplication(const QDBusObjectPath &application) bool ApplicationManager1Service::removeOneApplication(const QDBusObjectPath &application)
{ {
return m_applicationList.remove(application) != 0; return m_applicationList.remove(application) != 0;
} }
void ApplicationManager1Service::removeAllApplication() { m_applicationList.clear(); } void ApplicationManager1Service::removeAllApplication()
{
m_applicationList.clear();
}
QDBusObjectPath ApplicationManager1Service::Application(const QString &id) QDBusObjectPath ApplicationManager1Service::Application(const QString &id)
{ {

View File

@ -21,13 +21,11 @@ public:
ApplicationManager1Service(const ApplicationManager1Service &) = delete; ApplicationManager1Service(const ApplicationManager1Service &) = delete;
ApplicationManager1Service(ApplicationManager1Service &&) = delete; ApplicationManager1Service(ApplicationManager1Service &&) = delete;
ApplicationManager1Service &operator=(const ApplicationManager1Service &) = delete; ApplicationManager1Service &operator=(const ApplicationManager1Service &) = delete;
ApplicationManager1Service &operator=(ApplicationManager1Service&&) = delete; ApplicationManager1Service &operator=(ApplicationManager1Service &&) = delete;
Q_PROPERTY(QList<QDBusObjectPath> List READ list) Q_PROPERTY(QList<QDBusObjectPath> List READ list)
QList<QDBusObjectPath> list() const; QList<QDBusObjectPath> list() const;
void addApplication(const QString &ID, void addApplication(const QString &ID, const QStringList &actions, bool AutoStart = false);
const QStringList &actions,
bool AutoStart = false);
bool removeOneApplication(const QDBusObjectPath &application); bool removeOneApplication(const QDBusObjectPath &application);
void removeAllApplication(); void removeAllApplication();
@ -37,7 +35,7 @@ public Q_SLOTS:
QDBusObjectPath Launch(const QString &id, const QString &action, const QStringList &fields, const QVariantMap &options); QDBusObjectPath Launch(const QString &id, const QString &action, const QStringList &fields, const QVariantMap &options);
private: private:
QMap<QDBusObjectPath,QSharedPointer<ApplicationService>> m_applicationList; QMap<QDBusObjectPath, QSharedPointer<ApplicationService>> m_applicationList;
}; };
#endif #endif

View File

@ -35,22 +35,52 @@ QDBusObjectPath ApplicationService::Launch(const QString &action, const QStringL
return {}; return {};
} }
QStringList ApplicationService::actions() const noexcept { return m_actions; } QStringList ApplicationService::actions() const noexcept
{
return m_actions;
}
QStringList& ApplicationService::actionsRef() noexcept { return m_actions; } QStringList &ApplicationService::actionsRef() noexcept
{
return m_actions;
}
QString ApplicationService::iD() const noexcept { return m_ID; } QString ApplicationService::iD() const noexcept
{
return m_ID;
}
IconMap ApplicationService::icons() const { return m_Icons; } IconMap ApplicationService::icons() const
{
return m_Icons;
}
IconMap& ApplicationService::iconsRef() { return m_Icons; } IconMap &ApplicationService::iconsRef()
{
return m_Icons;
}
bool ApplicationService::isAutoStart() const noexcept { return m_AutoStart; } bool ApplicationService::isAutoStart() const noexcept
{
return m_AutoStart;
}
void ApplicationService::setAutoStart(bool autostart) noexcept { m_AutoStart = autostart; } void ApplicationService::setAutoStart(bool autostart) noexcept
{
m_AutoStart = autostart;
}
QList<QDBusObjectPath> ApplicationService::instances() const noexcept { return m_Instances.keys(); } QList<QDBusObjectPath> ApplicationService::instances() const noexcept
{
return m_Instances.keys();
}
bool ApplicationService::removeOneInstance(const QDBusObjectPath &instance) { return m_Instances.remove(instance) != 0; } bool ApplicationService::removeOneInstance(const QDBusObjectPath &instance)
{
return m_Instances.remove(instance) != 0;
}
void ApplicationService::removeAllInstance() { m_Instances.clear();} void ApplicationService::removeAllInstance()
{
m_Instances.clear();
}

View File

@ -19,21 +19,21 @@ class ApplicationService : public QObject
Q_OBJECT Q_OBJECT
public: public:
~ApplicationService() override; ~ApplicationService() override;
ApplicationService(const ApplicationService&) = delete; ApplicationService(const ApplicationService &) = delete;
ApplicationService(ApplicationService &&) = delete; ApplicationService(ApplicationService &&) = delete;
ApplicationService& operator=(const ApplicationService&) = delete; ApplicationService &operator=(const ApplicationService &) = delete;
ApplicationService &operator=(ApplicationService &&) = delete; ApplicationService &operator=(ApplicationService &&) = delete;
Q_PROPERTY(QStringList Actions READ actions CONSTANT) Q_PROPERTY(QStringList Actions READ actions CONSTANT)
QStringList actions() const noexcept; QStringList actions() const noexcept;
QStringList& actionsRef() noexcept; QStringList &actionsRef() noexcept;
Q_PROPERTY(QString ID READ iD CONSTANT) Q_PROPERTY(QString ID READ iD CONSTANT)
QString iD() const noexcept; QString iD() const noexcept;
Q_PROPERTY(IconMap Icons READ icons) Q_PROPERTY(IconMap Icons READ icons)
IconMap icons() const; IconMap icons() const;
IconMap& iconsRef(); IconMap &iconsRef();
Q_PROPERTY(bool AutoStart READ isAutoStart WRITE setAutoStart) Q_PROPERTY(bool AutoStart READ isAutoStart WRITE setAutoStart)
bool isAutoStart() const noexcept; bool isAutoStart() const noexcept;
@ -57,7 +57,7 @@ private:
QString m_ID; QString m_ID;
QDBusObjectPath m_applicationPath; QDBusObjectPath m_applicationPath;
QStringList m_actions; QStringList m_actions;
QMap<QDBusObjectPath,QSharedPointer<InstanceService>> m_Instances; QMap<QDBusObjectPath, QSharedPointer<InstanceService>> m_Instances;
IconMap m_Icons; IconMap m_Icons;
}; };

View File

@ -5,12 +5,19 @@
#include "instanceservice.h" #include "instanceservice.h"
InstanceService::InstanceService(QString application, QString systemdUnitPath) InstanceService::InstanceService(QString application, QString systemdUnitPath)
: m_Application(std::move(application)), m_SystemdUnitPath(std::move(systemdUnitPath)) : m_Application(std::move(application))
, m_SystemdUnitPath(std::move(systemdUnitPath))
{ {
} }
InstanceService::~InstanceService() = default; InstanceService::~InstanceService() = default;
QDBusObjectPath InstanceService::application() const { return m_Application; } QDBusObjectPath InstanceService::application() const
{
return m_Application;
}
QDBusObjectPath InstanceService::systemdUnitPath() const { return m_SystemdUnitPath; } QDBusObjectPath InstanceService::systemdUnitPath() const
{
return m_SystemdUnitPath;
}

View File

@ -16,7 +16,7 @@ public:
InstanceService(const InstanceService &) = delete; InstanceService(const InstanceService &) = delete;
InstanceService(InstanceService &&) = delete; InstanceService(InstanceService &&) = delete;
InstanceService &operator=(const InstanceService &) = delete; InstanceService &operator=(const InstanceService &) = delete;
InstanceService &operator=(InstanceService&&) = delete; InstanceService &operator=(InstanceService &&) = delete;
Q_PROPERTY(QDBusObjectPath Application READ application CONSTANT) Q_PROPERTY(QDBusObjectPath Application READ application CONSTANT)
QDBusObjectPath application() const; QDBusObjectPath application() const;

View File

@ -23,7 +23,7 @@ class JobManager1Service final : public QObject
public: public:
JobManager1Service(); JobManager1Service();
JobManager1Service(const JobManager1Service &) = delete; JobManager1Service(const JobManager1Service &) = delete;
JobManager1Service(JobManager1Service&&) = delete; JobManager1Service(JobManager1Service &&) = delete;
JobManager1Service &operator=(const JobManager1Service &) = delete; JobManager1Service &operator=(const JobManager1Service &) = delete;
JobManager1Service &operator=(JobManager1Service &&) = delete; JobManager1Service &operator=(JobManager1Service &&) = delete;
@ -34,8 +34,12 @@ public:
static_assert(std::is_invocable_v<F, QVariant>, "param type must be QVariant."); static_assert(std::is_invocable_v<F, QVariant>, "param type must be QVariant.");
QString objectPath{DDEApplicationManager1JobObjectPath + QUuid::createUuid().toString(QUuid::Id128)}; QString objectPath{DDEApplicationManager1JobObjectPath + QUuid::createUuid().toString(QUuid::Id128)};
auto future = QtConcurrent::mappedReduced( auto future = QtConcurrent::mappedReduced(args.begin(),
args.begin(), args.end(), func,qOverload<QVariantList::parameter_type>(&QVariantList::append), QVariantList{}, QtConcurrent::ReduceOption::OrderedReduce); args.end(),
func,
qOverload<QVariantList::parameter_type>(&QVariantList::append),
QVariantList{},
QtConcurrent::ReduceOption::OrderedReduce);
QSharedPointer<JobService> job{new JobService{future}}; QSharedPointer<JobService> job{new JobService{future}};
auto path = QDBusObjectPath{objectPath}; auto path = QDBusObjectPath{objectPath};
{ {
@ -44,7 +48,7 @@ public:
} }
emit JobNew(path, source); emit JobNew(path, source);
registerObjectToDbus(new JobAdaptor(job.data()), objectPath, getDBusInterface<JobAdaptor>()); registerObjectToDbus(new JobAdaptor(job.data()), objectPath, getDBusInterface<JobAdaptor>());
auto emitRemove = [this, job, path, future] (QVariantList value) { auto emitRemove = [this, job, path, future](QVariantList value) {
decltype(m_jobs)::size_type removeCount{0}; decltype(m_jobs)::size_type removeCount{0};
{ {
QMutexLocker locker{&m_mutex}; QMutexLocker locker{&m_mutex};

View File

@ -4,7 +4,7 @@
#include "jobservice.h" #include "jobservice.h"
JobService::JobService(const QFuture<QVariantList>& job) JobService::JobService(const QFuture<QVariantList> &job)
: m_job(job) : m_job(job)
{ {
} }

View File

@ -29,7 +29,7 @@ public Q_SLOTS:
private: private:
friend class JobManager1Service; friend class JobManager1Service;
explicit JobService(const QFuture<QVariantList>& job); explicit JobService(const QFuture<QVariantList> &job);
QFuture<QVariantList> m_job; QFuture<QVariantList> m_job;
}; };

View File

@ -22,12 +22,12 @@ auto DesktopEntry::parserGroupHeader(const QString &str) noexcept
} }
} }
ParseError DesktopEntry::parseEntry(const QString &str, decltype(m_entryMap)::iterator& currentGroup) noexcept ParseError DesktopEntry::parseEntry(const QString &str, decltype(m_entryMap)::iterator &currentGroup) noexcept
{ {
if (str.startsWith("#")) if (str.startsWith("#"))
return ParseError::NoError; return ParseError::NoError;
auto splitCharIndex = str.indexOf(']'); auto splitCharIndex = str.indexOf(']');
if(splitCharIndex != -1){ if (splitCharIndex != -1) {
for (; splitCharIndex < str.size(); ++splitCharIndex) { for (; splitCharIndex < str.size(); ++splitCharIndex) {
if (str.at(splitCharIndex) == '=') if (str.at(splitCharIndex) == '=')
break; break;
@ -39,11 +39,11 @@ ParseError DesktopEntry::parseEntry(const QString &str, decltype(m_entryMap)::it
auto valueStr = str.sliced(splitCharIndex + 1).trimmed(); auto valueStr = str.sliced(splitCharIndex + 1).trimmed();
QString key, valueKey{defaultKeyStr}; QString key, valueKey{defaultKeyStr};
constexpr auto MainKey = R"re((?<MainKey>[0-9a-zA-Z-]+))re";// main key. eg.(Name, X-CUSTOM-KEY). constexpr auto MainKey = R"re((?<MainKey>[0-9a-zA-Z-]+))re"; // main key. eg.(Name, X-CUSTOM-KEY).
constexpr auto Language = R"re((?:[a-z]+))re";// language of locale postfix. eg.(en, zh) constexpr auto Language = R"re((?:[a-z]+))re"; // language of locale postfix. eg.(en, zh)
constexpr auto Country = R"re((?:_[A-Z]+))re";// country of locale postfix. eg.(US, CN) constexpr auto Country = R"re((?:_[A-Z]+))re"; // country of locale postfix. eg.(US, CN)
constexpr auto Encoding = R"re((?:\.[0-9A-Z-]+))re";// encoding of locale postfix. eg.(UFT-8) constexpr auto Encoding = R"re((?:\.[0-9A-Z-]+))re"; // encoding of locale postfix. eg.(UFT-8)
constexpr auto Modifier = R"re((?:@[a-z=;]+))re";// modifier of locale postfix. eg(euro;collation=traditional) constexpr auto Modifier = R"re((?:@[a-z=;]+))re"; // modifier of locale postfix. eg(euro;collation=traditional)
const static auto validKey = const static auto validKey =
QString("^%1(?:\\[(?<LOCALE>%2%3?%4?%5?)\\])?$").arg(MainKey).arg(Language).arg(Country).arg(Encoding).arg(Modifier); QString("^%1(?:\\[(?<LOCALE>%2%3?%4?%5?)\\])?$").arg(MainKey).arg(Language).arg(Country).arg(Encoding).arg(Modifier);
// example: https://regex101.com/r/hylOay/1 // example: https://regex101.com/r/hylOay/1
@ -58,7 +58,7 @@ ParseError DesktopEntry::parseEntry(const QString &str, decltype(m_entryMap)::it
key = matcher.captured("MainKey"); key = matcher.captured("MainKey");
if (auto locale = matcher.captured("LOCALE"); !locale.isEmpty()) { if (auto locale = matcher.captured("LOCALE"); !locale.isEmpty()) {
valueKey = locale ; valueKey = locale;
} }
qDebug() << valueKey << valueStr; qDebug() << valueKey << valueStr;
if (auto cur = currentGroup->find(key); cur == currentGroup->end()) { if (auto cur = currentGroup->find(key); cur == currentGroup->end()) {
@ -81,10 +81,10 @@ std::optional<DesktopFile> DesktopFile::searchDesktopFile(const QString &desktop
{ {
if (auto tmp = desktopFile.split("."); tmp.last() != "desktop") { if (auto tmp = desktopFile.split("."); tmp.last() != "desktop") {
qWarning() << "file isn't a desktop file"; qWarning() << "file isn't a desktop file";
err = ParseError::MismatchedFile; err = ParseError::MismatchedFile;
return std::nullopt; return std::nullopt;
} }
QString path,id; QString path, id;
QFileInfo Fileinfo{desktopFile}; QFileInfo Fileinfo{desktopFile};
if (Fileinfo.isAbsolute() and Fileinfo.exists()) { if (Fileinfo.isAbsolute() and Fileinfo.exists()) {
path = desktopFile; path = desktopFile;
@ -93,8 +93,9 @@ std::optional<DesktopFile> DesktopFile::searchDesktopFile(const QString &desktop
qDebug() << "Current Application Dirs:" << XDGDataDirs; qDebug() << "Current Application Dirs:" << XDGDataDirs;
for (const auto &d : XDGDataDirs) { for (const auto &d : XDGDataDirs) {
auto dirPath = QDir::cleanPath(d); auto dirPath = QDir::cleanPath(d);
QDirIterator it{dirPath,{desktopFile},QDir::AllEntries | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories}; QDirIterator it{
if (it.hasNext()){ dirPath, {desktopFile}, QDir::AllEntries | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories};
if (it.hasNext()) {
path = it.next(); path = it.next();
break; break;
} }
@ -119,10 +120,10 @@ std::optional<DesktopFile> DesktopFile::searchDesktopFile(const QString &desktop
id = FileId.chopped(1); id = FileId.chopped(1);
} }
err = ParseError::NoError; err = ParseError::NoError;
return DesktopFile{std::move(path),std::move(id)}; return DesktopFile{std::move(path), std::move(id)};
} }
ParseError DesktopEntry::parse(QTextStream& stream) noexcept ParseError DesktopEntry::parse(QTextStream &stream) noexcept
{ {
if (stream.atEnd()) if (stream.atEnd())
return ParseError::OpenFailed; return ParseError::OpenFailed;
@ -143,7 +144,7 @@ ParseError DesktopEntry::parse(QTextStream& stream) noexcept
if (auto e = parseEntry(line, currentGroup); e != ParseError::NoError) { if (auto e = parseEntry(line, currentGroup); e != ParseError::NoError) {
err = e; err = e;
qWarning() << "an error occurred,this line will be skipped:"<< line; qWarning() << "an error occurred,this line will be skipped:" << line;
} }
} }
return err; return err;
@ -209,15 +210,14 @@ QString DesktopEntry::Value::toString(bool &ok) const noexcept
auto unescapedStr = unescape(*str); auto unescapedStr = unescape(*str);
constexpr auto controlChars = "\\p{Cc}"; constexpr auto controlChars = "\\p{Cc}";
constexpr auto asciiChars = "[^\x00-\x7f]"; constexpr auto asciiChars = "[^\x00-\x7f]";
if (unescapedStr.contains(QRegularExpression{controlChars}) and if (unescapedStr.contains(QRegularExpression{controlChars}) and unescapedStr.contains(QRegularExpression{asciiChars}))
unescapedStr.contains(QRegularExpression{asciiChars}))
return {}; return {};
ok = true; ok = true;
return unescapedStr; return unescapedStr;
} }
QString DesktopEntry::Value::toLocaleString(const QLocale &locale, bool& ok) const noexcept QString DesktopEntry::Value::toLocaleString(const QLocale &locale, bool &ok) const noexcept
{ {
ok = false; ok = false;
for (auto it = this->constKeyValueBegin(); it != this->constKeyValueEnd(); ++it) { for (auto it = this->constKeyValueBegin(); it != this->constKeyValueEnd(); ++it) {
@ -238,7 +238,7 @@ QString DesktopEntry::Value::toIconString(bool &ok) const noexcept
bool DesktopEntry::Value::toBoolean(bool &ok) const noexcept bool DesktopEntry::Value::toBoolean(bool &ok) const noexcept
{ {
ok = false; ok = false;
const auto& str = (*this)[defaultKeyStr]; const auto &str = (*this)[defaultKeyStr];
if (str == "true") { if (str == "true") {
ok = true; ok = true;
return true; return true;
@ -252,7 +252,7 @@ bool DesktopEntry::Value::toBoolean(bool &ok) const noexcept
float DesktopEntry::Value::toNumeric(bool &ok) const noexcept float DesktopEntry::Value::toNumeric(bool &ok) const noexcept
{ {
const auto& str = (*this)[defaultKeyStr]; const auto &str = (*this)[defaultKeyStr];
QVariant v{str}; QVariant v{str};
return v.toFloat(&ok); return v.toFloat(&ok);
} }
@ -260,7 +260,7 @@ float DesktopEntry::Value::toNumeric(bool &ok) const noexcept
QDebug operator<<(QDebug debug, const DesktopEntry::Value &v) QDebug operator<<(QDebug debug, const DesktopEntry::Value &v)
{ {
QDebugStateSaver saver{debug}; QDebugStateSaver saver{debug};
debug << static_cast<const QMap<QString,QString>&>(v); debug << static_cast<const QMap<QString, QString> &>(v);
return debug; return debug;
} }
@ -269,31 +269,31 @@ QDebug operator<<(QDebug debug, const ParseError &v)
QDebugStateSaver saver{debug}; QDebugStateSaver saver{debug};
QString errMsg; QString errMsg;
switch (v) { switch (v) {
case ParseError::NoError:{ case ParseError::NoError: {
errMsg = "no error."; errMsg = "no error.";
break; break;
} }
case ParseError::NotFound:{ case ParseError::NotFound: {
errMsg = "file not found."; errMsg = "file not found.";
break; break;
} }
case ParseError::MismatchedFile:{ case ParseError::MismatchedFile: {
errMsg = "file type is mismatched."; errMsg = "file type is mismatched.";
break; break;
} }
case ParseError::InvalidLocation:{ case ParseError::InvalidLocation: {
errMsg = "file location is invalid, please check $XDG_DATA_DIRS."; errMsg = "file location is invalid, please check $XDG_DATA_DIRS.";
break; break;
} }
case ParseError::OpenFailed:{ case ParseError::OpenFailed: {
errMsg = "couldn't open the file."; errMsg = "couldn't open the file.";
break; break;
} }
case ParseError::GroupHeaderInvalid:{ case ParseError::GroupHeaderInvalid: {
errMsg = "groupHead syntax is invalid."; errMsg = "groupHead syntax is invalid.";
break; break;
} }
case ParseError::EntryKeyInvalid:{ case ParseError::EntryKeyInvalid: {
errMsg = "key syntax is invalid."; errMsg = "key syntax is invalid.";
break; break;
} }

View File

@ -11,15 +11,7 @@
constexpr static auto defaultKeyStr = "default"; constexpr static auto defaultKeyStr = "default";
enum class ParseError { enum class ParseError { NoError, NotFound, MismatchedFile, InvalidLocation, OpenFailed, GroupHeaderInvalid, EntryKeyInvalid };
NoError,
NotFound,
MismatchedFile,
InvalidLocation,
OpenFailed,
GroupHeaderInvalid,
EntryKeyInvalid
};
class DesktopEntry class DesktopEntry
{ {
@ -41,7 +33,7 @@ public:
DesktopEntry() = default; DesktopEntry() = default;
~DesktopEntry() = default; ~DesktopEntry() = default;
[[nodiscard]] ParseError parse(QTextStream& stream) noexcept; [[nodiscard]] ParseError parse(QTextStream &stream) noexcept;
[[nodiscard]] QMap<QString, Value> group(const QString &key) const noexcept; [[nodiscard]] QMap<QString, Value> group(const QString &key) const noexcept;
private: private:
@ -61,15 +53,19 @@ struct DesktopFile
const QString &filePath() const { return m_filePath; } const QString &filePath() const { return m_filePath; }
const QString &desktopId() const { return m_desktopId; } const QString &desktopId() const { return m_desktopId; }
static std::optional<DesktopFile> searchDesktopFile(const QString &desktopFilePath, ParseError& err) noexcept; static std::optional<DesktopFile> searchDesktopFile(const QString &desktopFilePath, ParseError &err) noexcept;
private: private:
DesktopFile(QString &&path,QString &&fileId):m_filePath(std::move(path)),m_desktopId(std::move(fileId)){} DesktopFile(QString &&path, QString &&fileId)
: m_filePath(std::move(path))
, m_desktopId(std::move(fileId))
{
}
QString m_filePath; QString m_filePath;
QString m_desktopId; QString m_desktopId;
}; };
QDebug operator<<(QDebug debug, const DesktopEntry::Value& v); QDebug operator<<(QDebug debug, const DesktopEntry::Value &v);
QDebug operator<<(QDebug debug, const ParseError &v); QDebug operator<<(QDebug debug, const ParseError &v);

View File

@ -28,10 +28,10 @@ public:
ApplicationManager1DBus(const ApplicationManager1DBus &) = delete; ApplicationManager1DBus(const ApplicationManager1DBus &) = delete;
ApplicationManager1DBus(ApplicationManager1DBus &&) = delete; ApplicationManager1DBus(ApplicationManager1DBus &&) = delete;
ApplicationManager1DBus &operator=(const ApplicationManager1DBus &) = delete; ApplicationManager1DBus &operator=(const ApplicationManager1DBus &) = delete;
ApplicationManager1DBus &operator=(ApplicationManager1DBus&&) = delete; ApplicationManager1DBus &operator=(ApplicationManager1DBus &&) = delete;
const QString &BusAddress() { return m_busAddress; } const QString &BusAddress() { return m_busAddress; }
void setBusAddress(const QString &address) { m_busAddress = address; } void setBusAddress(const QString &address) { m_busAddress = address; }
QDBusConnection& CustomBus() QDBusConnection &CustomBus()
{ {
static auto con = QDBusConnection::connectToBus(m_busAddress, "org.deepin.dde.ApplicationManager1"); static auto con = QDBusConnection::connectToBus(m_busAddress, "org.deepin.dde.ApplicationManager1");
if (!con.isConnected()) { if (!con.isConnected()) {
@ -52,7 +52,7 @@ private:
QString m_busAddress; QString m_busAddress;
}; };
bool registerObjectToDbus(QObject* o, const QString &path, const QString &interface); bool registerObjectToDbus(QObject *o, const QString &path, const QString &interface);
template <typename T> template <typename T>
QString getDBusInterface() QString getDBusInterface()

View File

@ -19,4 +19,4 @@ int main(int argc, char **argv)
__sanitizer_set_report_path("asan_am.log"); __sanitizer_set_report_path("asan_am.log");
QCoreApplication::exec(); QCoreApplication::exec();
return ret; return ret;
} }

View File

@ -18,26 +18,24 @@ public:
auto curDir = QDir::current(); auto curDir = QDir::current();
QString path{curDir.absolutePath() + "/data/desktopExample.desktop"}; QString path{curDir.absolutePath() + "/data/desktopExample.desktop"};
ParseError err; ParseError err;
auto file = DesktopFile::searchDesktopFile(path,err); auto file = DesktopFile::searchDesktopFile(path, err);
if (!file.has_value()) { if (!file.has_value()) {
qWarning() << "search " << path << "failed:" << err; qWarning() << "search " << path << "failed:" << err;
return; return;
} }
m_file.reset(new DesktopFile{std::move(file).value()}); m_file.reset(new DesktopFile{std::move(file).value()});
} }
void SetUp() override void SetUp() override {}
{
}
void TearDown() override {} void TearDown() override {}
QSharedPointer<DesktopFile> file() { return m_file; } QSharedPointer<DesktopFile> file() { return m_file; }
private: private:
static inline QSharedPointer<DesktopFile> m_file; static inline QSharedPointer<DesktopFile> m_file;
}; };
TEST_F(TestDesktopEntry, desktopFile) TEST_F(TestDesktopEntry, desktopFile)
{ {
const auto& fileptr = file(); const auto &fileptr = file();
ASSERT_FALSE(fileptr.isNull()); ASSERT_FALSE(fileptr.isNull());
const auto &exampleFile = file(); const auto &exampleFile = file();
auto curDir = QDir::current(); auto curDir = QDir::current();
@ -49,7 +47,8 @@ TEST_F(TestDesktopEntry, desktopFile)
TEST_F(TestDesktopEntry, prase) TEST_F(TestDesktopEntry, prase)
{ {
const auto &exampleFile = file(); const auto &exampleFile = file();
ASSERT_FALSE(exampleFile.isNull());; ASSERT_FALSE(exampleFile.isNull());
;
DesktopEntry entry; DesktopEntry entry;
QFile in{exampleFile->filePath()}; QFile in{exampleFile->filePath()};
ASSERT_TRUE(in.open(QFile::ExistingOnly | QFile::ReadOnly | QFile::Text)); ASSERT_TRUE(in.open(QFile::ExistingOnly | QFile::ReadOnly | QFile::Text));

View File

@ -9,7 +9,8 @@
class TestJobManager : public testing::Test class TestJobManager : public testing::Test
{ {
public: public:
JobManager1Service& service() { return m_jobManager; } JobManager1Service &service() { return m_jobManager; }
private: private:
JobManager1Service m_jobManager; JobManager1Service m_jobManager;
}; };
@ -33,9 +34,12 @@ TEST_F(TestJobManager, addJob)
qDebug() << "job was really removed"; qDebug() << "job was really removed";
}); });
manager.addJob(sourcePath, [](auto value) -> QVariant { manager.addJob(
EXPECT_TRUE(value.toString() == "Application"); sourcePath,
return QVariant::fromValue(true); [](auto value) -> QVariant {
}, args); EXPECT_TRUE(value.toString() == "Application");
QThread::sleep(1); // force wait return QVariant::fromValue(true);
},
args);
QThread::sleep(1); // force wait
} }