From b82ecad5462eec767e2e3216e9e96dfebf04f1cc Mon Sep 17 00:00:00 2001 From: Mike Skec Date: Wed, 17 Feb 2021 15:19:47 +1100 Subject: Add basic root/parent navigation options to menu, with shortcuts --- src/mainwindow.cpp | 29 +++++++++++++++++++++++++++++ src/mainwindow.hpp | 4 ++++ src/mainwindow.ui | 24 ++++++++++++++++++++++++ 3 files changed, 57 insertions(+) (limited to 'src') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d656867..d2623eb 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -482,6 +482,35 @@ void MainWindow::on_actionBackward_triggered() } } +void MainWindow::on_actionRoot_triggered() +{ + BrowserTab * tab = this->curTab(); + if(tab != nullptr && !tab->is_internal_location) { + QUrl url = tab->current_location; + url.setPath("/"); + tab->navigateTo(url, BrowserTab::PushImmediate); + } +} + +void MainWindow::on_actionParent_triggered() +{ + BrowserTab * tab = this->curTab(); + if(tab != nullptr && !tab->is_internal_location) { + QUrl url = tab->current_location; + + // Make sure we have a trailing slash, or else + // QUrl::resolved will not work + if (!url.path().endsWith("/")) + { + url.setPath(url.path() + "/"); + } + + // Go up one directory + url = url.resolved(QUrl{".."}); + tab->navigateTo(url, BrowserTab::PushImmediate); + } +} + void MainWindow::on_actionRefresh_triggered() { BrowserTab * tab = this->curTab(); diff --git a/src/mainwindow.hpp b/src/mainwindow.hpp index 7602ac5..a252daa 100644 --- a/src/mainwindow.hpp +++ b/src/mainwindow.hpp @@ -70,6 +70,10 @@ private slots: void on_actionBackward_triggered(); + void on_actionRoot_triggered(); + + void on_actionParent_triggered(); + void on_actionRefresh_triggered(); void on_actionAbout_Qt_triggered(); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index bc503ca..5c11e56 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -222,6 +222,8 @@ + + @@ -310,6 +312,28 @@ Alt+Right + + + Root + + + Go to the root directory (/) + + + Ctrl+/ + + + + + Parent + + + Go to the parent directory + + + Alt+Up + + -- cgit v1.2.3