diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-01-02 19:19:37 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-01-02 12:41:49 +0100 |
| commit | 40cf7edd21fadb77342e99b1bb6b7c87785bafa1 (patch) | |
| tree | 73675c042b4da725ff20119c86c8b00fb956c864 /src/mainwindow.cpp | |
| parent | 90e20d2c047ae1d9527e15267e62dbc8349e7bb3 (diff) | |
| download | kristall-40cf7edd21fadb77342e99b1bb6b7c87785bafa1.tar.gz | |
favourites: implement #77, and add rename context menus
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 45 |
1 files changed, 38 insertions, 7 deletions
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); }); |
