Коммит 61d20d30 создал по автору Коул Милена Ричардовна's avatar Коул Милена Ричардовна
Просмотр файлов

remove unnecessary actions

владелец f8e23b43
#include "mainwindow.h"
#include "webEngineWidgets/browser.h"
#include "webEngineWidgets/browserwindow.h"
#include "webEngineWidgets/tabwidget.h"
......
......@@ -75,14 +75,6 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
: m_browser(browser)
, m_profile(profile)
, m_tabWidget(new TabWidget(profile, this))
, m_progressBar(nullptr)
, m_historyBackAction(nullptr)
, m_historyForwardAction(nullptr)
, m_stopAction(nullptr)
, m_reloadAction(nullptr)
, m_stopReloadAction(nullptr)
, m_urlLineEdit(nullptr)
, m_favAction(nullptr)
{
setFocusPolicy(Qt::ClickFocus);
......@@ -105,7 +97,7 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
m_appTrayIcon->show();
/////////////////////////////////////
if (!forDevTools) {
/*if (!forDevTools) {
m_progressBar = new QProgressBar(this);
QToolBar *toolbar = createToolBar();
......@@ -115,7 +107,7 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
menuBar()->addMenu(createViewMenu(toolbar));
menuBar()->addMenu(createWindowMenu(m_tabWidget));
menuBar()->addMenu(createHelpMenu());
}
}*/
QWidget *centralWidget = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout;
......@@ -123,12 +115,6 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
layout->setContentsMargins(0, 0, 0, 0);
if (!forDevTools) {
addToolBarBreak();
m_progressBar->setMaximumHeight(1);
m_progressBar->setTextVisible(false);
m_progressBar->setStyleSheet(QStringLiteral("QProgressBar {border: 0px} QProgressBar::chunk {background-color: #da4453}"));
layout->addWidget(m_progressBar);
}
layout->addWidget(m_tabWidget);
......@@ -142,14 +128,7 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
});
connect(m_tabWidget, &TabWidget::loadProgress, this, &BrowserWindow::handleWebViewLoadProgress);
connect(m_tabWidget, &TabWidget::webActionEnabledChanged, this, &BrowserWindow::handleWebActionEnabledChanged);
connect(m_tabWidget, &TabWidget::urlChanged, [this](const QUrl &url) {
m_urlLineEdit->setText(url.toDisplayString());
});
connect(m_tabWidget, &TabWidget::favIconChanged, m_favAction, &QAction::setIcon);
connect(m_tabWidget, &TabWidget::devToolsRequested, this, &BrowserWindow::handleDevToolsRequested);
connect(m_urlLineEdit, &QLineEdit::returnPressed, [this]() {
m_tabWidget->setUrl(QUrl::fromUserInput(m_urlLineEdit->text()));
});
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
connect(m_tabWidget, &TabWidget::findTextFinished, this, &BrowserWindow::handleFindTextFinished);
#endif
......@@ -157,9 +136,6 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
QAction *focusUrlLineEditAction = new QAction(this);
addAction(focusUrlLineEditAction);
focusUrlLineEditAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_L));
connect(focusUrlLineEditAction, &QAction::triggered, this, [this] () {
m_urlLineEdit->setFocus(Qt::ShortcutFocusReason);
});
}
handleWebViewTitleChanged(QString());
......@@ -173,272 +149,10 @@ QSize BrowserWindow::sizeHint() const
return size;
}
QMenu *BrowserWindow::createFileMenu(TabWidget *tabWidget)
{
QMenu *fileMenu = new QMenu(tr("&File"));
fileMenu->addAction(tr("&New Window"), this, &BrowserWindow::handleNewWindowTriggered, QKeySequence::New);
fileMenu->addAction(tr("New &Incognito Window"), this, &BrowserWindow::handleNewIncognitoWindowTriggered);
QAction *newTabAction = new QAction(tr("New &Tab"), this);
newTabAction->setShortcuts(QKeySequence::AddTab);
connect(newTabAction, &QAction::triggered, this, [this]() {
m_tabWidget->createTab();
m_urlLineEdit->setFocus();
});
fileMenu->addAction(newTabAction);
fileMenu->addAction(tr("&Open File..."), this, &BrowserWindow::handleFileOpenTriggered, QKeySequence::Open);
fileMenu->addSeparator();
QAction *closeTabAction = new QAction(tr("&Close Tab"), this);
closeTabAction->setShortcuts(QKeySequence::Close);
connect(closeTabAction, &QAction::triggered, [tabWidget]() {
tabWidget->closeTab(tabWidget->currentIndex());
});
fileMenu->addAction(closeTabAction);
QAction *closeAction = new QAction(tr("&Quit"),this);
closeAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q));
connect(closeAction, &QAction::triggered, this, &QWidget::close);
fileMenu->addAction(closeAction);
connect(fileMenu, &QMenu::aboutToShow, [this, closeAction]() {
if (m_browser->windows().count() == 1)
closeAction->setText(tr("&Quit"));
else
closeAction->setText(tr("&Close Window"));
});
return fileMenu;
}
QMenu *BrowserWindow::createEditMenu()
{
QMenu *editMenu = new QMenu(tr("&Edit"));
QAction *findAction = editMenu->addAction(tr("&Find"));
findAction->setShortcuts(QKeySequence::Find);
connect(findAction, &QAction::triggered, this, &BrowserWindow::handleFindActionTriggered);
QAction *findNextAction = editMenu->addAction(tr("Find &Next"));
findNextAction->setShortcut(QKeySequence::FindNext);
connect(findNextAction, &QAction::triggered, [this]() {
if (!currentTab() || m_lastSearch.isEmpty())
return;
currentTab()->findText(m_lastSearch);
});
QAction *findPreviousAction = editMenu->addAction(tr("Find &Previous"));
findPreviousAction->setShortcut(QKeySequence::FindPrevious);
connect(findPreviousAction, &QAction::triggered, [this]() {
if (!currentTab() || m_lastSearch.isEmpty())
return;
currentTab()->findText(m_lastSearch, QWebEnginePage::FindBackward);
});
return editMenu;
}
QMenu *BrowserWindow::createViewMenu(QToolBar *toolbar)
{
QMenu *viewMenu = new QMenu(tr("&View"));
m_stopAction = viewMenu->addAction(tr("&Stop"));
QList<QKeySequence> shortcuts;
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Period));
shortcuts.append(Qt::Key_Escape);
m_stopAction->setShortcuts(shortcuts);
connect(m_stopAction, &QAction::triggered, [this]() {
m_tabWidget->triggerWebPageAction(QWebEnginePage::Stop);
});
m_reloadAction = viewMenu->addAction(tr("Reload Page"));
m_reloadAction->setShortcuts(QKeySequence::Refresh);
connect(m_reloadAction, &QAction::triggered, [this]() {
m_tabWidget->triggerWebPageAction(QWebEnginePage::Reload);
});
QAction *zoomIn = viewMenu->addAction(tr("Zoom &In"));
zoomIn->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Plus));
connect(zoomIn, &QAction::triggered, [this]() {
if (currentTab())
currentTab()->setZoomFactor(currentTab()->zoomFactor() + 0.1);
});
QAction *zoomOut = viewMenu->addAction(tr("Zoom &Out"));
zoomOut->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Minus));
connect(zoomOut, &QAction::triggered, [this]() {
if (currentTab())
currentTab()->setZoomFactor(currentTab()->zoomFactor() - 0.1);
});
QAction *resetZoom = viewMenu->addAction(tr("Reset &Zoom"));
resetZoom->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_0));
connect(resetZoom, &QAction::triggered, [this]() {
if (currentTab())
currentTab()->setZoomFactor(1.0);
});
viewMenu->addSeparator();
QAction *viewToolbarAction = new QAction(tr("Hide Toolbar"),this);
viewToolbarAction->setShortcut(tr("Ctrl+|"));
connect(viewToolbarAction, &QAction::triggered, [toolbar,viewToolbarAction]() {
if (toolbar->isVisible()) {
viewToolbarAction->setText(tr("Show Toolbar"));
toolbar->close();
} else {
viewToolbarAction->setText(tr("Hide Toolbar"));
toolbar->show();
}
});
viewMenu->addAction(viewToolbarAction);
QAction *viewStatusbarAction = new QAction(tr("Hide Status Bar"), this);
viewStatusbarAction->setShortcut(tr("Ctrl+/"));
connect(viewStatusbarAction, &QAction::triggered, [this, viewStatusbarAction]() {
if (statusBar()->isVisible()) {
viewStatusbarAction->setText(tr("Show Status Bar"));
statusBar()->close();
} else {
viewStatusbarAction->setText(tr("Hide Status Bar"));
statusBar()->show();
}
});
viewMenu->addAction(viewStatusbarAction);
return viewMenu;
}
QMenu *BrowserWindow::createWindowMenu(TabWidget *tabWidget)
{
QMenu *menu = new QMenu(tr("&Window"));
QAction *nextTabAction = new QAction(tr("Show Next Tab"), this);
QList<QKeySequence> shortcuts;
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceRight));
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageDown));
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketRight));
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Less));
nextTabAction->setShortcuts(shortcuts);
connect(nextTabAction, &QAction::triggered, tabWidget, &TabWidget::nextTab);
QAction *previousTabAction = new QAction(tr("Show Previous Tab"), this);
shortcuts.clear();
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BraceLeft));
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_PageUp));
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_BracketLeft));
shortcuts.append(QKeySequence(Qt::CTRL | Qt::Key_Greater));
previousTabAction->setShortcuts(shortcuts);
connect(previousTabAction, &QAction::triggered, tabWidget, &TabWidget::previousTab);
connect(menu, &QMenu::aboutToShow, [this, menu, nextTabAction, previousTabAction]() {
menu->clear();
menu->addAction(nextTabAction);
menu->addAction(previousTabAction);
menu->addSeparator();
QVector<BrowserWindow*> windows = m_browser->windows();
int index(-1);
for (auto window : windows) {
QAction *action = menu->addAction(window->windowTitle(), this, &BrowserWindow::handleShowWindowTriggered);
action->setData(++index);
action->setCheckable(true);
if (window == this)
action->setChecked(true);
}
});
return menu;
}
QMenu *BrowserWindow::createHelpMenu()
{
QMenu *helpMenu = new QMenu(tr("&Help"));
helpMenu->addAction(tr("About &Qt"), qApp, QApplication::aboutQt);
return helpMenu;
}
QToolBar *BrowserWindow::createToolBar()
{
QToolBar *navigationBar = new QToolBar(tr("Navigation"));
navigationBar->setMovable(false);
navigationBar->toggleViewAction()->setEnabled(false);
m_historyBackAction = new QAction(this);
QList<QKeySequence> backShortcuts = QKeySequence::keyBindings(QKeySequence::Back);
for (auto it = backShortcuts.begin(); it != backShortcuts.end();) {
// Chromium already handles navigate on backspace when appropriate.
if ((*it)[0] == Qt::Key_Backspace)
it = backShortcuts.erase(it);
else
++it;
}
// For some reason Qt doesn't bind the dedicated Back key to Back.
backShortcuts.append(QKeySequence(Qt::Key_Back));
m_historyBackAction->setShortcuts(backShortcuts);
m_historyBackAction->setIconVisibleInMenu(false);
m_historyBackAction->setIcon(QIcon(QStringLiteral(":go-previous.png")));
m_historyBackAction->setToolTip(tr("Go back in history"));
connect(m_historyBackAction, &QAction::triggered, [this]() {
m_tabWidget->triggerWebPageAction(QWebEnginePage::Back);
});
navigationBar->addAction(m_historyBackAction);
m_historyForwardAction = new QAction(this);
QList<QKeySequence> fwdShortcuts = QKeySequence::keyBindings(QKeySequence::Forward);
for (auto it = fwdShortcuts.begin(); it != fwdShortcuts.end();) {
if (((*it)[0] & Qt::Key_unknown) == Qt::Key_Backspace)
it = fwdShortcuts.erase(it);
else
++it;
}
fwdShortcuts.append(QKeySequence(Qt::Key_Forward));
m_historyForwardAction->setShortcuts(fwdShortcuts);
m_historyForwardAction->setIconVisibleInMenu(false);
m_historyForwardAction->setIcon(QIcon(QStringLiteral(":go-next.png")));
m_historyForwardAction->setToolTip(tr("Go forward in history"));
connect(m_historyForwardAction, &QAction::triggered, [this]() {
m_tabWidget->triggerWebPageAction(QWebEnginePage::Forward);
});
navigationBar->addAction(m_historyForwardAction);
m_stopReloadAction = new QAction(this);
connect(m_stopReloadAction, &QAction::triggered, [this]() {
m_tabWidget->triggerWebPageAction(QWebEnginePage::WebAction(m_stopReloadAction->data().toInt()));
});
navigationBar->addAction(m_stopReloadAction);
m_urlLineEdit = new QLineEdit(this);
m_favAction = new QAction(this);
m_urlLineEdit->addAction(m_favAction, QLineEdit::LeadingPosition);
m_urlLineEdit->setClearButtonEnabled(true);
navigationBar->addWidget(m_urlLineEdit);
auto downloadsAction = new QAction(this);
downloadsAction->setIcon(QIcon(QStringLiteral(":go-bottom.png")));
downloadsAction->setToolTip(tr("Show downloads"));
navigationBar->addAction(downloadsAction);
connect(downloadsAction, &QAction::triggered, [this]() {
m_browser->downloadManagerWidget().show();
});
return navigationBar;
}
void BrowserWindow::handleWebActionEnabledChanged(QWebEnginePage::WebAction action, bool enabled)
{
switch (action) {
case QWebEnginePage::Back:
m_historyBackAction->setEnabled(enabled);
break;
case QWebEnginePage::Forward:
m_historyForwardAction->setEnabled(enabled);
break;
case QWebEnginePage::Reload:
m_reloadAction->setEnabled(enabled);
break;
case QWebEnginePage::Stop:
m_stopAction->setEnabled(enabled);
break;
default:
qWarning("Unhandled webActionChanged signal");
}
}
void BrowserWindow::handleWebViewTitleChanged(const QString &title)
......@@ -456,13 +170,13 @@ void BrowserWindow::handleWebViewTitleChanged(const QString &title)
void BrowserWindow::handleNewWindowTriggered()
{
BrowserWindow *window = m_browser->createWindow();
window->m_urlLineEdit->setFocus();
//window->m_urlLineEdit->setFocus();
}
void BrowserWindow::handleNewIncognitoWindowTriggered()
{
BrowserWindow *window = m_browser->createWindow(/* offTheRecord: */ true);
window->m_urlLineEdit->setFocus();
//window->m_urlLineEdit->setFocus();
}
void BrowserWindow::handleFileOpenTriggered()
......@@ -476,23 +190,7 @@ void BrowserWindow::handleFileOpenTriggered()
void BrowserWindow::handleFindActionTriggered()
{
if (!currentTab())
return;
bool ok = false;
QString search = QInputDialog::getText(this, tr("Find"),
tr("Find:"), QLineEdit::Normal,
m_lastSearch, &ok);
if (ok && !search.isEmpty()) {
m_lastSearch = search;
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
currentTab()->findText(m_lastSearch);
#else
currentTab()->findText(m_lastSearch, 0, [this](bool found) {
if (!found)
statusBar()->showMessage(tr("\"%1\" not found.").arg(m_lastSearch));
});
#endif
}
}
TabWidget *BrowserWindow::tabWidget() const
......@@ -507,20 +205,6 @@ WebView *BrowserWindow::currentTab() const
void BrowserWindow::handleWebViewLoadProgress(int progress)
{
static QIcon stopIcon(QStringLiteral(":process-stop.png"));
static QIcon reloadIcon(QStringLiteral(":view-refresh.png"));
if (0 < progress && progress < 100) {
m_stopReloadAction->setData(QWebEnginePage::Stop);
m_stopReloadAction->setIcon(stopIcon);
m_stopReloadAction->setToolTip(tr("Stop loading the current page"));
m_progressBar->setValue(progress);
} else {
m_stopReloadAction->setData(QWebEnginePage::Reload);
m_stopReloadAction->setIcon(reloadIcon);
m_stopReloadAction->setToolTip(tr("Reload the current page"));
m_progressBar->setValue(0);
}
}
void BrowserWindow::handleShowWindowTriggered()
......@@ -542,13 +226,7 @@ void BrowserWindow::handleDevToolsRequested(QWebEnginePage *source)
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
void BrowserWindow::handleFindTextFinished(const QWebEngineFindTextResult &result)
{
if (result.numberOfMatches() == 0) {
statusBar()->showMessage(tr("\"%1\" not found.").arg(m_lastSearch));
} else {
statusBar()->showMessage(tr("\"%1\" found: %2/%3").arg(m_lastSearch,
QString::number(result.activeMatch()),
QString::number(result.numberOfMatches())));
}
}
#endif
......
......@@ -93,19 +93,12 @@ private slots:
void close();
void trayIconActivation();
private:
QMenu *createFileMenu(TabWidget *tabWidget);
QMenu *createEditMenu();
QMenu *createViewMenu(QToolBar *toolBar);
QMenu *createWindowMenu(TabWidget *tabWidget);
QMenu *createHelpMenu();
QToolBar *createToolBar();
private:
Browser *m_browser;
QWebEngineProfile *m_profile;
TabWidget *m_tabWidget;
QProgressBar *m_progressBar;
/*QProgressBar *m_progressBar;
QAction *m_historyBackAction;
QAction *m_historyForwardAction;
QAction *m_stopAction;
......@@ -113,7 +106,7 @@ private:
QAction *m_stopReloadAction;
QLineEdit *m_urlLineEdit;
QAction *m_favAction;
QString m_lastSearch;
QString m_lastSearch;*/
QSystemTrayIcon* m_appTrayIcon;
};
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать