2020-12-05 13:08:24 +01:00
|
|
|
#include "custom_dialog.h"
|
2019-01-04 22:28:52 +01:00
|
|
|
|
|
|
|
|
custom_dialog::custom_dialog(bool disableCancel, QWidget* parent)
|
|
|
|
|
: QDialog(parent), m_disable_cancel(disableCancel)
|
|
|
|
|
{
|
|
|
|
|
if (m_disable_cancel)
|
|
|
|
|
{
|
|
|
|
|
setWindowFlags(windowFlags() & ~Qt::WindowCloseButtonHint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void custom_dialog::keyPressEvent(QKeyEvent* event)
|
|
|
|
|
{
|
|
|
|
|
// this won't work with Alt+F4, the window still closes
|
|
|
|
|
if (m_disable_cancel && event->key() == Qt::Key_Escape)
|
|
|
|
|
{
|
|
|
|
|
event->ignore();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
QDialog::keyPressEvent(event);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void custom_dialog::closeEvent(QCloseEvent* event)
|
|
|
|
|
{
|
|
|
|
|
// spontaneous: don't close on external system level events like Alt+F4
|
|
|
|
|
if (m_disable_cancel && event->spontaneous())
|
|
|
|
|
{
|
|
|
|
|
event->ignore();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
QDialog::closeEvent(event);
|
|
|
|
|
}
|
|
|
|
|
}
|