aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-19 02:10:31 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-19 02:10:31 +0100
commit49ee5ed6e80b8f06337f92d14e2cab1c1512c1e3 (patch)
treee35d5472c2a3ed129f5a6a6826f9999b033cc548 /lib
parentConfiguration creates missing items based on defaults (diff)
downloadsmolbote-49ee5ed6e80b8f06337f92d14e2cab1c1512c1e3.tar.xz
Refactoring MainWindow
- Added NavigationBar object that manages the navigation buttons - Removed NavigationButton class that it obsoleted
Diffstat (limited to 'lib')
-rw-r--r--lib/navigation/CMakeLists.txt2
-rw-r--r--lib/navigation/navigationbutton.cpp138
-rw-r--r--lib/navigation/navigationbutton.h48
3 files changed, 0 insertions, 188 deletions
diff --git a/lib/navigation/CMakeLists.txt b/lib/navigation/CMakeLists.txt
index a81818e..4f0208b 100644
--- a/lib/navigation/CMakeLists.txt
+++ b/lib/navigation/CMakeLists.txt
@@ -1,8 +1,6 @@
cmake_minimum_required(VERSION 3.1.0)
add_library(navigation
- navigationbutton.cpp
- navigationbutton.h
urllineedit.cpp
urllineedit.h)
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);
- });
- }
-}
diff --git a/lib/navigation/navigationbutton.h b/lib/navigation/navigationbutton.h
deleted file mode 100644
index e0d358a..0000000
--- a/lib/navigation/navigationbutton.h
+++ /dev/null
@@ -1,48 +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
- */
-
-#ifndef NAVIGATIONBUTTON_H
-#define NAVIGATIONBUTTON_H
-
-#include "../../src/webengine/webview.h"
-#include <QToolButton>
-
-class QMenu;
-
-class NavigationButton : public QToolButton
-{
- Q_OBJECT
-public:
- enum Type {
- BackButton,
- ForwardButton,
- ReloadButton,
- StopButton
- };
-
- explicit NavigationButton(Type type, QWidget *parent = nullptr);
-
- void setView(WebView *view);
-
-signals:
-
-private slots:
- void updateOnLoadStarted();
- void updateOnLoadFinished();
- void doAction();
- void prepareMenu();
-
-private:
- Type m_type;
- QMenu *menu;
- WebView *m_view;
-
- QMetaObject::Connection loadStartedConnection, loadFinishedConnection;
-};
-
-#endif // NAVIGATIONBUTTON_H