fix: 修复社区版任务栏的显示模式错误

AM中初始化的显示模式设置为空,当AM第一次启动的时候,读取到的显示模式配置如果为空,就判断当前系统是否为社区版,如果是社区版,就让其配置为时尚模式,否则,就配置为高效模式

Log:
Influence: 安装社区版,观察任务栏启动是否为时尚模式
Bug: https://pms.uniontech.com/bug-view-175723.html
Change-Id: I51e7678716ca8064a61c8ab3b703d03beb779291
This commit is contained in:
donghualin 2022-12-07 10:42:04 +00:00
parent e4f4a47b87
commit 35ac315646
2 changed files with 18 additions and 1 deletions

View File

@ -133,7 +133,7 @@
"visibility": "private"
},
"Display_Mode": {
"value": "efficient",
"value": "",
"serial": 0,
"flags": [],
"name": "Display_Mode",

View File

@ -6,6 +6,8 @@
#include "application1adaptor.h"
#include "applicationhelper.h"
#include "mime1adaptor.h"
#include "settings.h"
#include "dsysinfo.h"
#include "../modules/apps/appmanager.h"
#include "../modules/launcher/launchermanager.h"
#include "../modules/dock/dockmanager.h"
@ -69,6 +71,18 @@ QList<QSharedPointer<Application>> scanFiles()
return applications;
}
void init()
{
// 从DConfig中读取当前的显示模式如果为空则认为是第一次进入新安装的系统否则就认为系统之前已经进入设置过直接返回即可
QSharedPointer<DConfig> config(Settings::ConfigPtr("com.deepin.dde.dock"));
if (config.isNull() || !config->value("Display_Mode").toString().isEmpty())
return;
// 然后判断当前系统是否为社区版,社区版默认任务栏模式为时尚模式,其他版本默认为高效模式
QString displayMode = DSysInfo::isCommunityEdition() ? QString("fashion") : QString("efficient");
config->setValue("Display_Mode", displayMode);
}
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
@ -82,6 +96,9 @@ int main(int argc, char *argv[])
translator->load(QString("/usr/share/dde-application-manager/translations/dde-application-manager_%1.qm").arg(QLocale::system().name()));
QCoreApplication::installTranslator(translator);
// 初始化
init();
new AppManager(ApplicationManager::instance());
new LauncherManager(ApplicationManager::instance());
new DockManager(ApplicationManager::instance());