Merge pull request #621 from kiwix/history-shortcuts

History shortcuts
This commit is contained in:
Kelson 2021-07-28 11:56:41 +02:00 committed by GitHub
commit 6d639c9797
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 20 deletions

View File

@ -298,9 +298,17 @@ void KiwixApp::createAction()
connect(mpa_actions[RandomArticleAction], &QAction::triggered, connect(mpa_actions[RandomArticleAction], &QAction::triggered,
this, [=]() { this->openRandomUrl(false); }); this, [=]() { this->openRandomUrl(false); });
CREATE_ACTION(OpenHomePageAction, gt("random-article")); CREATE_ACTION(OpenHomePageAction, gt("home-page"));
SET_SHORTCUT(OpenHomePageAction, QKeySequence(Qt::ALT + Qt::Key_Home)); SET_SHORTCUT(OpenHomePageAction, QKeySequence(Qt::ALT + Qt::Key_Home));
CREATE_ACTION_ICON(HistoryBackAction, "back", gt("back"));
SET_SHORTCUT(HistoryBackAction, QKeySequence(Qt::ALT + Qt::Key_Left));
DISABLE_ACTION(HistoryBackAction);
CREATE_ACTION_ICON(HistoryForwardAction, "forward", gt("forward"));
SET_SHORTCUT(HistoryForwardAction, QKeySequence(Qt::ALT + Qt::Key_Right));
DISABLE_ACTION(HistoryForwardAction);
CREATE_ACTION_ICON(PrintAction, "print", gt("print")); CREATE_ACTION_ICON(PrintAction, "print", gt("print"));
SET_SHORTCUT(PrintAction, QKeySequence::Print); SET_SHORTCUT(PrintAction, QKeySequence::Print);
connect(mpa_actions[PrintAction], &QAction::triggered, connect(mpa_actions[PrintAction], &QAction::triggered,

View File

@ -45,6 +45,8 @@ public:
ZoomInAction, ZoomInAction,
ZoomOutAction, ZoomOutAction,
ZoomResetAction, ZoomResetAction,
HistoryBackAction,
HistoryForwardAction,
HelpAction, HelpAction,
FeedbackAction, FeedbackAction,
ReportBugAction, ReportBugAction,

View File

@ -10,25 +10,21 @@
TopWidget::TopWidget(QWidget *parent) : TopWidget::TopWidget(QWidget *parent) :
QToolBar(parent) QToolBar(parent)
{ {
mp_historyBackAction = new QAction(this); auto app = KiwixApp::instance();
mp_historyBackAction->setIcon(QIcon(":/icons/back.svg"));
mp_historyBackAction->setText(gt("back")); QAction *back = app->getAction(KiwixApp::HistoryBackAction);
mp_historyBackAction->setToolTip(gt("back")); connect(back, &QAction::triggered, [](){
mp_historyBackAction->setEnabled(false);
connect(mp_historyBackAction, &QAction::triggered, [](){
KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Back); KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Back);
}); });
addAction(mp_historyBackAction); addAction(back);
widgetForAction(mp_historyBackAction)->setObjectName("backButton"); widgetForAction(back)->setObjectName("backButton"); // For CSS
mp_historyForwardAction = new QAction(this);
mp_historyForwardAction->setIcon(QIcon(":/icons/forward.svg")); QAction *forward = app->getAction(KiwixApp::HistoryForwardAction);
mp_historyForwardAction->setText(gt("forward")); connect(forward, &QAction::triggered, [](){
mp_historyForwardAction->setToolTip(gt("forward"));
mp_historyForwardAction->setEnabled(false);
connect(mp_historyForwardAction, &QAction::triggered, [](){
KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Forward); KiwixApp::instance()->getTabWidget()->triggerWebPageAction(QWebEnginePage::Forward);
}); });
addAction(mp_historyForwardAction); addAction(forward);
addSeparator(); addSeparator();
addWidget(&m_searchEntry); addWidget(&m_searchEntry);
@ -61,18 +57,18 @@ TopWidget::TopWidget(QWidget *parent) :
TopWidget::~TopWidget() TopWidget::~TopWidget()
{ {
delete mp_historyBackAction;
delete mp_historyForwardAction;
} }
void TopWidget::handleWebActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled) void TopWidget::handleWebActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled)
{ {
auto app = KiwixApp::instance();
switch (action) { switch (action) {
case QWebEnginePage::Back: case QWebEnginePage::Back:
mp_historyBackAction->setEnabled(enabled); app->getAction(KiwixApp::HistoryBackAction)->setEnabled(enabled);
break; break;
case QWebEnginePage::Forward: case QWebEnginePage::Forward:
mp_historyForwardAction->setEnabled(enabled); app->getAction(KiwixApp::HistoryForwardAction)->setEnabled(enabled);
break; break;
default: default:
break; break;