/* ============================================================ * The rekonq project * ============================================================ * SPDX-License-Identifier: GPL-2.0-or-later * Copyright (C) 2013 by Andrea Diamantini * SPDX-License-Identifier: GPL-3.0-only * Copyright (C) 2022 aqua * ============================================================ */ #include "rekonqwindow.hpp" #include "application.hpp" #include "ui_rekonqwindow.h" #include #include // -------------------------------------------------------------------------------------------------- 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); 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 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); return index; } void RekonqWindow::loadUrl(rekonq::DefaultUrl url, rekonq::OpenType type) { auto *settings = Application::instance()->settings(); switch (url) { case rekonq::NewTabPage: loadUrl(settings->value("newtab").toUrl(), type); break; case rekonq::HomePage: loadUrl(settings->value("homepage").toUrl(), type); break; case rekonq::AboutBlank: loadUrl(QUrl("about:blank"), type); break; } } void RekonqWindow::loadUrl(const QUrl &url, rekonq::OpenType type) { 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; } } // -------------------------------------------------------------------------------------------------- /* void RekonqWindow::showBookmarksPanel(bool on) { if (on) { if (_bookmarksPanel.isNull()) { _bookmarksPanel = new BookmarksPanel(i18n("Bookmarks Panel"), this); connect(_bookmarksPanel.data(), SIGNAL(openUrl(KUrl,Rekonq::OpenType)), this, SLOT(loadUrl(KUrl,Rekonq::OpenType))); QAction *a = _tabWidget->actionByName(QL1S("show_bookmarks_panel")); connect(_bookmarksPanel.data(), SIGNAL(visibilityChanged(bool)), a, SLOT(setChecked(bool))); } _splitter->insertWidget(0, _bookmarksPanel.data()); _bookmarksPanel.data()->show(); } else { _bookmarksPanel.data()->hide(); delete _bookmarksPanel.data(); _bookmarksPanel.clear(); } } void RekonqWindow::showHistoryPanel(bool on) { if (on) { if (_historyPanel.isNull()) { _historyPanel = new HistoryPanel(i18n("History Panel"), this); connect(_historyPanel.data(), SIGNAL(openUrl(KUrl,Rekonq::OpenType)), this, SLOT(loadUrl(KUrl,Rekonq::OpenType))); QAction *a = _tabWidget->actionByName(QL1S("show_history_panel")); connect(_historyPanel.data(), SIGNAL(visibilityChanged(bool)), a, SLOT(setChecked(bool))); } _splitter->insertWidget(0, _historyPanel.data()); _historyPanel.data()->show(); } else { _historyPanel.data()->hide(); delete _historyPanel.data(); _historyPanel.clear(); } } */