diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-19 02:10:31 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-19 02:10:31 +0100 |
commit | 49ee5ed6e80b8f06337f92d14e2cab1c1512c1e3 (patch) | |
tree | e35d5472c2a3ed129f5a6a6826f9999b033cc548 /lib/navigation/navigationbutton.cpp | |
parent | Configuration creates missing items based on defaults (diff) | |
download | smolbote-49ee5ed6e80b8f06337f92d14e2cab1c1512c1e3.tar.xz |
Refactoring MainWindow
- Added NavigationBar object that manages the navigation buttons
- Removed NavigationButton class that it obsoleted
Diffstat (limited to 'lib/navigation/navigationbutton.cpp')
-rw-r--r-- | lib/navigation/navigationbutton.cpp | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/lib/navigation/navigationbutton.cpp b/lib/navigation/navigationbutton.cpp deleted file mode 100644 index 577c291..0000000 --- a/lib/navigation/navigationbutton.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - * This file is part of smolbote. It's copyrighted by the contributors recorded - * in the version control history of the file, available from its original - * location: git://neueland.iserlohn-fortress.net/smolbote.git - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "navigationbutton.h" - -#include <QStyle> -#include <QWebEngineHistory> - -NavigationButton::NavigationButton(Type type, QWidget *parent) - : QToolButton(parent) -{ - m_type = type; - menu = new QMenu(this); - - switch(type) { - case BackButton: - setIcon(style()->standardIcon(QStyle::SP_ArrowBack)); - setMenu(menu); - connect(menu, &QMenu::aboutToShow, this, &NavigationButton::prepareMenu); - break; - case ForwardButton: - setIcon(style()->standardIcon(QStyle::SP_ArrowForward)); - setMenu(menu); - connect(menu, &QMenu::aboutToShow, this, &NavigationButton::prepareMenu); - break; - case ReloadButton: - setIcon(style()->standardIcon(QStyle::SP_BrowserReload)); - break; - case StopButton: - setIcon(style()->standardIcon(QStyle::SP_BrowserStop)); - break; - } - - connect(this, &NavigationButton::clicked, this, &NavigationButton::doAction); -} - -void NavigationButton::setView(WebView *view) -{ - disconnect(loadStartedConnection); - disconnect(loadFinishedConnection); - - m_view = view; - if(m_type == BackButton || m_type == ForwardButton) { - updateOnLoadFinished(); - } - - loadStartedConnection = connect(view, &WebView::loadStarted, this, &NavigationButton::updateOnLoadStarted); - loadFinishedConnection = connect(view, &WebView::loadFinished, this, &NavigationButton::updateOnLoadFinished); -} - -void NavigationButton::updateOnLoadStarted() -{ - switch(m_type) { - case BackButton: - break; - case ForwardButton: - break; - case ReloadButton: - m_type = StopButton; - setIcon(style()->standardIcon(QStyle::SP_BrowserStop)); - break; - case StopButton: - break; - } -} - -void NavigationButton::updateOnLoadFinished() -{ - switch(m_type) { - case BackButton: - if(m_view->history()->canGoBack()) { - setEnabled(true); - } else { - setEnabled(false); - } - break; - case ForwardButton: - if(m_view->history()->canGoForward()) { - setEnabled(true); - } else { - setEnabled(false); - } - break; - case ReloadButton: - break; - case StopButton: - m_type = ReloadButton; - setIcon(style()->standardIcon(QStyle::SP_BrowserReload)); - break; - } -} - -void NavigationButton::doAction() -{ - switch(m_type) { - case BackButton: - m_view->history()->back(); - break; - case ForwardButton: - m_view->history()->forward(); - break; - case ReloadButton: - m_view->reload(); - break; - case StopButton: - m_view->stop(); - break; - } -} - -void NavigationButton::prepareMenu() -{ - menu->clear(); - - QList<QWebEngineHistoryItem> items; - switch(m_type) { - case BackButton: - items = m_view->history()->backItems(10); - break; - case ForwardButton: - items = m_view->history()->forwardItems(10); - break; - default: - break; - } - - for(const QWebEngineHistoryItem &i : qAsConst(items)) { - QAction *a = menu->addAction(i.title()); - connect(a, &QAction::triggered, this, [i, this]() { - m_view->history()->goToItem(i); - }); - } -} |