MCPcopy Create free account
hub / github.com/KikoPlayProject/KikoPlay / init

Method init

globalobjects.cpp:52–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50constexpr const char *GlobalObjects::kikoVersion;
51
52void GlobalObjects::init(QElapsedTimer *elapsedTimer)
53{
54 context()->init();
55
56 registerCustomSettingType();
57 appSetting = new QSettings(context()->dataPath + "settings.ini", QSettings::IniFormat);
58 Logger::logger();
59
60 normalFont = appSetting->value("UI/Font", "Microsoft YaHei UI").toString();
61
62 QThread::currentThread()->setObjectName(QStringLiteral("mainThread"));
63 workThread = new QThread();
64 workThread->setObjectName(QStringLiteral("workThread"));
65 workThread->start(QThread::NormalPriority);
66 Logger::logger()->log(Logger::APP, QString::asprintf("worker thread: %p", workThread));
67 GlobalObjects::context()->tick(elapsedTimer, "init");
68
69 DBManager::instance();
70 GlobalObjects::context()->tick(elapsedTimer, "db");
71
72 auto locNames = GlobalObjects::appSetting->value("KikoPlay/Language", "").toStringList();
73 if (locNames.join("").isEmpty())
74 {
75 locNames = QLocale().uiLanguages();
76 }
77 static QTranslator translator;
78 for (const auto &locName:locNames)
79 {
80 auto loc = QLocale(locName);
81 QStringList uiLangs{ loc.uiLanguages() };
82 if (!uiLangs.empty() && uiLangs[0].startsWith("en-")) break;
83 if (translator.load(loc, "", "", ":/res/lang"))
84 {
85 qApp->installTranslator(&translator);
86 GlobalObjects::context()->lang = locName;
87 break;
88 }
89 }
90 Notifier::getNotifier();
91 EventBus::getEventBus();
92
93 PlayContext::context();
94 mpvplayer = new MPVPlayer();
95 GlobalObjects::context()->tick(elapsedTimer, "player");
96
97 danmuPool = new DanmuPool();
98 danmuRender = new DanmuRender();
99 QObject::connect(mpvplayer, &MPVPlayer::positionChanged, danmuPool, &DanmuPool::mediaTimeElapsed);
100 QObject::connect(mpvplayer, &MPVPlayer::positionJumped, danmuPool, &DanmuPool::mediaTimeJumped);
101 playlist = new PlayList();
102 QObject::connect(playlist, &PlayList::currentMatchChanged, danmuPool, &DanmuPool::setPoolID);
103 blocker = new Blocker();
104 GlobalObjects::context()->tick(elapsedTimer, "list");
105
106 scriptManager = new ScriptManager();
107 danmuProvider = new DanmuProvider();
108 animeProvider = new AnimeProvider();
109 QObject workObj;

Callers 3

eFunction · 0.45
cFunction · 0.45
gFunction · 0.45

Calls 13

valueMethod · 0.80
logMethod · 0.80
tickMethod · 0.80
loadLabelsMethod · 0.80
setFontMethod · 0.80
existsMethod · 0.80
isDirMethod · 0.80
mkpathMethod · 0.80
toStringMethod · 0.45
startMethod · 0.45
isEmptyMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected