Merge branch 'undo_crash' of https://github.com/rcorre/qutebrowser into rcorre-undo_crash

This commit is contained in:
Florian Bruhin 2016-04-25 19:19:08 +02:00
commit 32d64b1a9a
2 changed files with 20 additions and 4 deletions

View File

@ -310,6 +310,7 @@ class TabbedBrowser(tabwidget.TabWidget):
"""Undo removing of a tab."""
# Remove unused tab which may be created after the last tab is closed
last_close = config.get('tabs', 'last-close')
use_current_tab = False
if last_close in ['blank', 'startpage', 'default-page']:
only_one_tab_open = self.count() == 1
no_history = self.widget(0).history().count() == 1
@ -322,12 +323,17 @@ class TabbedBrowser(tabwidget.TabWidget):
last_close_urlstr = urls[last_close].toString().rstrip('/')
first_tab_urlstr = first_tab_url.toString().rstrip('/')
last_close_url_used = first_tab_urlstr == last_close_urlstr
if only_one_tab_open and no_history and last_close_url_used:
self.removeTab(0)
use_current_tab = (only_one_tab_open and no_history and
last_close_url_used)
url, history_data = self._undo_stack.pop()
newtab = self.tabopen(url, background=False)
if use_current_tab:
self.openurl(url, newtab=False)
newtab = self.widget(0)
else:
newtab = self.tabopen(url, background=False)
qtutils.deserialize(history_data, newtab.history())
@pyqtSlot('QUrl', bool)

View File

@ -635,6 +635,16 @@ Feature: Tab management
Then the following tabs should be open:
- data/hello.txt (active)
Scenario: Double-undo with single tab on last-close default page
Given I have a fresh instance
When I open about:blank
And I set tabs -> last-close to default-page
And I set general -> default-page to about:blank
And I run :undo
And I run :undo
Then the error "Nothing to undo!" should be shown
And the error "Nothing to undo!" should be shown
# last-close
Scenario: last-close = blank