Page MenuHomePhabricator

Fixed-flickering-problem.patch

Authored By
khlebnikov
Dec 23 2014, 6:15 PM
Size
4 KB
Referenced Files
None
Subscribers
None

Fixed-flickering-problem.patch

From 5863f86ff7ebc2a72288336019d6798e98321370 Mon Sep 17 00:00:00 2001
From: Rostislav Khlebnikov <r.khlebnikov@gmail.com>
Date: Tue, 23 Dec 2014 17:01:33 +0000
Subject: [PATCH] Fixed flickering problem.
---
Modules/QtWidgets/QmitkRenderWindowMenu.cpp | 22 ++++++++++++----------
Modules/QtWidgets/QmitkRenderWindowMenu.h | 2 ++
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/Modules/QtWidgets/QmitkRenderWindowMenu.cpp b/Modules/QtWidgets/QmitkRenderWindowMenu.cpp
index 76b4986..36b673a 100644
--- a/Modules/QtWidgets/QmitkRenderWindowMenu.cpp
+++ b/Modules/QtWidgets/QmitkRenderWindowMenu.cpp
@@ -47,7 +47,7 @@ See LICENSE.txt or http://www.mitk.org for details.
#ifdef QMITK_USE_EXTERNAL_RENDERWINDOW_MENU
QmitkRenderWindowMenu::QmitkRenderWindowMenu(QWidget *parent, Qt::WindowFlags f, mitk::BaseRenderer *b, QmitkStdMultiWidget* mw )
-:QWidget(parent, Qt::Tool | Qt::FramelessWindowHint ),
+:QWidget(NULL, Qt::Tool | Qt::FramelessWindowHint ),
#else
QmitkRenderWindowMenu::QmitkRenderWindowMenu(QWidget *parent, Qt::WindowFlags f, mitk::BaseRenderer *b, QmitkStdMultiWidget* mw )
@@ -63,7 +63,8 @@ m_FullScreenMode(false),
m_Entered(false),
m_Hidden(true),
m_Renderer(b),
-m_MultiWidget(mw)
+m_MultiWidget(mw),
+m_Parent(parent)
{
MITK_DEBUG << "creating renderwindow menu on baserenderer " << b;
@@ -78,7 +79,7 @@ m_MultiWidget(mw)
//for Mac OS see bug 3192
//for Windows see bug 12130
//... so Mac OS and Windows must be treated differently:
-#if defined(Q_OS_MAC) || defined(_WIN32)
+#if defined(Q_OS_MAC)
this->show();
this->setWindowOpacity(0.0f);
#else
@@ -103,6 +104,7 @@ m_MultiWidget(mw)
// for autorotating
m_AutoRotationTimer.setInterval( 75 );
connect( &m_AutoRotationTimer, SIGNAL(timeout()), this, SLOT(AutoRotateNextStep()) );
+ connect( m_Parent, SIGNAL(destroyed()), this, SLOT(deleteLater()));
}
QmitkRenderWindowMenu::~QmitkRenderWindowMenu()
@@ -249,7 +251,7 @@ void QmitkRenderWindowMenu::HideMenu( )
//for Mac OS see bug 3192
//for Windows see bug 12130
//... so Mac OS and Windows must be treated differently:
-#if defined(Q_OS_MAC) || defined(_WIN32)
+#if defined(Q_OS_MAC)
this->setWindowOpacity(0.0f);
#else
this->setVisible(false);
@@ -266,7 +268,7 @@ void QmitkRenderWindowMenu::ShowMenu( )
//for Mac OS see bug 3192
//for Windows see bug 12130
//... so Mac OS and Windows must be treated differently:
-#if defined(Q_OS_MAC) || defined(_WIN32)
+#if defined(Q_OS_MAC)
this->setWindowOpacity(1.0f);
#else
this->setVisible(true);
@@ -292,7 +294,7 @@ void QmitkRenderWindowMenu::DeferredHideMenu( )
//for Mac OS see bug 3192
//for Windows see bug 12130
//... so Mac OS and Windows must be treated differently:
-#if defined(Q_OS_MAC) || defined(_WIN32)
+#if defined(Q_OS_MAC)
this->setWindowOpacity(0.0f);
#else
this->setVisible(false);
@@ -446,7 +448,7 @@ void QmitkRenderWindowMenu::DeferredShowMenu()
//for Mac OS see bug 3192
//for Windows see bug 12130
//... so Mac OS and Windows must be treated differently:
-#if defined(Q_OS_MAC) || defined(_WIN32)
+#if defined(Q_OS_MAC)
this->setWindowOpacity(1.0f);
#else
this->setVisible(true);
@@ -770,10 +772,10 @@ void QmitkRenderWindowMenu::MoveWidgetToCorrectPos(float /*opacity*/)
#endif
{
#ifdef QMITK_USE_EXTERNAL_RENDERWINDOW_MENU
- int X=floor( double(this->parentWidget()->width() - this->width() - 8.0) );
+ int X=floor( double(this->m_Parent->width() - this->width() - 8.0) );
int Y=7;
- QPoint pos = this->parentWidget()->mapToGlobal( QPoint(0,0) );
+ QPoint pos = this->m_Parent->mapToGlobal( QPoint(0,0) );
this->move( X+pos.x(), Y+pos.y() );
@@ -782,7 +784,7 @@ void QmitkRenderWindowMenu::MoveWidgetToCorrectPos(float /*opacity*/)
this->setWindowOpacity(opacity);
#else
- int moveX= floor( double(this->parentWidget()->width() - this->width() - 4.0) );
+ int moveX= floor( double(this->m_Parent->width() - this->width() - 4.0) );
this->move( moveX, 3 );
this->show();
#endif
diff --git a/Modules/QtWidgets/QmitkRenderWindowMenu.h b/Modules/QtWidgets/QmitkRenderWindowMenu.h
index dff23ed..5a596b7 100644
--- a/Modules/QtWidgets/QmitkRenderWindowMenu.h
+++ b/Modules/QtWidgets/QmitkRenderWindowMenu.h
@@ -326,6 +326,8 @@ protected:
/// a timer for the auto rotate action
///
QTimer m_AutoRotationTimer;
+
+ QWidget* m_Parent;
};
#endif // QmitkRenderWindowMenu_H
--
1.8.4.msysgit.0

File Metadata

Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
816
Default Alt Text
Fixed-flickering-problem.patch (4 KB)