/* ============================================================ * 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 #include #ifndef REKONQ_TEST #include "application.hpp" #include "bookmarks/bookmarkstreemodel.hpp" #include "settings/settingsdialog.h" #include "taskmanager.h" #include #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); #ifndef REKONQ_TEST ui->bookmarksPanel->setModel(Application::instance()->bookmarks()); ui->bookmarksToolBar->setModel(Application::instance()->bookmarks()); ui->menuBookmarks->setModel(Application::instance()->bookmarks()); #endif connect(ui->navigationToolBar, &NavigationToolBar::loadUrl, this, &RekonqWindow::loadDefaultUrl); connect(ui->navigationToolBar, &NavigationToolBar::loadRequestedUrl, this, &RekonqWindow::loadRequestedUrl); connect(ui->bookmarksPanel, &BookmarksPanel::loadUrl, this, &RekonqWindow::loadRequestedUrl); connect(ui->bookmarksToolBar, &BookmarkToolBar::loadUrl, this, &RekonqWindow::loadRequestedUrl); connect(ui->menuBookmarks, &BookmarksMenu::loadUrl, this, &RekonqWindow::loadRequestedUrl); // ::setCurrentView connect(ui->tabToolBar, &TabToolBar::currentViewChanged, this, [this](RekonqView *view) { if (view == nullptr) { // last tab has been closed close(); return; } ui->views->setCurrentWidget(view); ui->navigationToolBar->setCurrentView(view); }); connect(ui->tabToolBar, &TabToolBar::tabClosed, this, [this](RekonqView *view) { ui->views->removeWidget(view); }); // 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]() { loadDefaultUrl(rekonq::NewTabPage, rekonq::NewFocusedTab); }); connect(ui->actionCloseTab, &QAction::triggered, ui->tabToolBar, &TabToolBar::closeCurrentTab); connect(ui->actionQuit, &QAction::triggered, qApp, &QApplication::quit); // edit menu // view menu // history menu // bookmarks menu connect(ui->actionShowBookmarksPanel, &QAction::triggered, this, &RekonqWindow::showBookmarksPanel); // 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); } RekonqWindow::~RekonqWindow() { delete ui; } void RekonqWindow::setupShortcuts(RekonqSettings *settings) { settings->beginGroup("Shortcuts"); for (auto *action : findChildren(QRegularExpression("^action.*"))) { const auto shortcut = settings->value(action->objectName()); if (!shortcut.isNull()) { action->setShortcut(shortcut.toString()); #ifndef REKONQ_TEST spdlog::debug("Set shortcut {} -> {}", qUtf8Printable(shortcut.toString()), qUtf8Printable(action->objectName())); #endif } } settings->endGroup(); } void RekonqWindow::showBookmarksPanel(bool on) { ui->bookmarksPanel->setVisible(on); }