summaryrefslogtreecommitdiff
path: root/src/rekonqwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rekonqwindow.cpp')
-rw-r--r--src/rekonqwindow.cpp112
1 files changed, 59 insertions, 53 deletions
diff --git a/src/rekonqwindow.cpp b/src/rekonqwindow.cpp
index 4f3e57f1..094dc1ff 100644
--- a/src/rekonqwindow.cpp
+++ b/src/rekonqwindow.cpp
@@ -5,15 +5,14 @@
* Copyright (C) 2013 by Andrea Diamantini <adjam7 at gmail dot com>
* SPDX-License-Identifier: GPL-3.0-only
* Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net>
- * ============================================================
- * Description: Main Window class
* ============================================================ */
-#include "rekonqwindow.h"
+#include "rekonqwindow.hpp"
#include "application.hpp"
#include "settings/settingsdialog.h"
#include "taskmanager.h"
#include "ui_rekonqwindow.h"
+#include <rsettings.hpp>
#include <rview.hpp>
RekonqWindow::RekonqWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::RekonqWindow)
@@ -29,8 +28,21 @@ RekonqWindow::RekonqWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::Re
});
connect(ui->tabs, &TabBar::removeView, this, [this](RekonqView *view) { ui->views->removeWidget(view); });
+ connect(ui->back, &QToolButton::clicked, this, [this]() { currentView()->back(); });
+ connect(ui->forward, &QToolButton::clicked, this, [this]() { currentView()->forward(); });
+ connect(ui->refresh, &QToolButton::clicked, this, [this]() { currentView()->refresh(); });
+ connect(ui->home, &QToolButton::clicked, this, [this]() { loadUrl(QUrl()); });
+
// connect menu actions
// file menu
+ connect(ui->actionNewTab, &QAction::triggered, this, [this]() {
+ auto *app = Application::instance();
+ Q_CHECK_PTR(app);
+ auto newTabUrl = app->settings()->value("newtab").toUrl();
+ loadUrl(newTabUrl, rekonq::NewFocusedTab);
+ });
+ connect(ui->actionCloseTab, &QAction::triggered, this,
+ [this]() { emit ui->tabs->tabCloseRequested(ui->tabs->currentIndex()); });
connect(ui->actionQuit, &QAction::triggered, qApp, &QApplication::quit);
// edit menu
// view menu
@@ -49,79 +61,73 @@ RekonqWindow::RekonqWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::Re
RekonqWindow::~RekonqWindow() { delete ui; }
-void RekonqWindow::addView(RekonqView *view)
+// --------------------------------------------------------------------------------------------------
+
+RekonqView *RekonqWindow::currentView()
+{
+ auto *view = ui->tabs->view(ui->tabs->currentIndex());
+ Q_CHECK_PTR(view);
+ return view;
+}
+
+int RekonqWindow::addView(RekonqView *view)
{
Q_CHECK_PTR(view);
ui->views->addWidget(view);
- ui->tabs->addTab(view);
- connect(view, &RekonqView::urlChanged, ui->urlBar, &UrlBar::setUrl);
+ const auto index = ui->tabs->addTab(view);
+ connect(view, &RekonqView::urlChanged, [this, view](const QUrl &url) {
+ if (view == currentView()) ui->urlBar->setUrl(url);
+ });
connect(view, &RekonqView::titleChanged, [this, view](const QString &title) {
- const auto index = ui->views->indexOf(view);
- ui->tabs->setTabText(index, view->title());
+ const auto idx = ui->views->indexOf(view);
+ ui->tabs->setTabText(idx, title);
+ });
+ connect(view, &RekonqView::iconChanged, [this, view](const QIcon &icon) {
+ const auto idx = ui->views->indexOf(view);
+ ui->tabs->setTabIcon(idx, icon);
});
connect(view, &RekonqView::loadStarted, ui->urlBar, &UrlBar::loadStarted);
connect(view, &RekonqView::loadProgress, ui->urlBar, &UrlBar::loadProgress);
connect(view, &RekonqView::loadFinished, ui->urlBar, &UrlBar::loadFinished);
-}
-
-/*
-void RekonqWindow::init()
-{
- setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-
- QVBoxLayout *l = new QVBoxLayout(this);
- l->setMargin(0);
- l->setSpacing(0);
-
- if (ReKonfig::showBookmarksPanel())
- showBookmarksPanel(true);
-
- if (ReKonfig::showHistoryPanel())
- showHistoryPanel(true);
- _splitter->addWidget(_tabWidget);
- _tabWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-
- l->addWidget(_splitter);
-
- // fix focus handling
- setFocusProxy(_tabWidget);
-
- // signals
- connect(_tabWidget, SIGNAL(closeWindow()), this, SLOT(close()));
- connect(_tabWidget, SIGNAL(windowTitleChanged(QString)), this, SLOT(setWindowTitle(QString)));
+ return index;
}
-// --------------------------------------------------------------------------------------------------
-
-
-TabWidget *RekonqWindow::tabWidget()
+void RekonqWindow::loadUrl(const QUrl &url, rekonq::OpenType type)
{
- return _tabWidget;
-}
-
-
-TabBar *RekonqWindow::tabBar()
-{
- return _tabWidget->tabBar();
-}
-
-
-WebWindow *RekonqWindow::currentWebWindow() const
-{
- return _tabWidget->currentWebWindow();
+ switch (type) {
+ case rekonq::CurrentTab:
+ currentView()->load(url);
+ break;
+ case rekonq::NewTab:
+ Application::instance()->newView(url, this);
+ break;
+ case rekonq::NewFocusedTab:
+ ui->tabs->setCurrentView(Application::instance()->newView(url, this));
+ break;
+ case rekonq::NewBackGroundTab:
+ break;
+ case rekonq::NewWindow:
+ break;
+ case rekonq::NewPrivateWindow:
+ break;
+ case rekonq::WebApp:
+ Application::instance()->newView(url, nullptr);
+ break;
+ }
}
+// --------------------------------------------------------------------------------------------------
+/*
bool RekonqWindow::isPrivateBrowsingMode()
{
return _tabWidget->isPrivateBrowsingWindowMode();
}
-// --------------------------------------------------------------------------------------------------
void RekonqWindow::loadUrl(const KUrl &url, Rekonq::OpenType type, TabHistory *history)