From 884c152c392f23d0ede86238313080d8bb4ac23c Mon Sep 17 00:00:00 2001 From: nowrep Date: Wed, 12 Sep 2012 14:03:26 +0200 Subject: [PATCH] Fixed crash when opening qupzilla:restore in multiple tabs. closes #567 --- src/lib/session/recoverywidget.cpp | 10 +++++++--- src/lib/session/recoverywidget.h | 2 -- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/session/recoverywidget.cpp b/src/lib/session/recoverywidget.cpp index 1335a01a7..4dbee3c20 100644 --- a/src/lib/session/recoverywidget.cpp +++ b/src/lib/session/recoverywidget.cpp @@ -26,7 +26,6 @@ RecoveryWidget::RecoveryWidget(WebView* view, QupZilla* mainClass) : QWidget() , ui(new Ui::RecoveryWidget) - , m_restoreManager(mApp->restoreManager()) , m_view(view) , p_QupZilla(mainClass) { @@ -34,7 +33,7 @@ RecoveryWidget::RecoveryWidget(WebView* view, QupZilla* mainClass) setCursor(Qt::ArrowCursor); - const RestoreData &data = m_restoreManager->restoreData(); + const RestoreData &data = mApp->restoreManager()->restoreData(); for (int i = 0; i < data.size(); ++i) { const RestoreManager::WindowData &wd = data.at(i); @@ -75,7 +74,12 @@ void RecoveryWidget::onItemChanged(QTreeWidgetItem* item, int column) void RecoveryWidget::restoreSession() { - RestoreData data = m_restoreManager->restoreData(); + RestoreManager* manager = mApp->restoreManager(); + if (!manager) { + return; + } + + RestoreData data = manager->restoreData(); for (int win = ui->treeWidget->topLevelItemCount() - 1; win >= 0; --win) { QTreeWidgetItem* root = ui->treeWidget->topLevelItem(win); diff --git a/src/lib/session/recoverywidget.h b/src/lib/session/recoverywidget.h index 66ce2470c..18257614a 100644 --- a/src/lib/session/recoverywidget.h +++ b/src/lib/session/recoverywidget.h @@ -30,7 +30,6 @@ class QTreeWidgetItem; class WebView; class QupZilla; -class RestoreManager; class RecoveryWidget : public QWidget { @@ -49,7 +48,6 @@ private slots: private: Ui::RecoveryWidget* ui; - RestoreManager* m_restoreManager; WebView* m_view; QupZilla* p_QupZilla; };