summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordknn <yoann.blein@free.fr>2012-08-06 14:40:13 (GMT)
committerdknn <yoann.blein@free.fr>2012-09-22 09:32:38 (GMT)
commitd62f8088b8cc42417f97a3b5c3f99bf9288593d4 (patch)
tree46861355d40bfe5e18088496abc9654e0dbaa00c /Swift/QtUI/ScreenSharing/RemoteScreenViewerWidget.cpp
parent343f88e3048887e83cc91bb710510b3aa618f779 (diff)
downloadswift-contrib-d62f8088b8cc42417f97a3b5c3f99bf9288593d4.zip
swift-contrib-d62f8088b8cc42417f97a3b5c3f99bf9288593d4.tar.bz2
Add support for multiple sharing and control in chat view
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();
}