31#include <QApplication>
32#include <QWebEngineHistory>
45void HistoryMenu::goBack()
52void HistoryMenu::goForward()
55 m_window->goForward();
59void HistoryMenu::goHome()
66void HistoryMenu::showHistoryManager()
69 m_window->showHistoryManager();
73void HistoryMenu::aboutToShow()
76 TabbedWebView* view = m_window ? m_window->weView() :
nullptr;
79 actions().at(0)->setEnabled(view->history()->canGoBack());
80 actions().at(1)->setEnabled(view->history()->canGoForward());
83 while (actions().count() != 8) {
84 QAction* act = actions().at(8);
95 query.exec(
QSL(
"SELECT title, url FROM history ORDER BY date DESC LIMIT 10"));
97 while (query.next()) {
98 const QUrl url = query.value(1).toUrl();
101 auto* act =
new Action(title);
104 connect(act, &QAction::triggered,
this, &HistoryMenu::historyEntryActivated);
111void HistoryMenu::aboutToHide()
114 actions().at(0)->setEnabled(
true);
115 actions().at(1)->setEnabled(
true);
118void HistoryMenu::aboutToShowMostVisited()
120 m_menuMostVisited->clear();
122 const QVector<HistoryEntry> mostVisited =
mApp->history()->mostVisited(10);
126 act->setData(entry.url);
128 connect(act, &QAction::triggered,
this, &HistoryMenu::historyEntryActivated);
131 m_menuMostVisited->addAction(act);
134 if (m_menuMostVisited->isEmpty()) {
135 m_menuMostVisited->addAction(tr(
"Empty"))->setEnabled(
false);
139void HistoryMenu::aboutToShowClosedTabs()
141 m_menuClosedTabs->clear();
147 TabWidget* tabWidget = m_window->tabWidget();
150 for (
int i = 0;
i < closedTabs.count(); ++
i) {
153 m_menuClosedTabs->addAction(tab.
tabState.
icon, title, tabWidget, SLOT(restoreClosedTab()))->setData(
i);
156 if (m_menuClosedTabs->isEmpty()) {
157 m_menuClosedTabs->addAction(tr(
"Empty"))->setEnabled(
false);
160 m_menuClosedTabs->addSeparator();
166void HistoryMenu::aboutToShowClosedWindows()
168 m_menuClosedWindows->clear();
173 for (
int i = 0;
i < closedWindows.count(); ++
i) {
178 act->setShortcut(QKeySequence(
QSL(
"Ctrl+Shift+N")));
179 act->setShortcutContext(Qt::WidgetShortcut);
185 if (m_menuClosedWindows->isEmpty()) {
186 m_menuClosedWindows->addAction(tr(
"Empty"))->setEnabled(
false);
188 m_menuClosedWindows->addSeparator();
194void HistoryMenu::historyEntryActivated()
196 if (
auto* action = qobject_cast<QAction*>(sender())) {
197 openUrl(action->data().toUrl());
201void HistoryMenu::historyEntryCtrlActivated()
203 if (
auto* action = qobject_cast<QAction*>(sender())) {
204 openUrlInNewTab(action->data().toUrl());
208void HistoryMenu::historyEntryShiftActivated()
210 if (
auto* action = qobject_cast<QAction*>(sender())) {
211 openUrlInNewWindow(action->data().toUrl());
215void HistoryMenu::openUrl(
const QUrl &url)
218 m_window->loadAddress(url);
222void HistoryMenu::openUrlInNewTab(
const QUrl &url)
225 m_window->tabWidget()->addView(url,
qzSettings->newTabPosition);
229void HistoryMenu::openUrlInNewWindow(
const QUrl &url)
234void HistoryMenu::init()
236 setTitle(tr(
"Hi&story"));
239 act->setShortcut(
QzTools::actionShortcut(QKeySequence::Back, Qt::ALT | Qt::Key_Left, QKeySequence::Forward, Qt::ALT | Qt::Key_Right));
242 act->setShortcut(
QzTools::actionShortcut(QKeySequence::Forward, Qt::ALT | Qt::Key_Right, QKeySequence::Back, Qt::ALT | Qt::Key_Left));
244 act = addAction(QIcon::fromTheme(
QSL(
"go-home")), tr(
"&Home"),
this, &HistoryMenu::goHome);
245 act->setShortcut(QKeySequence(Qt::ALT | Qt::Key_Home));
247 act = addAction(QIcon::fromTheme(
QSL(
"deep-history"), QIcon(
QSL(
":/icons/menu/history.svg"))), tr(
"Show &All History"),
this, &HistoryMenu::showHistoryManager);
248 act->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_H));
252 connect(
this, SIGNAL(aboutToShow()),
this, SLOT(aboutToShow()));
253 connect(
this, SIGNAL(aboutToHide()),
this, SLOT(aboutToHide()));
255 m_menuMostVisited =
new Menu(tr(
"Most Visited"),
this);
256 connect(m_menuMostVisited, &QMenu::aboutToShow,
this, &HistoryMenu::aboutToShowMostVisited);
258 m_menuClosedTabs =
new Menu(tr(
"Closed Tabs"));
259 connect(m_menuClosedTabs, &QMenu::aboutToShow,
this, &HistoryMenu::aboutToShowClosedTabs);
261 m_menuClosedWindows =
new Menu(tr(
"Closed Windows"));
262 connect(m_menuClosedWindows, &QMenu::aboutToShow,
this, &HistoryMenu::aboutToShowClosedWindows);
264 addMenu(m_menuMostVisited);
265 addMenu(m_menuClosedTabs);
266 addMenu(m_menuClosedWindows);
QVector< Tab > closedTabs() const
void clearClosedWindows()
QVector< Window > closedWindows() const
void restoreClosedWindow()
void restoreAllClosedWindows()
static QIcon iconForUrl(const QUrl &url, bool allowNull=false)
static QIcon standardIcon(QStyle::StandardPixmap icon)
static SqlDatabase * instance()
WebTab::SavedTab tabState