Przeglądaj źródła

Merge branch '411-ctkPopupWidget-put-in-wrong-position-on-resize-or-move' of https://github.com/NifTK/CTK into NifTK-411-ctkPopupWidget-put-in-wrong-position-on-resize-or-move

Conflicts:
	Libs/Widgets/ctkPopupWidget.cpp
Julien Finet 11 lat temu
rodzic
commit
ecd13b07f8
1 zmienionych plików z 11 dodań i 29 usunięć
  1. 11 29
      Libs/Widgets/ctkPopupWidget.cpp

+ 11 - 29
Libs/Widgets/ctkPopupWidget.cpp

@@ -20,7 +20,6 @@
 
 // Qt includes
 #include <QApplication>
-#include <QDebug>
 #include <QDesktopWidget>
 #include <QDialog>
 #include <QDir>
@@ -100,17 +99,7 @@ bool ctkPopupWidgetPrivate::eventFilter(QObject* obj, QEvent* event)
     {
     if (widget->isAncestorOf(this->BaseWidget))
       {
-      QMoveEvent* moveEvent = dynamic_cast<QMoveEvent*>(event);
-      QPoint topLeft = widget->parentWidget() ? widget->parentWidget()->mapToGlobal(moveEvent->pos()) : moveEvent->pos();
-#if defined Q_OS_MAC
-      topLeft += QPoint(widget->geometry().x() - widget->x(), widget->geometry().y() - widget->y());
-#endif
-      topLeft += this->BaseWidget->mapTo(widget, QPoint(0,0));
-      //q->move(q->pos() + moveEvent->pos() - moveEvent->oldPos());
-      QRect newBaseGeometry = this->baseGeometry();
-      newBaseGeometry.moveTopLeft(topLeft);
-      QRect desiredGeometry = this->desiredOpenGeometry(newBaseGeometry);
-      q->move(desiredGeometry.topLeft());
+      q->setGeometry(this->desiredOpenGeometry());
       }
     else if (this->isHidingCandidate(widget))
       {
@@ -119,7 +108,11 @@ bool ctkPopupWidgetPrivate::eventFilter(QObject* obj, QEvent* event)
     }
   else if (event->type() == QEvent::Resize)
     {
-    if (this->isHidingCandidate(widget))
+    if (widget->isAncestorOf(this->BaseWidget))
+      {
+      q->setGeometry(this->desiredOpenGeometry());
+      }
+    else if (this->isHidingCandidate(widget))
       {
       QTimer::singleShot(0, this, SLOT(updateVisibility()));
       }
@@ -467,22 +460,11 @@ bool ctkPopupWidget::eventFilter(QObject* obj, QEvent* event)
     case QEvent::Show:
       if (obj != d->BaseWidget)
         {
-	      break;
-	      }
-	    this->setGeometry(d->desiredOpenGeometry());
-	    d->temporarilyHiddenOff();
-	    break;
-	  case QEvent::Resize:
-	    if (obj != d->BaseWidget ||
-	        !(d->Alignment & Qt::AlignJustify ||
-	         (d->Alignment & Qt::AlignTop && d->Alignment & Qt::AlignBottom)) ||
-	         !(d->isOpening() || this->isVisible()))
-	      {
-	      break;
-	      }
-	    // TODO: bug when the effect is WindowOpacityFadeEffect
-	    this->setGeometry(d->desiredOpenGeometry());
-	    break;
+        break;
+        }
+      this->setGeometry(d->desiredOpenGeometry());
+      d->temporarilyHiddenOff();
+      break;
     case QEvent::Enter:
       if ( d->currentAnimation()->state() == QAbstractAnimation::Stopped )
         {