MenuButton.cpp 590 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "MenuButton.hpp"
  2. #include <QKeyEvent>
  3. #include <QMouseEvent>
  4. #include "moc_MenuButton.cpp"
  5. void MenuButton::keyPressEvent(QKeyEvent *event)
  6. {
  7. if (menu()) {
  8. switch (event->key()) {
  9. case Qt::Key_Enter:
  10. case Qt::Key_Return:
  11. emit clicked();
  12. return;
  13. case Qt::Key_Down:
  14. case Qt::Key_Space:
  15. showMenu();
  16. return;
  17. }
  18. }
  19. QPushButton::keyPressEvent(event);
  20. }
  21. void MenuButton::mousePressEvent(QMouseEvent *event)
  22. {
  23. if (menu()) {
  24. if (width() - event->pos().x() <= 30)
  25. showMenu();
  26. else
  27. setDown(true);
  28. } else {
  29. QPushButton::mousePressEvent(event);
  30. }
  31. }