]> sigrok.org Git - pulseview.git/blobdiff - pv/widgets/popuptoolbutton.cpp
Use a generic approach when adding the "close on enter" hook for popups
[pulseview.git] / pv / widgets / popuptoolbutton.cpp
index ea3515c4981130696dc135b61748b510bbd90182..74743ed4e27b1fdac8a77d807fb8e579329afc12 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#include <assert.h>
+
 #include "popuptoolbutton.h"
 
 namespace pv {
 namespace widgets {
 
 PopupToolButton::PopupToolButton(QWidget *parent) :
-       QToolButton(parent)
+       QToolButton(parent),
+       _popup(NULL)
 {
        connect(this, SIGNAL(clicked(bool)), this, SLOT(on_clicked(bool)));
 }
@@ -45,7 +48,9 @@ void PopupToolButton::on_clicked(bool)
        if(!_popup)
                return;
 
-       _popup->set_position(mapToGlobal(rect().center()), Popup::Bottom);
+       const QRect r = rect();
+       _popup->set_position(mapToGlobal(QPoint((r.left() + r.right()) / 2,
+               ((r.top() + r.bottom() * 3) / 4))), Popup::Bottom);
        _popup->show();
 }