void Core::RestoreSession (bool ask) { if (!SavedSessionState_.size ()) ; else if (ask) { std::auto_ptr<RestoreSessionDialog> dia (new RestoreSessionDialog (Core::Instance ().GetProxy ()->GetMainWindow ())); bool added = false; for (int i = 0; i < SavedSessionState_.size (); ++i) { QPair<QString, QString> pair = SavedSessionState_.at (i); QString title = pair.first; QString url = pair.second; if (url.isEmpty ()) continue; dia->AddPair (title, url); added = true; } if (added && dia->exec () == QDialog::Accepted) { RestoredURLs_ = dia->GetSelectedURLs (); QTimer::singleShot (2000, this, SLOT (restorePages ())); } else saveSession (); } else { for (int i = 0; i < SavedSessionState_.size (); ++i) { QString url = SavedSessionState_.at (i).second; if (url.isEmpty ()) continue; RestoredURLs_ << i; } QTimer::singleShot (2000, this, SLOT (restorePages ())); } QList<QUrl> toRestore; Q_FOREACH (int idx, RestoredURLs_) toRestore << SavedSessionState_ [idx].second; Util::DefaultHookProxy_ptr proxy (new Util::DefaultHookProxy); emit hookSessionRestoreScheduled (proxy, toRestore); if (proxy->IsCancelled ()) { RestoredURLs_.clear (); SavedSessionState_.clear (); } }
void Core::RestoreSession (bool ask) { if (!SavedSessionState_.size ()) ; else if (ask) { std::auto_ptr<RestoreSessionDialog> dia (new RestoreSessionDialog (Core::Instance ().GetProxy ()->GetMainWindow ())); bool added = false; for (int i = 0; i < SavedSessionState_.size (); ++i) { QPair<QString, QString> pair = SavedSessionState_.at (i); QString title = pair.first; QString url = pair.second; if (url.isEmpty ()) continue; dia->AddPair (title, url); added = true; } if (added && dia->exec () == QDialog::Accepted) { RestoredURLs_ = dia->GetSelectedURLs (); QTimer::singleShot (2000, this, SLOT (restorePages ())); } else saveSession (); } else { for (int i = 0; i < SavedSessionState_.size (); ++i) { QString url = SavedSessionState_.at (i).second; if (url.isEmpty ()) continue; RestoredURLs_ << i; } QTimer::singleShot (2000, this, SLOT (restorePages ())); } }