MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / createSession

Method createSession

Telegram/SourceFiles/intro/intro_step.cpp:216–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

214}
215
216void Step::createSession(
217 const MTPUser &user,
218 QImage photo,
219 const QVector<MTPDialogFilter> &filters,
220 bool tagsEnabled) {
221 // Save the default language if we've suggested some other and user ignored it.
222 const auto currentId = Lang::Id();
223 const auto defaultId = Lang::DefaultLanguageId();
224 const auto suggested = Lang::CurrentCloudManager().suggestedLanguage();
225 if (currentId.isEmpty() && !suggested.isEmpty() && suggested != defaultId) {
226 Lang::GetInstance().switchToId(Lang::DefaultLanguage());
227 Local::writeLangPack();
228 }
229
230 auto settings = std::make_unique<Main::SessionSettings>();
231 const auto hasFilters = ranges::contains(
232 filters,
233 mtpc_dialogFilter,
234 &MTPDialogFilter::type);
235 settings->setDialogsFiltersEnabled(hasFilters);
236
237 const auto account = _account;
238 account->createSession(user, std::move(settings));
239
240 // "this" is already deleted here by creating the main widget.
241 account->local().enforceModernStorageIdBots();
242 account->local().writeMtpData();
243 auto &session = account->session();
244 session.data().chatsFilters().setPreloaded(filters, tagsEnabled);
245 if (hasFilters) {
246 session.saveSettingsDelayed();
247 }
248 if (!photo.isNull()) {
249 session.api().peerPhoto().upload(
250 session.user(),
251 { std::move(photo) });
252 }
253 account->appConfig().refresh();
254 if (session.supportMode()) {
255 PrepareSupportMode(&session);
256 }
257 Local::sync();
258}
259
260void Step::paintEvent(QPaintEvent *e) {
261 auto p = QPainter(this);

Callers

nothing calls this directly

Calls 15

IdFunction · 0.85
DefaultLanguageIdFunction · 0.85
DefaultLanguageFunction · 0.85
writeLangPackFunction · 0.85
PrepareSupportModeFunction · 0.85
syncFunction · 0.85
suggestedLanguageMethod · 0.80
switchToIdMethod · 0.80
writeMtpDataMethod · 0.80
setPreloadedMethod · 0.80

Tested by

no test coverage detected