Merge pull request #114 from adasauce/image-overlay-fix

Fix image overlay appearing on the wrong screen.

thanks adasauce!
pull/117/head
DeepBlueV7.X 5 years ago committed by GitHub
commit 3c54d60eae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      src/dialogs/ImageOverlay.cpp
  2. 1
      src/dialogs/ImageOverlay.h
  3. 2
      src/timeline/TimelineViewManager.cpp

@ -41,11 +41,6 @@ ImageOverlay::ImageOverlay(QPixmap image, QWidget *parent)
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setWindowState(Qt::WindowFullScreen); setWindowState(Qt::WindowFullScreen);
screen_ = QGuiApplication::primaryScreen()->availableGeometry();
move(QApplication::desktop()->mapToGlobal(screen_.topLeft()));
resize(screen_.size());
connect(this, SIGNAL(closing()), this, SLOT(close())); connect(this, SIGNAL(closing()), this, SLOT(close()));
raise(); raise();
@ -60,15 +55,15 @@ ImageOverlay::paintEvent(QPaintEvent *event)
painter.setRenderHint(QPainter::Antialiasing); painter.setRenderHint(QPainter::Antialiasing);
// Full screen overlay. // Full screen overlay.
painter.fillRect(QRect(0, 0, screen_.width(), screen_.height()), QColor(55, 55, 55, 170)); painter.fillRect(QRect(0, 0, width(), height()), QColor(55, 55, 55, 170));
// Left and Right margins // Left and Right margins
int outer_margin = screen_.width() * 0.12; int outer_margin = width() * 0.12;
int buttonSize = 36; int buttonSize = 36;
int margin = outer_margin * 0.1; int margin = outer_margin * 0.1;
int max_width = screen_.width() - 2 * outer_margin; int max_width = width() - 2 * outer_margin;
int max_height = screen_.height(); int max_height = height();
image_ = utils::scaleDown(max_width, max_height, originalImage_); image_ = utils::scaleDown(max_width, max_height, originalImage_);
@ -76,10 +71,9 @@ ImageOverlay::paintEvent(QPaintEvent *event)
int diff_y = max_height - image_.height(); int diff_y = max_height - image_.height();
content_ = QRect(outer_margin + diff_x / 2, diff_y / 2, image_.width(), image_.height()); content_ = QRect(outer_margin + diff_x / 2, diff_y / 2, image_.width(), image_.height());
close_button_ = close_button_ = QRect(width() - margin - buttonSize, margin, buttonSize, buttonSize);
QRect(screen_.width() - margin - buttonSize, margin, buttonSize, buttonSize);
save_button_ = save_button_ =
QRect(screen_.width() - (2 * margin) - (2 * buttonSize), margin, buttonSize, buttonSize); QRect(width() - (2 * margin) - (2 * buttonSize), margin, buttonSize, buttonSize);
// Draw main content_. // Draw main content_.
painter.drawPixmap(content_, image_); painter.drawPixmap(content_, image_);

@ -44,6 +44,5 @@ private:
QRect content_; QRect content_;
QRect close_button_; QRect close_button_;
QRect save_button_; QRect save_button_;
QRect screen_;
}; };
} // dialogs } // dialogs

@ -158,7 +158,7 @@ TimelineViewManager::openImageOverlay(QString mxcUrl, QString eventId) const
auto pixmap = QPixmap::fromImage(imgResponse->textureFactory()->image()); auto pixmap = QPixmap::fromImage(imgResponse->textureFactory()->image());
auto imgDialog = new dialogs::ImageOverlay(pixmap); auto imgDialog = new dialogs::ImageOverlay(pixmap);
imgDialog->show(); imgDialog->showFullScreen();
connect(imgDialog, &dialogs::ImageOverlay::saving, timeline_, [this, eventId]() { connect(imgDialog, &dialogs::ImageOverlay::saving, timeline_, [this, eventId]() {
timeline_->saveMedia(eventId); timeline_->saveMedia(eventId);
}); });

Loading…
Cancel
Save