diff options
Diffstat (limited to 'qutebrowser/browser/commands.py')
-rw-r--r-- | qutebrowser/browser/commands.py | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 09f834503..d7212d6ce 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1,19 +1,6 @@ -# Copyright 2014-2021 Florian Bruhin (The Compiler) <mail@qutebrowser.org> +# SPDX-FileCopyrightText: Florian Bruhin (The Compiler) <mail@qutebrowser.org> # -# This file is part of qutebrowser. -# -# qutebrowser is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# qutebrowser is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>. +# SPDX-License-Identifier: GPL-3.0-or-later """Command dispatcher for TabbedBrowser.""" @@ -1420,21 +1407,31 @@ class CommandDispatcher: @cmdutils.register(instance='command-dispatcher', scope='window', maxsplit=0) @cmdutils.argument('name', completion=miscmodels.quickmark) - def quickmark_del(self, name=None): + def quickmark_del(self, name=None, all_=False): """Delete a quickmark. Args: name: The name of the quickmark to delete. If not given, delete the quickmark for the current page (choosing one arbitrarily if there are more than one). + all_: Delete all quickmarks. """ quickmark_manager = objreg.get('quickmark-manager') + + if all_: + if name is not None: + raise cmdutils.CommandError("Cannot specify name and --all") + quickmark_manager.clear() + message.info("Quickmarks cleared.") + return + if name is None: url = self._current_url() try: name = quickmark_manager.get_by_qurl(url) except urlmarks.DoesNotExistError as e: raise cmdutils.CommandError(str(e)) + try: quickmark_manager.delete(name) except KeyError: @@ -1505,18 +1502,28 @@ class CommandDispatcher: @cmdutils.register(instance='command-dispatcher', scope='window', maxsplit=0) @cmdutils.argument('url', completion=miscmodels.bookmark) - def bookmark_del(self, url=None): + def bookmark_del(self, url=None, all_=False): """Delete a bookmark. Args: url: The url of the bookmark to delete. If not given, use the current page's url. + all_: If given, delete all bookmarks. """ + bookmark_manager = objreg.get('bookmark-manager') + if all_: + if url is not None: + raise cmdutils.CommandError("Cannot specify url and --all") + bookmark_manager.clear() + message.info("Bookmarks cleared.") + return + if url is None: url = self._current_url().toString(QUrl.UrlFormattingOption.RemovePassword | QUrl.ComponentFormattingOption.FullyEncoded) + try: - objreg.get('bookmark-manager').delete(url) + bookmark_manager.delete(url) except KeyError: raise cmdutils.CommandError("Bookmark '{}' not found!".format(url)) message.info("Removed bookmark {}".format(url)) @@ -1769,8 +1776,7 @@ class CommandDispatcher: def _search_navigation_cb(self, result): """Callback called from :search-prev/next.""" if result == browsertab.SearchNavigationResult.not_found: - # FIXME check if this actually can happen... - message.warning("Search result vanished...") + self._search_cb(found=False, text=self._tabbed_browser.search_text) return elif result == browsertab.SearchNavigationResult.found: return |