mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 15:43:55 +02:00
Fixed size ratios of stickers in touchbar.
This commit is contained in:
parent
044c281cf7
commit
27c799ce3d
1 changed files with 5 additions and 11 deletions
|
@ -679,7 +679,6 @@ void AppendEmojiPacks(
|
||||||
@end // @interface PickerScrubberItemView
|
@end // @interface PickerScrubberItemView
|
||||||
@implementation PickerScrubberItemView {
|
@implementation PickerScrubberItemView {
|
||||||
rpl::lifetime _lifetime;
|
rpl::lifetime _lifetime;
|
||||||
QSize _dimensions;
|
|
||||||
std::shared_ptr<Data::DocumentMedia> _media;
|
std::shared_ptr<Data::DocumentMedia> _media;
|
||||||
Image *_image;
|
Image *_image;
|
||||||
@public
|
@public
|
||||||
|
@ -700,8 +699,7 @@ void AppendEmojiPacks(
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)addDocument:(not_null<DocumentData*>)document
|
- (void)addDocument:(not_null<DocumentData*>)document {
|
||||||
loadProducer:(rpl::producer<>)loadProducer {
|
|
||||||
if (!document->sticker()) {
|
if (!document->sticker()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -710,12 +708,11 @@ void AppendEmojiPacks(
|
||||||
_media->checkStickerSmall();
|
_media->checkStickerSmall();
|
||||||
_image = _media->getStickerSmall();
|
_image = _media->getStickerSmall();
|
||||||
if (_image) {
|
if (_image) {
|
||||||
_dimensions = document->dimensions;
|
|
||||||
[self updateImage];
|
[self updateImage];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
std::move(
|
base::ObservableViewer(
|
||||||
loadProducer
|
document->session().downloaderTaskFinished()
|
||||||
) | rpl::start_with_next([=] {
|
) | rpl::start_with_next([=] {
|
||||||
_image = _media->getStickerSmall();
|
_image = _media->getStickerSmall();
|
||||||
if (_image) {
|
if (_image) {
|
||||||
|
@ -725,7 +722,7 @@ void AppendEmojiPacks(
|
||||||
}, _lifetime);
|
}, _lifetime);
|
||||||
}
|
}
|
||||||
- (void)updateImage {
|
- (void)updateImage {
|
||||||
const auto size = _dimensions
|
const auto size = _image->size()
|
||||||
.scaled(kCircleDiameter, kCircleDiameter, Qt::KeepAspectRatio);
|
.scaled(kCircleDiameter, kCircleDiameter, Qt::KeepAspectRatio);
|
||||||
_imageView.image = [qt_mac_create_nsimage(
|
_imageView.image = [qt_mac_create_nsimage(
|
||||||
_image->pixSingle(
|
_image->pixSingle(
|
||||||
|
@ -853,10 +850,7 @@ void AppendEmojiPacks(
|
||||||
const auto item = _stickers[index];
|
const auto item = _stickers[index];
|
||||||
if (const auto document = item.document) {
|
if (const auto document = item.document) {
|
||||||
PickerScrubberItemView *itemView = [scrubber makeItemWithIdentifier:kStickerItemIdentifier owner:nil];
|
PickerScrubberItemView *itemView = [scrubber makeItemWithIdentifier:kStickerItemIdentifier owner:nil];
|
||||||
auto loadProducer = base::ObservableViewer(
|
[itemView addDocument:(std::move(document))];
|
||||||
_session->downloaderTaskFinished());
|
|
||||||
[itemView addDocument:(std::move(document))
|
|
||||||
loadProducer:(std::move(loadProducer))];
|
|
||||||
return itemView;
|
return itemView;
|
||||||
} else if (const auto emoji = item.emoji) {
|
} else if (const auto emoji = item.emoji) {
|
||||||
NSScrubberImageItemView *itemView = [scrubber makeItemWithIdentifier:kEmojiItemIdentifier owner:nil];
|
NSScrubberImageItemView *itemView = [scrubber makeItemWithIdentifier:kEmojiItemIdentifier owner:nil];
|
||||||
|
|
Loading…
Add table
Reference in a new issue