fix: create user's mimeapp when it doesn't exists
issue: https://github.com/linuxdeepin/developer-center/issues/6794 Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
@ -90,9 +90,21 @@ QString MimeManager1Service::queryDefaultApplication(const QString &content, QDB
|
||||
void MimeManager1Service::setDefaultApplication(const QStringMap &defaultApps) noexcept
|
||||
{
|
||||
auto &app = m_infos.front().appsList();
|
||||
|
||||
if (app.empty()) {
|
||||
sendErrorReply(QDBusError::InternalError);
|
||||
return;
|
||||
}
|
||||
|
||||
auto userConfig = std::find_if(
|
||||
app.begin(), app.end(), [](const MimeApps &config) { return !config.isDesktopSpecific(); }); // always find this
|
||||
|
||||
if (userConfig == app.end()) {
|
||||
qWarning() << "couldn't find user mimeApps";
|
||||
sendErrorReply(QDBusError::InternalError);
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto it = defaultApps.constKeyValueBegin(); it != defaultApps.constKeyValueEnd(); ++it) {
|
||||
userConfig->setDefaultApplication(it->first, it->second);
|
||||
}
|
||||
|
Reference in New Issue
Block a user