2023-09-20 18:29:42 +08:00
|
|
|
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
|
|
|
|
#ifndef MIMEMANAGERSERVICE_H
|
|
|
|
#define MIMEMANAGERSERVICE_H
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
#include <QDBusContext>
|
|
|
|
#include <QDBusObjectPath>
|
|
|
|
#include "global.h"
|
|
|
|
#include "applicationmimeinfo.h"
|
|
|
|
|
|
|
|
class ApplicationManager1Service;
|
|
|
|
|
2023-10-18 18:29:52 +08:00
|
|
|
class MimeManager1Service : public QObject, protected QDBusContext
|
2023-09-20 18:29:42 +08:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
explicit MimeManager1Service(ApplicationManager1Service *parent);
|
|
|
|
~MimeManager1Service() override;
|
|
|
|
|
|
|
|
void appendMimeInfo(MimeInfo &&info);
|
|
|
|
[[nodiscard]] const auto &infos() const noexcept { return m_infos; }
|
|
|
|
[[nodiscard]] auto &infos() noexcept { return m_infos; }
|
|
|
|
|
|
|
|
public Q_SLOTS:
|
|
|
|
[[nodiscard]] ObjectMap listApplications(const QString &mimeType) const noexcept;
|
|
|
|
[[nodiscard]] QString queryFileTypeAndDefaultApplication(const QString &filePath,
|
|
|
|
QDBusObjectPath &application) const noexcept;
|
2023-10-12 18:05:00 +08:00
|
|
|
void setDefaultApplication(const QStringMap &defaultApps) noexcept;
|
2023-09-20 18:29:42 +08:00
|
|
|
void unsetDefaultApplication(const QStringList &mimeTypes) noexcept;
|
|
|
|
|
|
|
|
private:
|
|
|
|
QMimeDatabase m_database;
|
|
|
|
std::vector<MimeInfo> m_infos;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|