Merge branch 'jay/prompt-on-click' of https://github.com/jgkamat/qutebrowser
This commit is contained in:
commit
71ee64a974
@ -228,19 +228,6 @@ class CommandDispatcher:
|
|||||||
self._tabbed_browser.close_tab(tab)
|
self._tabbed_browser.close_tab(tab)
|
||||||
tabbar.setSelectionBehaviorOnRemove(old_selection_behavior)
|
tabbar.setSelectionBehaviorOnRemove(old_selection_behavior)
|
||||||
|
|
||||||
def _tab_close_prompt_if_pinned(self, tab, force, yes_action):
|
|
||||||
"""Helper method for tab_close.
|
|
||||||
|
|
||||||
If tab is pinned, prompt. If everything is good, run yes_action.
|
|
||||||
"""
|
|
||||||
if tab.data.pinned and not force:
|
|
||||||
message.confirm_async(
|
|
||||||
title='Pinned Tab',
|
|
||||||
text="Are you sure you want to close a pinned tab?",
|
|
||||||
yes_action=yes_action, default=False)
|
|
||||||
else:
|
|
||||||
yes_action()
|
|
||||||
|
|
||||||
@cmdutils.register(instance='command-dispatcher', scope='window')
|
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||||
@cmdutils.argument('count', count=True)
|
@cmdutils.argument('count', count=True)
|
||||||
def tab_close(self, prev=False, next_=False, opposite=False,
|
def tab_close(self, prev=False, next_=False, opposite=False,
|
||||||
@ -261,7 +248,7 @@ class CommandDispatcher:
|
|||||||
close = functools.partial(self._tab_close, tab, prev,
|
close = functools.partial(self._tab_close, tab, prev,
|
||||||
next_, opposite)
|
next_, opposite)
|
||||||
|
|
||||||
self._tab_close_prompt_if_pinned(tab, force, close)
|
self._tabbed_browser.tab_close_prompt_if_pinned(tab, force, close)
|
||||||
|
|
||||||
@cmdutils.register(instance='command-dispatcher', scope='window',
|
@cmdutils.register(instance='command-dispatcher', scope='window',
|
||||||
name='tab-pin')
|
name='tab-pin')
|
||||||
@ -926,8 +913,9 @@ class CommandDispatcher:
|
|||||||
if not force:
|
if not force:
|
||||||
for i, tab in enumerate(self._tabbed_browser.widgets()):
|
for i, tab in enumerate(self._tabbed_browser.widgets()):
|
||||||
if _to_close(i) and tab.data.pinned:
|
if _to_close(i) and tab.data.pinned:
|
||||||
self._tab_close_prompt_if_pinned(
|
self._tabbed_browser.tab_close_prompt_if_pinned(
|
||||||
tab, force,
|
tab,
|
||||||
|
force,
|
||||||
lambda: self.tab_only(
|
lambda: self.tab_only(
|
||||||
prev=prev, next_=next_, force=True))
|
prev=prev, next_=next_, force=True))
|
||||||
return
|
return
|
||||||
|
@ -232,6 +232,19 @@ class TabbedBrowser(tabwidget.TabWidget):
|
|||||||
for tab in self.widgets():
|
for tab in self.widgets():
|
||||||
self._remove_tab(tab)
|
self._remove_tab(tab)
|
||||||
|
|
||||||
|
def tab_close_prompt_if_pinned(self, tab, force, yes_action):
|
||||||
|
"""Helper method for tab_close.
|
||||||
|
|
||||||
|
If tab is pinned, prompt. If everything is good, run yes_action.
|
||||||
|
"""
|
||||||
|
if tab.data.pinned and not force:
|
||||||
|
message.confirm_async(
|
||||||
|
title='Pinned Tab',
|
||||||
|
text="Are you sure you want to close a pinned tab?",
|
||||||
|
yes_action=yes_action, default=False)
|
||||||
|
else:
|
||||||
|
yes_action()
|
||||||
|
|
||||||
def close_tab(self, tab, *, add_undo=True):
|
def close_tab(self, tab, *, add_undo=True):
|
||||||
"""Close a tab.
|
"""Close a tab.
|
||||||
|
|
||||||
@ -366,7 +379,8 @@ class TabbedBrowser(tabwidget.TabWidget):
|
|||||||
log.webview.debug("Got invalid tab {} for index {}!".format(
|
log.webview.debug("Got invalid tab {} for index {}!".format(
|
||||||
tab, idx))
|
tab, idx))
|
||||||
return
|
return
|
||||||
self.close_tab(tab)
|
self.tab_close_prompt_if_pinned(
|
||||||
|
tab, False, lambda: self.close_tab(tab))
|
||||||
|
|
||||||
@pyqtSlot(browsertab.AbstractTab)
|
@pyqtSlot(browsertab.AbstractTab)
|
||||||
def on_window_close_requested(self, widget):
|
def on_window_close_requested(self, widget):
|
||||||
|
Loading…
Reference in New Issue
Block a user