aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/uihelper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/uihelper.cpp')
-rw-r--r--src/qmmpui/uihelper.cpp31
1 files changed, 5 insertions, 26 deletions
diff --git a/src/qmmpui/uihelper.cpp b/src/qmmpui/uihelper.cpp
index 44b450bad..4a6bd6bc2 100644
--- a/src/qmmpui/uihelper.cpp
+++ b/src/qmmpui/uihelper.cpp
@@ -23,6 +23,7 @@
#include <QWidget>
#include <QAction>
#include <QSettings>
+#include <QApplication>
#include <qmmp/soundcore.h>
#include <qmmp/metadatamanager.h>
#include "filedialog.h"
@@ -245,34 +246,12 @@ void UiHelper::showMainWindow()
void UiHelper::exit()
{
-#if QT_VERSION < 0x040700
- bool closed = true;
- QWidget *w;
+ //send non-spontaneous close event
+ //for all windows
+ foreach (QWidget *widget, qApp->topLevelWidgets())
+ widget->close();
- while ((w = qApp->activeModalWidget()) && closed)
- {
- if (!w->isVisible())
- break;
-
- closed = w->close();
- }
-
- QWidgetList list = qApp->topLevelWidgets();
-
- while (closed && !list.isEmpty())
- {
- w = list.takeLast();
-
- if (w->isVisible() && w->windowType() != Qt::Desktop)
- {
- closed = w->close();
- list = qApp->topLevelWidgets();
- list.removeOne(w);
- }
- }
-#else
qApp->closeAllWindows();
-#endif
qApp->quit();
}