/* ============================================================ * 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 "ui_rekonqwindow.h" #include #include #ifndef REKONQ_TEST #include "application.hpp" #include "settings/settingsdialog.h" #include "taskmanager.h" #endif #if defined(QT_DEBUG) && !defined(REKONQ_TEST) #include "test/rview_fake.h" #endif RekonqWindow::RekonqWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::RekonqWindow) { ui->setupUi(this); connect(ui->tabs, &TabBar::currentChanged, this, [this](RekonqView *view) { if (view == nullptr) { // last tab has been closed close(); return; } ui->views->setCurrentWidget(view); ui->urlBar->setCurrentView(view); }); 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(rekonq::HomePage, rekonq::CurrentTab); }); auto *actionFocusUrlBar = new QAction(this); actionFocusUrlBar->setShortcut({"F6"}); connect(actionFocusUrlBar, &QAction::triggered, this, [this]() { ui->urlBar->setFocus(); ui->urlBar->selectAll(); }); addAction(actionFocusUrlBar); // connect menu actions // file menu #if defined(QT_DEBUG) && !defined(REKONQ_TEST) { auto *actionNewDebugTab = new QAction(tr("New Debug Tab"), ui->menuFile); connect(actionNewDebugTab, &QAction::triggered, this, [this]() { addView(new RekonqView_fake(this)); }); ui->menuFile->insertAction(ui->actionNewTab, actionNewDebugTab); } #endif connect(ui->actionNewTab, &QAction::triggered, this, [this]() { loadUrl(rekonq::NewTabPage, 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 // history menu // bookmarks menu // settings menu #ifndef REKONQ_TEST connect(ui->actionSettings, &QAction::triggered, this, [this]() { (new SettingsDialog(Application::instance()->settings(), this))->show(); }); connect(ui->actionTaskManager, &QAction::triggered, this, [this]() { (new TaskManager(this))->show(); }); #endif // help menu connect(ui->actionAboutQt, &QAction::triggered, qApp, &QApplication::aboutQt); connect(ui->newTab, &QToolButton::clicked, ui->actionNewTab, &QAction::trigger); } RekonqWindow::~RekonqWindow() { delete ui; } void RekonqWindow::setupShortcuts(const RekonqSettings *settings) { for (auto *action : findChildren(QRegularExpression("^action.*"))) { const auto shortcut = settings->value(action->objectName()); if (shortcut.isValid()) action->setShortcut(shortcut.toString()); } }