diff --git a/x64_dbg_gui/Project/DebuggerX64.pro b/x64_dbg_gui/Project/DebuggerX64.pro index 9dceb043..5eabcc2b 100644 --- a/x64_dbg_gui/Project/DebuggerX64.pro +++ b/x64_dbg_gui/Project/DebuggerX64.pro @@ -69,7 +69,8 @@ SOURCES += \ Src/Utils/Configuration.cpp \ Src/Gui/CPUSideBar.cpp \ Src/Gui/AppearanceDialog.cpp \ - Src/Disassembler/BeaTokenizer.cpp + Src/Disassembler/BeaTokenizer.cpp \ + Src/Gui/CloseDialog.cpp HEADERS += \ @@ -117,7 +118,8 @@ HEADERS += \ Src/Utils/Configuration.h \ Src/Gui/CPUSideBar.h \ Src/Gui/AppearanceDialog.h \ - Src/Disassembler/BeaTokenizer.h + Src/Disassembler/BeaTokenizer.h \ + Src/Gui/CloseDialog.h INCLUDEPATH += \ @@ -144,7 +146,8 @@ FORMS += \ Src/Gui/SettingsDialog.ui \ Src/Gui/ExceptionRangeDialog.ui \ Src/Gui/CommandHelpView.ui \ - Src/Gui/AppearanceDialog.ui + Src/Gui/AppearanceDialog.ui \ + Src/Gui/CloseDialog.ui INCLUDEPATH += $$PWD/Src/Bridge diff --git a/x64_dbg_gui/Project/Src/Gui/CloseDialog.cpp b/x64_dbg_gui/Project/Src/Gui/CloseDialog.cpp new file mode 100644 index 00000000..cf4d5e70 --- /dev/null +++ b/x64_dbg_gui/Project/Src/Gui/CloseDialog.cpp @@ -0,0 +1,18 @@ +#include "CloseDialog.h" +#include "ui_CloseDialog.h" + +CloseDialog::CloseDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::CloseDialog) +{ + ui->setupUi(this); + setModal(true); + setWindowFlags((Qt::Tool | Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::MSWindowsFixedSizeDialogHint) & ~Qt::WindowCloseButtonHint); + setFixedSize(this->size()); //fixed size + //setWindowFlags(((windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowCloseButtonHint)); +} + +CloseDialog::~CloseDialog() +{ + delete ui; +} diff --git a/x64_dbg_gui/Project/Src/Gui/CloseDialog.h b/x64_dbg_gui/Project/Src/Gui/CloseDialog.h new file mode 100644 index 00000000..2f29908d --- /dev/null +++ b/x64_dbg_gui/Project/Src/Gui/CloseDialog.h @@ -0,0 +1,22 @@ +#ifndef CLOSEDIALOG_H +#define CLOSEDIALOG_H + +#include + +namespace Ui { +class CloseDialog; +} + +class CloseDialog : public QDialog +{ + Q_OBJECT + +public: + explicit CloseDialog(QWidget *parent = 0); + ~CloseDialog(); + +private: + Ui::CloseDialog *ui; +}; + +#endif // CLOSEDIALOG_H diff --git a/x64_dbg_gui/Project/Src/Gui/CloseDialog.ui b/x64_dbg_gui/Project/Src/Gui/CloseDialog.ui new file mode 100644 index 00000000..fdb12788 --- /dev/null +++ b/x64_dbg_gui/Project/Src/Gui/CloseDialog.ui @@ -0,0 +1,35 @@ + + + CloseDialog + + + + 0 + 0 + 220 + 80 + + + + + + + + + 0 + 0 + 220 + 80 + + + + Closing Debugger... + + + Qt::AlignCenter + + + + + + diff --git a/x64_dbg_gui/Project/Src/Gui/MainWindow.cpp b/x64_dbg_gui/Project/Src/Gui/MainWindow.cpp index 3509e26c..6580c096 100644 --- a/x64_dbg_gui/Project/Src/Gui/MainWindow.cpp +++ b/x64_dbg_gui/Project/Src/Gui/MainWindow.cpp @@ -154,6 +154,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi initMenuApi(); bClose=false; + mCloseDialog = new CloseDialog(this); } DWORD WINAPI MainWindow::closeThread(void* ptr) @@ -171,6 +172,7 @@ DWORD WINAPI MainWindow::closeThread(void* ptr) void MainWindow::closeEvent(QCloseEvent* event) { + mCloseDialog->show(); CloseHandle(CreateThread(0, 0, closeThread, this, 0, 0)); if(bClose) event->accept(); diff --git a/x64_dbg_gui/Project/Src/Gui/MainWindow.h b/x64_dbg_gui/Project/Src/Gui/MainWindow.h index 8c37ad6e..6937a63a 100644 --- a/x64_dbg_gui/Project/Src/Gui/MainWindow.h +++ b/x64_dbg_gui/Project/Src/Gui/MainWindow.h @@ -20,6 +20,7 @@ #include "tabwidget.h" #include "Configuration.h" #include "AppearanceDialog.h" +#include "CloseDialog.h" namespace Ui { @@ -79,6 +80,7 @@ public slots: private: Ui::MainWindow *ui; + CloseDialog* mCloseDialog; CommandLineEdit* mCmdLineEdit; MHTabWidget* mTabWidget;