Fix passport selfie requirements.
This commit is contained in:
		
							parent
							
								
									67e698a374
								
							
						
					
					
						commit
						60582a24ab
					
				
					 3 changed files with 37 additions and 26 deletions
				
			
		| 
						 | 
					@ -1004,7 +1004,7 @@ void FormController::startValueEdit(not_null<const Value*> value) {
 | 
				
			||||||
	for (auto &scan : nonconst->scans) {
 | 
						for (auto &scan : nonconst->scans) {
 | 
				
			||||||
		loadFile(scan);
 | 
							loadFile(scan);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (nonconst->selfie) {
 | 
						if (nonconst->selfie && _form.identitySelfieRequired) {
 | 
				
			||||||
		loadFile(*nonconst->selfie);
 | 
							loadFile(*nonconst->selfie);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	nonconst->scansInEdit = ranges::view::all(
 | 
						nonconst->scansInEdit = ranges::view::all(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -370,29 +370,8 @@ void EditScans::setupContent(const QString &header) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void EditScans::updateScan(ScanInfo &&info) {
 | 
					void EditScans::updateScan(ScanInfo &&info) {
 | 
				
			||||||
	const auto updateRow = [&](
 | 
					 | 
				
			||||||
			not_null<ScanButton*> button,
 | 
					 | 
				
			||||||
			const ScanInfo &info) {
 | 
					 | 
				
			||||||
		button->setStatus(info.status);
 | 
					 | 
				
			||||||
		button->setImage(info.thumb);
 | 
					 | 
				
			||||||
		button->setDeleted(info.deleted);
 | 
					 | 
				
			||||||
		button->setError(!info.error.isEmpty());
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
	if (info.selfie) {
 | 
						if (info.selfie) {
 | 
				
			||||||
		Assert(info.key.id != 0);
 | 
							updateSelfie(std::move(info));
 | 
				
			||||||
		Assert(_selfie != nullptr);
 | 
					 | 
				
			||||||
		if (_selfie->key.id) {
 | 
					 | 
				
			||||||
			updateRow(_selfieRow->entity(), info);
 | 
					 | 
				
			||||||
			if (!info.deleted) {
 | 
					 | 
				
			||||||
				hideSelfieError();
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			createSelfieRow(info);
 | 
					 | 
				
			||||||
			_selfieWrap->resizeToWidth(width());
 | 
					 | 
				
			||||||
			_selfieRow->show(anim::type::normal);
 | 
					 | 
				
			||||||
			_selfieHeader->show(anim::type::normal);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		*_selfie = std::move(info);
 | 
					 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	const auto i = ranges::find(_files, info.key, [](const ScanInfo &file) {
 | 
						const auto i = ranges::find(_files, info.key, [](const ScanInfo &file) {
 | 
				
			||||||
| 
						 | 
					@ -401,9 +380,7 @@ void EditScans::updateScan(ScanInfo &&info) {
 | 
				
			||||||
	if (i != _files.end()) {
 | 
						if (i != _files.end()) {
 | 
				
			||||||
		*i = std::move(info);
 | 
							*i = std::move(info);
 | 
				
			||||||
		const auto scan = _rows[i - _files.begin()]->entity();
 | 
							const auto scan = _rows[i - _files.begin()]->entity();
 | 
				
			||||||
		scan->setStatus(i->status);
 | 
							updateFileRow(scan, *i);
 | 
				
			||||||
		scan->setImage(i->thumb);
 | 
					 | 
				
			||||||
		scan->setDeleted(i->deleted);
 | 
					 | 
				
			||||||
		if (!i->deleted) {
 | 
							if (!i->deleted) {
 | 
				
			||||||
			hideError();
 | 
								hideError();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -421,6 +398,36 @@ void EditScans::updateScan(ScanInfo &&info) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EditScans::updateSelfie(ScanInfo &&info) {
 | 
				
			||||||
 | 
						Expects(info.key.id != 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!_selfie) {
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (_selfie->key.id) {
 | 
				
			||||||
 | 
							updateFileRow(_selfieRow->entity(), info);
 | 
				
			||||||
 | 
							if (!info.deleted) {
 | 
				
			||||||
 | 
								hideSelfieError();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							createSelfieRow(info);
 | 
				
			||||||
 | 
							_selfieWrap->resizeToWidth(width());
 | 
				
			||||||
 | 
							_selfieRow->show(anim::type::normal);
 | 
				
			||||||
 | 
							_selfieHeader->show(anim::type::normal);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						*_selfie = std::move(info);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EditScans::updateFileRow(
 | 
				
			||||||
 | 
							not_null<ScanButton*> button,
 | 
				
			||||||
 | 
							const ScanInfo &info) {
 | 
				
			||||||
 | 
						button->setStatus(info.status);
 | 
				
			||||||
 | 
						button->setImage(info.thumb);
 | 
				
			||||||
 | 
						button->setDeleted(info.deleted);
 | 
				
			||||||
 | 
						button->setError(!info.error.isEmpty());
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void EditScans::createSelfieRow(const ScanInfo &info) {
 | 
					void EditScans::createSelfieRow(const ScanInfo &info) {
 | 
				
			||||||
	_selfieRow = createScan(
 | 
						_selfieRow = createScan(
 | 
				
			||||||
		_selfieWrap,
 | 
							_selfieWrap,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,6 +51,10 @@ private:
 | 
				
			||||||
	void chooseScan();
 | 
						void chooseScan();
 | 
				
			||||||
	void chooseSelfie();
 | 
						void chooseSelfie();
 | 
				
			||||||
	void updateScan(ScanInfo &&info);
 | 
						void updateScan(ScanInfo &&info);
 | 
				
			||||||
 | 
						void updateSelfie(ScanInfo &&info);
 | 
				
			||||||
 | 
						void updateFileRow(
 | 
				
			||||||
 | 
							not_null<ScanButton*> button,
 | 
				
			||||||
 | 
							const ScanInfo &info);
 | 
				
			||||||
	void pushScan(const ScanInfo &info);
 | 
						void pushScan(const ScanInfo &info);
 | 
				
			||||||
	void createSelfieRow(const ScanInfo &info);
 | 
						void createSelfieRow(const ScanInfo &info);
 | 
				
			||||||
	base::unique_qptr<Ui::SlideWrap<ScanButton>> createScan(
 | 
						base::unique_qptr<Ui::SlideWrap<ScanButton>> createScan(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue