From kde-commits Sun Sep 05 10:46:16 2010 From: Jakub Stachowski Date: Sun, 05 Sep 2010 10:46:16 +0000 To: kde-commits Subject: branches/KDE/4.5/kdenetwork/krdc Message-Id: <20100905104616.7826BAC884 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=128368333923991 SVN commit 1171824 by qbast: Backport of bugfix for 205992 Use grabWindow to obtain screenshot of embedded rdesktop window CCBUG: 205992 M +5 -0 core/remoteview.cpp M +5 -0 core/remoteview.h M +1 -1 mainwindow.cpp M +5 -0 rdp/rdpview.cpp M +2 -0 rdp/rdpview.h --- branches/KDE/4.5/kdenetwork/krdc/core/remoteview.cpp #1171823:1171824 @@ -157,6 +157,11 @@ } } +QPixmap RemoteView::takeScreenshot() +{ + return QPixmap::grabWidget(this); +} + void RemoteView::showDotCursor(DotCursorState state) { m_dotCursorState = state; --- branches/KDE/4.5/kdenetwork/krdc/core/remoteview.h #1171823:1171824 @@ -244,6 +244,11 @@ */ virtual void updateConfiguration(); + /** + * @return screenshot of the view + */ + virtual QPixmap takeScreenshot(); + #ifndef QTONLY /** * Returns the current host preferences of this view. --- branches/KDE/4.5/kdenetwork/krdc/mainwindow.cpp #1171823:1171824 @@ -461,7 +461,7 @@ void MainWindow::takeScreenshot() { - const QPixmap snapshot = QPixmap::grabWidget(m_remoteViewList.at(m_currentRemoteView)); + const QPixmap snapshot = m_remoteViewList.at(m_currentRemoteView)->takeScreenshot(); QApplication::clipboard()->setPixmap(snapshot); } --- branches/KDE/4.5/kdenetwork/krdc/rdp/rdpview.cpp #1171823:1171824 @@ -232,6 +232,11 @@ setFocus(); } +QPixmap RdpView::takeScreenshot() +{ + return QPixmap::grabWindow(m_container->clientWinId()); +} + void RdpView::connectionClosed() { emit disconnected(); --- branches/KDE/4.5/kdenetwork/krdc/rdp/rdpview.h #1171823:1171824 @@ -64,6 +64,8 @@ HostPreferences* hostPreferences(); + virtual QPixmap takeScreenshot(); + public slots: virtual void switchFullscreen(bool on);