summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/application.cpp24
-rw-r--r--src/application.h2
2 files changed, 12 insertions, 14 deletions
diff --git a/src/application.cpp b/src/application.cpp
index 4f1b623b..7004a901 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -333,7 +333,7 @@ TabWindow *Application::newTabWindow()
// set object name
int n = m_tabWindows.count() + 1;
w->setObjectName( QL1S("win") + QString::number(n) );
-
+
// This is used to track which window was activated most recently
w->installEventFilter(this);
@@ -344,17 +344,6 @@ TabWindow *Application::newTabWindow()
}
-void Application::removeTabWindow(TabWindow *window)
-{
- m_tabWindows.removeOne(window);
- kDebug() << "Removing Window from app window list...";
-
- // bye bye...
- if (m_tabWindows.count() == 0)
- quit();
-}
-
-
TabWindowList Application::tabWindowList()
{
return m_tabWindows;
@@ -379,6 +368,17 @@ bool Application::eventFilter(QObject* watched, QEvent* event)
}
}
+ // As we are filtering the events occurred to the tabwindows, check also
+ // when we close one of them, remove from tab window list and check if it was last...
+ if (event->type() == QEvent::Close)
+ {
+ TabWindow *window = qobject_cast<TabWindow*>(watched);
+ m_tabWindows.removeOne(window);
+
+ if (m_tabWindows.count() == 0)
+ quit();
+ }
+
return QObject::eventFilter(watched, event);
}
diff --git a/src/application.h b/src/application.h
index 4934540e..c9ad7376 100644
--- a/src/application.h
+++ b/src/application.h
@@ -88,8 +88,6 @@ public Q_SLOTS:
TabWindow *newTabWindow();
- void removeTabWindow(TabWindow *window);
-
protected:
// This is used to track which window was activated most recently
bool eventFilter(QObject *watched, QEvent *event);