Add undo command

This commit is contained in:
Florian Bruhin 2014-01-17 23:17:24 +01:00
parent 321c00bbfb
commit ff938fc0d5
3 changed files with 15 additions and 0 deletions

View File

@ -56,6 +56,7 @@ def main():
cmds['print'].signal.connect(mw.tabs.print_act)
cmds['scrolldown'].signal.connect(mw.tabs.scroll_down_act)
cmds['scrollup'].signal.connect(mw.tabs.scroll_up_act)
cmds['undo'].signal.connect(mw.tabs.undo_close)
kp.from_cmd_dict(cmds)
mw.show()

View File

@ -64,3 +64,8 @@ class ScrollUp(Command):
nargs = 0
key = 'k'
signal = pyqtSignal()
class Undo(Command):
nargs = 0
key = 'u'
signal = pyqtSignal()

View File

@ -7,6 +7,7 @@ import logging
class TabbedBrowser(TabWidget):
tabs = []
cur_progress = pyqtSignal(int)
url_stack = []
def __init__(self, parent):
super().__init__(parent)
@ -29,10 +30,18 @@ class TabbedBrowser(TabWidget):
tab = self.tabs[self.currentIndex()]
tab.openurl(url)
@pyqtSlot()
def undo_close(self):
if self.url_stack:
self.tabopen(self.url_stack.pop())
@pyqtSlot()
def close_act(self):
if len(self.tabs) > 1:
idx = self.currentIndex()
# FIXME maybe we should add the QUrl object here and deal with QUrls everywhere
# FIXME maybe we actually should store the webview objects here
self.url_stack.append(self.tabs[idx].url().url())
self.tabs.pop(idx)
self.removeTab(idx)
else: