| 214 | } |
| 215 | |
| 216 | void 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 | |
| 260 | void Step::paintEvent(QPaintEvent *e) { |
| 261 | auto p = QPainter(this); |
nothing calls this directly
no test coverage detected