// // Created by anonymus-raccoon on 3/20/20. // #pragma once #include #include namespace ComSquare::Debugger { class ClosableWindow : public QMainWindow { protected: void closeEvent(QCloseEvent *) override { this->_onClose(); } private: std::function _onClose; public: explicit ClosableWindow(std::function onClose) : _onClose(std::move(onClose)) { this->setContextMenuPolicy(Qt::NoContextMenu); this->setAttribute(Qt::WA_QuitOnClose, false); this->setAttribute(Qt::WA_DeleteOnClose); } ClosableWindow(const ClosableWindow &) = delete; ClosableWindow &operator=(const ClosableWindow &) = delete; ~ClosableWindow() override = default; }; }// namespace ComSquare::Debugger