diff --git a/qutebrowser/app.py b/qutebrowser/app.py index 0ad1f3dae..79a1a03c6 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -57,7 +57,6 @@ class Application(QApplication): meta_registry: The object registry of object registries. mainwindow: The MainWindow QWidget. config: The main ConfigManager - cmd_history: The "cmd_history" LineConfigParser instance. _args: ArgumentParser instance. _commandrunner: The main CommandRunner instance. _debugconsole: The ConsoleWidget for debugging. @@ -95,7 +94,6 @@ class Application(QApplication): self._keyparsers = None self._crashdlg = None self._crashlogfile = None - self.cmd_history = None self.config = None self.keyconfig = None @@ -207,8 +205,9 @@ class Application(QApplication): sys.exit(1) stateconfig = iniparsers.ReadWriteConfigParser(confdir, 'state') self.registry['stateconfig'] = stateconfig - self.cmd_history = lineparser.LineConfigParser( + cmd_history = lineparser.LineConfigParser( confdir, 'cmd_history', ('completion', 'history-length')) + self.registry['cmd_history'] = cmd_history def _init_modes(self): """Inizialize the mode manager and the keyparsers.""" @@ -383,6 +382,7 @@ class Application(QApplication): messagebridge = self.registry['messagebridge'] modeman = self.registry['modeman'] prompter = self.registry['prompter'] + cmd_history = self.registry['cmd_history'] # misc self.lastWindowClosed.connect(self.shutdown) @@ -422,7 +422,7 @@ class Application(QApplication): # config self.config.style_changed.connect(style.get_stylesheet.cache_clear) - for obj in (tabs, completion, mainwin, self.cmd_history, + for obj in (tabs, completion, mainwin, cmd_history, websettings, modeman, status, status.txt): self.config.changed.connect(obj.on_config_changed) for obj in kp.values(): @@ -774,8 +774,12 @@ class Application(QApplication): to_save.append(("keyconfig", self.keyconfig.save)) to_save += [("window geometry", self._save_geometry), ("quickmarks", quickmarks.save)] - if hasattr(self, 'cmd_history'): - to_save.append(("command history", self.cmd_history.save)) + try: + cmd_history = self.registry['cmd_history'] + except KeyError: + pass + else: + to_save.append(("command history", cmd_history.save)) try: stateconfig = self.registry['stateconfig'] except KeyError: diff --git a/qutebrowser/widgets/statusbar/command.py b/qutebrowser/widgets/statusbar/command.py index e199d5a22..cc6d75525 100644 --- a/qutebrowser/widgets/statusbar/command.py +++ b/qutebrowser/widgets/statusbar/command.py @@ -20,7 +20,7 @@ """The commandline in the statusbar.""" from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl -from PyQt5.QtWidgets import QSizePolicy, QApplication +from PyQt5.QtWidgets import QSizePolicy from qutebrowser.keyinput import modeman, modeparsers from qutebrowser.commands import runners, cmdexc, cmdutils @@ -74,7 +74,7 @@ class Command(misc.MinimalLineEditMixin, misc.CommandLineEdit): misc.CommandLineEdit.__init__(self, parent) misc.MinimalLineEditMixin.__init__(self) self.cursor_part = 0 - self.history.history = QApplication.instance().cmd_history.data + self.history.history = utils.get_object('cmd_history').data self._empty_item_idx = None self.textEdited.connect(self.on_text_edited) self.cursorPositionChanged.connect(self._update_cursor_part)