ComSquare
ClosableWindow.hpp
Go to the documentation of this file.
1 //
2 // Created by anonymus-raccoon on 3/20/20.
3 //
4 
5 #pragma once
6 
7 #include <QtWidgets/QMainWindow>
8 #include <utility>
9 
10 namespace ComSquare::Debugger
11 {
12  class ClosableWindow : public QMainWindow
13  {
14  protected:
15  void closeEvent(QCloseEvent *) override
16  {
17  this->_onClose();
18  }
19 
20  private:
21  std::function<void ()> _onClose;
22 
23  public:
24  explicit ClosableWindow(std::function<void ()> onClose)
25  : _onClose(std::move(onClose))
26  {
27  this->setContextMenuPolicy(Qt::NoContextMenu);
28  this->setAttribute(Qt::WA_QuitOnClose, false);
29  this->setAttribute(Qt::WA_DeleteOnClose);
30  }
31  ClosableWindow(const ClosableWindow &) = delete;
32  ClosableWindow &operator=(const ClosableWindow &) = delete;
33  ~ClosableWindow() override = default;
34  };
35 }// namespace ComSquare::Debugger
ComSquare::Debugger::ClosableWindow
Definition: ClosableWindow.hpp:12
ComSquare::Debugger
Definition: APUDebug.cpp:11
ComSquare::Debugger::ClosableWindow::closeEvent
void closeEvent(QCloseEvent *) override
Definition: ClosableWindow.hpp:15
ComSquare::Debugger::ClosableWindow::ClosableWindow
ClosableWindow(std::function< void()> onClose)
Definition: ClosableWindow.hpp:24
ComSquare::Debugger::ClosableWindow::_onClose
std::function< void()> _onClose
Definition: ClosableWindow.hpp:21
ComSquare::Debugger::ClosableWindow::~ClosableWindow
~ClosableWindow() override=default
ComSquare::Debugger::ClosableWindow::operator=
ClosableWindow & operator=(const ClosableWindow &)=delete