Pārlūkot izejas kodu

Activate tooltips in ctkPopupWidgets even if not active

Julien Finet 14 gadi atpakaļ
vecāks
revīzija
9ee029c3d2

+ 2 - 1
Libs/Widgets/Testing/Cpp/ctkPopupWidgetTest1.cpp

@@ -126,8 +126,9 @@ QWidget* createPanel(const QString& title, QList<ctkPopupWidget*>& popups)
   togglePopup->setObjectName("togglePopup");
   togglePopup->setAutoShow(false);
   togglePopup->setAutoHide(false);
-  QPushButton* togglePopupContent = new QPushButton("useless button");
+  QPushButton* togglePopupContent = new QPushButton("tooltip button");
   togglePopupContent->setObjectName("togglePopupContent");
+  togglePopupContent->setToolTip("tooltip");
   QVBoxLayout* toggleLayout = new QVBoxLayout;
   toggleLayout->addWidget(togglePopupContent);
   togglePopup->setLayout(toggleLayout);

+ 4 - 0
Libs/Widgets/ctkPopupWidget.cpp

@@ -109,6 +109,10 @@ ctkPopupWidgetPrivate::~ctkPopupWidgetPrivate()
 void ctkPopupWidgetPrivate::init()
 {
   Q_Q(ctkPopupWidget);
+  // By default, Tooltips are shown only on active windows. In a popup widget
+  // case, we sometimes aren't the active window but we still would like to
+  // show the children tooltips.
+  q->setAttribute(Qt::WA_AlwaysShowToolTips, true);
 
   this->AlphaAnimation = new QPropertyAnimation(q, "effectAlpha", q);
   this->AlphaAnimation->setDuration(DEFAULT_FADING_DURATION);