Ejemplo n.º 1
0
bool SessionsManager::restoreSession(const QString &path, MainWindow *window)
{
	const SessionInformation session = getSession(path);

	if (session.windows.isEmpty())
	{
		if (m_session.isEmpty() && path == QLatin1String("default"))
		{
			m_session = QLatin1String("default");
		}

		return false;
	}

	const QList<SessionMainWindow> closedWindows = m_closedWindows;

	if (m_session.isEmpty())
	{
		m_session = path;
	}

	m_closedWindows = session.windows;

	if (window && m_closedWindows.count() > 0)
	{
		window->getWindowsManager()->restore(m_closedWindows.first());

		m_closedWindows.removeAt(0);
	}

	const int windows = m_closedWindows.count();

	for (int i = 0; i < windows; ++i)
	{
		restoreClosedWindow();
	}

	m_closedWindows = closedWindows;

	return true;
}
Ejemplo n.º 2
0
void Menu::populateClosedWindowsMenu()
{
	clear();

	QMenu::addAction(Utils::getIcon(QLatin1String("edit-clear")), tr("Clear"), this, SLOT(clearClosedWindows()))->setData(0);

	addSeparator();

	const QStringList windows = SessionsManager::getClosedWindows();

	if (!windows.isEmpty())
	{
		for (int i = 0; i < windows.count(); ++i)
		{
			QMenu::addAction(Utils::elideText(tr("Window - %1").arg(windows.at(i)), this), this, SLOT(restoreClosedWindow()))->setData(-(i + 1));
		}

		addSeparator();
	}

	MainWindow *mainWindow = MainWindow::findMainWindow(parent());

	if (mainWindow)
	{
		const QList<ClosedWindow> tabs = mainWindow->getWindowsManager()->getClosedWindows();

		for (int i = 0; i < tabs.count(); ++i)
		{
			QAction *action = QMenu::addAction(HistoryManager::getIcon(QUrl(tabs.at(i).window.getUrl())), Utils::elideText(tabs.at(i).window.getTitle(), this), this, SLOT(restoreClosedWindow()));
			action->setData(i + 1);
			action->setStatusTip(tabs.at(i).window.getUrl());
		}
	}
}