Added shortcuts to flip photos in media viewer.

This commit is contained in:
23rd 2024-11-16 08:26:20 +03:00
parent 0248be5543
commit 33aa904cb7
2 changed files with 27 additions and 0 deletions

View File

@ -1200,6 +1200,9 @@ void OverlayWidget::setStaticContent(QImage image) {
image = std::move(image).convertToFormat(kGood);
}
image.setDevicePixelRatio(style::DevicePixelRatio());
if (_flip) {
image = image.mirrored(_flip & Qt::Horizontal, _flip & Qt::Vertical);
}
_staticContent = std::move(image);
_staticContentTransparent = IsSemitransparent(_staticContent);
}
@ -2286,6 +2289,7 @@ OverlayWidget::~OverlayWidget() {
void OverlayWidget::assignMediaPointer(DocumentData *document) {
_savePhotoVideoWhenLoaded = SavePhotoVideo::None;
_flip = {};
_photo = nullptr;
_photoMedia = nullptr;
if (_document != document) {
@ -2314,6 +2318,7 @@ void OverlayWidget::assignMediaPointer(not_null<PhotoData*> photo) {
_documentMedia = nullptr;
_documentLoadingTo = QString();
if (_photo != photo) {
_flip = {};
_photo = photo;
_photoMedia = _photo->createMediaView();
_photoMedia->wanted(Data::PhotoSize::Small, fileOrigin());
@ -5461,6 +5466,26 @@ void OverlayWidget::handleKeyPress(not_null<QKeyEvent*> e) {
activateControls();
}
moveToNext(-1);
} else if (key == Qt::Key_H) {
if (_flip & Qt::Horizontal) {
_flip &= ~Qt::Horizontal;
} else {
_flip |= Qt::Horizontal;
}
if (_photo) {
validatePhotoCurrentImage();
redisplayContent();
}
} else if (key == Qt::Key_V) {
if (_flip & Qt::Vertical) {
_flip &= ~Qt::Vertical;
} else {
_flip |= Qt::Vertical;
}
if (_photo) {
validatePhotoCurrentImage();
redisplayContent();
}
} else if (key == Qt::Key_Right) {
if (_controlsHideTimer.isActive()) {
activateControls();

View File

@ -638,6 +638,8 @@ private:
bool _streamedQualityChangeFinished = false;
bool _showAsPip = false;
Qt::Orientations _flip;
std::unique_ptr<Stories::View> _stories;
std::shared_ptr<Show> _cachedShow;
rpl::event_stream<> _storiesChanged;