From f9209656685c7c8002edd2688a42ee8d51d1052f Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Sun, 15 May 2016 16:33:02 -0400 Subject: [PATCH] Let Qt keep track of top-level windows. --- glabels/File.cpp | 7 +++++-- glabels/MainWindow.cpp | 17 ----------------- glabels/MainWindow.h | 4 ---- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/glabels/File.cpp b/glabels/File.cpp index 9ba0540..1c8fe7d 100644 --- a/glabels/File.cpp +++ b/glabels/File.cpp @@ -204,8 +204,11 @@ void File::close( MainWindow *window ) /// void File::exit() { - foreach ( MainWindow* window, MainWindow::windowList() ) + foreach ( QWidget* qwidget, QApplication::topLevelWidgets() ) { - window->close(); + if ( MainWindow* window = qobject_cast(qwidget) ) + { + window->close(); + } } } diff --git a/glabels/MainWindow.cpp b/glabels/MainWindow.cpp index 52167a3..0b32015 100644 --- a/glabels/MainWindow.cpp +++ b/glabels/MainWindow.cpp @@ -52,12 +52,6 @@ #include "Help.h" -/// -/// Static window list -/// -QList MainWindow::smWindowList; - - /// /// Constructor /// @@ -146,8 +140,6 @@ MainWindow::MainWindow() #endif readSettings(); - - smWindowList.push_back( this ); } @@ -156,7 +148,6 @@ MainWindow::MainWindow() /// MainWindow::~MainWindow() { - smWindowList.removeOne( this ); } @@ -208,14 +199,6 @@ bool MainWindow::isEmpty() const return mModel == 0; } -/// -/// Get window list -/// -QList MainWindow::windowList() -{ - return smWindowList; -} - /// /// Close Event Handler diff --git a/glabels/MainWindow.h b/glabels/MainWindow.h index c9d72ec..d9e5968 100644 --- a/glabels/MainWindow.h +++ b/glabels/MainWindow.h @@ -70,8 +70,6 @@ public: void setModel( LabelModel* label ); bool isEmpty() const; - static QList windowList(); - ///////////////////////////////////// // Events @@ -186,8 +184,6 @@ private: // Private Data ///////////////////////////////////// private: - static QList smWindowList; - QMenu* fileMenu; QMenu* editMenu; QMenu* viewMenu;