summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp')
-rw-r--r--Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp b/Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp
index f601f1b..7bb3f26 100644
--- a/Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp
+++ b/Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp
@@ -18,7 +18,7 @@
namespace Swift {
RemoteScreenViewerWidget::RemoteScreenViewerWidget(boost::shared_ptr<IncomingScreenSharing> incScreenSharing, QWidget *parent) :
- QWidget(parent), iss(incScreenSharing)
+ QFrame(parent), iss(incScreenSharing)
{
iss->onNewImageReceived.connect(boost::bind(&RemoteScreenViewerWidget::handleNewImageReceived, this, _1));
}
@@ -28,10 +28,11 @@ RemoteScreenViewerWidget::~RemoteScreenViewerWidget()
iss->onNewImageReceived.disconnect(boost::bind(&RemoteScreenViewerWidget::handleNewImageReceived, this, _1));
}
-void RemoteScreenViewerWidget::paintEvent(QPaintEvent *)
+void RemoteScreenViewerWidget::paintEvent(QPaintEvent* event)
{
- QPainter painter(this);
+ QFrame::paintEvent(event);
if (!pixmap.isNull()) {
+ QPainter painter(this);
painter.translate(geometry().center());
painter.drawPixmap(-pixmap.rect().center(), pixmap);
}
@@ -39,15 +40,20 @@ void RemoteScreenViewerWidget::paintEvent(QPaintEvent *)
void RemoteScreenViewerWidget::resizeEvent(QResizeEvent *event)
{
- if (!pixmap.isNull())
- pixmap = pixmap.scaled(event->size(), Qt::KeepAspectRatio);
- QWidget::resizeEvent(event);
+ if (!pixmap.isNull()) {
+ int frameWidth2 = frameWidth() * 2;
+ QSize borders(frameWidth2, frameWidth2);
+ pixmap = pixmap.scaled(event->size() - borders, Qt::KeepAspectRatio);
+ }
+ QFrame::resizeEvent(event);
}
void RemoteScreenViewerWidget::handleNewImageReceived(const Image& image)
{
QImage qImg(image.data.data(), image.width, image.height, QImage::Format_RGB888);
- pixmap = QPixmap::fromImage(qImg).scaled(size(), Qt::KeepAspectRatio);
+ int frameWidth2 = frameWidth() * 2;
+ QSize borders(frameWidth2, frameWidth2);
+ pixmap = QPixmap::fromImage(qImg).scaled(size() - borders, Qt::KeepAspectRatio);
update();
}