diff --git a/src/dbus/applicationmanager1service.cpp b/src/dbus/applicationmanager1service.cpp index 0851506..fca4d76 100644 --- a/src/dbus/applicationmanager1service.cpp +++ b/src/dbus/applicationmanager1service.cpp @@ -622,6 +622,11 @@ void ApplicationManager1Service::ReloadApplications() for (const auto &key : apps) { removeOneApplication(key); } + + m_mimeManager->reset(); + scanMimeInfos(); + + scanAutoStart(); } ObjectMap ApplicationManager1Service::GetManagedObjects() const diff --git a/src/dbus/mimemanager1service.cpp b/src/dbus/mimemanager1service.cpp index 03a2568..df565f2 100644 --- a/src/dbus/mimemanager1service.cpp +++ b/src/dbus/mimemanager1service.cpp @@ -120,3 +120,8 @@ void MimeManager1Service::appendMimeInfo(MimeInfo &&info) { m_infos.emplace_back(std::move(info)); } + +void MimeManager1Service::reset() noexcept +{ + m_infos.clear(); +} diff --git a/src/dbus/mimemanager1service.h b/src/dbus/mimemanager1service.h index e553cdf..bae25f5 100644 --- a/src/dbus/mimemanager1service.h +++ b/src/dbus/mimemanager1service.h @@ -23,6 +23,7 @@ public: void appendMimeInfo(MimeInfo &&info); [[nodiscard]] const auto &infos() const noexcept { return m_infos; } [[nodiscard]] auto &infos() noexcept { return m_infos; } + void reset() noexcept; public Q_SLOTS: [[nodiscard]] ObjectMap listApplications(const QString &mimeType) const noexcept;