- implement: handle windows logout message

This commit is contained in:
royqh1979@gmail.com 2021-10-07 00:25:11 +08:00
parent 3e8200d307
commit e6d4bdd43c
2 changed files with 25 additions and 0 deletions

View File

@ -24,6 +24,7 @@ Version 0.6.0
- fix: makefile generated for static / dynamic library projects not right
- fix: editors disappeared when close/close all
- implement: config shortcuts
- implement: handle windows logout message
Version 0.5.0
- enhancement: support C++ using type alias;

View File

@ -9,6 +9,7 @@
#include <QStandardPaths>
#include <QMessageBox>
#include <QStringList>
#include <QAbstractNativeEventFilter>
#include "common.h"
#include "colorscheme.h"
#include "iconsmanager.h"
@ -16,6 +17,27 @@
#include "platform.h"
#include "parser/parserutils.h"
#include "editorlist.h"
#include <windows.h>
class WindowLogoutEventFilter : public QAbstractNativeEventFilter {
// QAbstractNativeEventFilter interface
public:
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override;
};
bool WindowLogoutEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *result){
MSG * pMsg = static_cast<MSG *>(message);
if (pMsg->message == WM_QUERYENDSESSION) {
if (!pMainWindow->close()) {
*result = 0;
} else {
*result = 1;
}
return true;
}
return false;
}
QString getSettingFilename(const QString& filepath = QString()) {
QString filename;
@ -110,6 +132,8 @@ int main(int argc, char *argv[])
}
}
mainWindow.show();
WindowLogoutEventFilter filter;
app.installNativeEventFilter(&filter);
int retCode = app.exec();
// save settings
// settings->compilerSets().saveSets();