From 40cf7edd21fadb77342e99b1bb6b7c87785bafa1 Mon Sep 17 00:00:00 2001 From: Mike Skec Date: Sat, 2 Jan 2021 19:19:37 +1100 Subject: favourites: implement #77, and add rename context menus --- src/mainwindow.cpp | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0a818c9..3315840 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -108,7 +108,6 @@ BrowserTab * MainWindow::addEmptyTab(bool focus_new, bool load_default) if(focus_new) { this->ui->browser_tabs->setCurrentIndex(index); - tab->focusUrlBar(); } if(load_default) { @@ -117,6 +116,10 @@ BrowserTab * MainWindow::addEmptyTab(bool focus_new, bool load_default) tab->navigateTo(QUrl("about:blank"), BrowserTab::DontPush); } + if(focus_new) { + tab->focusUrlBar(); + } + return tab; } @@ -239,12 +242,12 @@ void MainWindow::on_browser_tabs_currentChanged(int index) updateWindowTitle(); } -//void MainWindow::on_favourites_view_doubleClicked(const QModelIndex &index) -//{ -// if(auto url = kristall::favourites.getFavourite(index).destination; url.isValid()) { -// this->addNewTab(true, url); -// } -//} +void MainWindow::on_favourites_view_doubleClicked(const QModelIndex &index) +{ + if(auto url = kristall::favourites.getFavourite(index).destination; url.isValid()) { + this->addNewTab(true, url); + } +} void MainWindow::on_browser_tabs_tabCloseRequested(int index) { @@ -517,6 +520,34 @@ void MainWindow::on_favourites_view_customContextMenuRequested(const QPoint pos) menu.addSeparator(); + connect(menu.addAction("Rename"), &QAction::triggered, [this, idx]() { + QInputDialog dialog { this }; + + dialog.setInputMode(QInputDialog::TextInput); + dialog.setLabelText(tr("New name of this favourite:")); + dialog.setTextValue(kristall::favourites.getFavourite(idx).getTitle()); + + if (dialog.exec() != QDialog::Accepted) + return; + + kristall::favourites.editFavouriteTitle(idx, dialog.textValue()); + }); + + connect(menu.addAction("Relocate"), &QAction::triggered, [this, idx]() { + QInputDialog dialog { this }; + + dialog.setInputMode(QInputDialog::TextInput); + dialog.setLabelText(tr("Enter new location of this favourite:")); + dialog.setTextValue(kristall::favourites.getFavourite(idx).destination.toString(QUrl::FullyEncoded)); + + if (dialog.exec() != QDialog::Accepted) + return; + + kristall::favourites.editFavouriteDest(idx, QUrl(dialog.textValue())); + }); + + menu.addSeparator(); + connect(menu.addAction("Delete"), &QAction::triggered, [idx]() { kristall::favourites.destroyFavourite(idx); }); -- cgit v1.2.3