buttonpopup.cpp 623 B

1234567891011121314151617181920212223242526
  1. #include "buttonpopup.h"
  2. #include <QWidgetAction>
  3. #include <utils/widgetutils.h>
  4. using namespace vnotex;
  5. ButtonPopup::ButtonPopup(QToolButton *p_btn, QWidget *p_parent)
  6. : QMenu(p_parent),
  7. m_button(p_btn)
  8. {
  9. #if defined(Q_OS_MACOS) || defined(Q_OS_MAC)
  10. // Qt::Popup on macOS does not work well with input method.
  11. setWindowFlags(Qt::Tool | Qt::NoDropShadowWindowHint);
  12. setWindowModality(Qt::ApplicationModal);
  13. #endif
  14. }
  15. void ButtonPopup::addWidget(QWidget *p_widget)
  16. {
  17. auto act = new QWidgetAction(this);
  18. // @act will own @p_widget.
  19. act->setDefaultWidget(p_widget);
  20. addAction(act);
  21. }