framelessmainwindow.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "framelessmainwindow.h"
  2. #include <QEvent>
  3. using namespace vnotex;
  4. FramelessMainWindow::FramelessMainWindow(bool p_frameless, QWidget *p_parent)
  5. : QMainWindow(p_parent),
  6. m_frameless(p_frameless),
  7. m_defaultFlags(windowFlags())
  8. {
  9. if (m_frameless) {
  10. setWindowFlags(m_defaultFlags | Qt::FramelessWindowHint);
  11. }
  12. }
  13. bool FramelessMainWindow::isFrameless() const
  14. {
  15. return m_frameless;
  16. }
  17. void FramelessMainWindow::setTitleBar(QWidget *p_titleBar)
  18. {
  19. Q_ASSERT(!m_titleBar && m_frameless);
  20. m_titleBar = p_titleBar;
  21. }
  22. void FramelessMainWindow::changeEvent(QEvent *p_event)
  23. {
  24. QMainWindow::changeEvent(p_event);
  25. if (p_event->type() == QEvent::WindowStateChange) {
  26. m_windowStates = windowState();
  27. m_resizable = m_windowStates == Qt::WindowNoState;
  28. m_movable = m_windowStates == Qt::WindowNoState;
  29. emit windowStateChanged(m_windowStates);
  30. }
  31. }
  32. bool FramelessMainWindow::isMaximized() const
  33. {
  34. return (m_windowStates & Qt::WindowMaximized) && !(m_windowStates & Qt::WindowFullScreen);
  35. }
  36. void FramelessMainWindow::setWindowFlagsOnUpdate()
  37. {
  38. // Do nothing by default.
  39. }