summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kpdf/shell/shell.cpp14
-rw-r--r--kpdf/shell/shell.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/kpdf/shell/shell.cpp b/kpdf/shell/shell.cpp
index c0df6a4f..ed9403df 100644
--- a/kpdf/shell/shell.cpp
+++ b/kpdf/shell/shell.cpp
@@ -50,6 +50,7 @@ Shell::Shell()
: DCOPObject("KPDFShellDCOPIface"), KParts::MainWindow(0, "KPDF::Shell"),
m_menuBarWasShown(true),
m_toolBarWasShown(true),
+ m_shuttingDown(false),
m_showToolBarAction(nullptr),
m_tabs(nullptr),
m_tabsContextMenu(nullptr),
@@ -63,6 +64,7 @@ Shell::Shell(const KURL &url)
: DCOPObject("KPDFShellDCOPIface"), KParts::MainWindow(0, "KPDF::Shell"),
m_menuBarWasShown(true),
m_toolBarWasShown(true),
+ m_shuttingDown(false),
m_showToolBarAction(nullptr),
m_tabs(nullptr),
m_tabsContextMenu(nullptr),
@@ -101,6 +103,8 @@ void Shell::init()
this, TQ_SLOT(createGUI(KParts::Part*)));
connect(m_manager, TQ_SIGNAL(activePartChanged(KParts::Part*)),
this, TQ_SLOT(slotChangeTab(KParts::Part*)));
+ connect(tdeApp, TQ_SIGNAL(shutDown()),
+ this, TQ_SLOT(slotShutDown()));
setCentralWidget(m_tabs);
setXMLFile("shell.rc");
@@ -433,8 +437,18 @@ void Shell::removeTab()
m_workingTab = -1;
}
+void Shell::slotShutDown()
+{
+ m_shuttingDown = true;
+}
+
void Shell::slotChangeTab(KParts::Part *part)
{
+ if (m_shuttingDown)
+ {
+ return;
+ }
+
if (!part)
{
part = createTab();
diff --git a/kpdf/shell/shell.h b/kpdf/shell/shell.h
index d1ace108..87d9c93a 100644
--- a/kpdf/shell/shell.h
+++ b/kpdf/shell/shell.h
@@ -111,6 +111,7 @@ namespace KPDF
void slotUpdateFullScreen();
void slotShowMenubar();
void delayedOpen();
+ void slotShutDown();
void slotCloseTabRequest(TQWidget *w);
void slotChangeTab(KParts::Part *part);
@@ -150,6 +151,7 @@ namespace KPDF
TQToolButton *m_addTabButton, *m_removeTabButton;
TQPopupMenu *m_tabsContextMenu;
bool m_menuBarWasShown, m_toolBarWasShown;
+ bool m_shuttingDown;
KURL m_openUrl; // delayed open
int m_workingTab;
};