summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Torstensson <oed3933@gmail.com>2015-04-09 11:39:41 +0200
committerJoel Torstensson <oed3933@gmail.com>2015-04-09 11:47:35 +0200
commitcc2c7c09ea60ea2ff3eed1b0a42ba82356f1749e (patch)
tree1499bca4a8916fc1b50f256bab8878398796ba4b
parent2fa66ba2500b1a4a12049b2072dcde938cf66831 (diff)
downloadqutebrowser-cc2c7c09ea60ea2ff3eed1b0a42ba82356f1749e.tar.gz
qutebrowser-cc2c7c09ea60ea2ff3eed1b0a42ba82356f1749e.zip
Changing position without restart now possible.
-rw-r--r--qutebrowser/config/configdata.py8
-rw-r--r--qutebrowser/config/configtypes.py7
-rw-r--r--qutebrowser/mainwindow/mainwindow.py52
3 files changed, 40 insertions, 27 deletions
diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py
index b03a4f52d..35c7dbaea 100644
--- a/qutebrowser/config/configdata.py
+++ b/qutebrowser/config/configdata.py
@@ -235,10 +235,9 @@ def data(readonly=False):
SettingValue(typ.Perc(), '100%'),
"The default zoom level."),
- ('downloads-at-top',
- SettingValue(typ.Bool(), 'true'),
- "Whether to show downloaded files at top, "
- "false will show at bottom."),
+ ('downloads-position',
+ SettingValue(typ.VerticalPosition(), 'north'),
+ "Where to show the downloaded files."),
('message-timeout',
SettingValue(typ.Int(), '2000'),
@@ -1011,7 +1010,6 @@ def data(readonly=False):
DATA = data(readonly=True)
-
KEY_FIRST_COMMENT = """
# vim: ft=conf
#
diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py
index b0523f5f4..55159d538 100644
--- a/qutebrowser/config/configtypes.py
+++ b/qutebrowser/config/configtypes.py
@@ -1264,6 +1264,13 @@ class Position(BaseType):
return self.MAPPING[value]
+class VerticalPosition(BaseType):
+
+ """The position of the download bar."""
+
+ valid_values = ValidValues('north', 'south')
+
+
class UrlList(List):
"""A list of URLs."""
diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py
index 8f48c9155..ff50ab354 100644
--- a/qutebrowser/mainwindow/mainwindow.py
+++ b/qutebrowser/mainwindow/mainwindow.py
@@ -90,18 +90,24 @@ class MainWindow(QWidget):
self._vbox.setContentsMargins(0, 0, 0, 0)
self._vbox.setSpacing(0)
- if config.get('ui', 'downloads-at-top'):
- self._init_downloadview()
- self._init_tabbed_browser()
- else:
- self._init_tabbed_browser()
- self._init_downloadview()
+ log.init.debug("Initializing downloads...")
+ download_manager = downloads.DownloadManager(self.win_id, self)
+ objreg.register('download-manager', download_manager, scope='window',
+ window=self.win_id)
+
+ self._downloadview = downloadview.DownloadView(self.win_id)
+ self._downloadview.show()
+
+ self._tabbed_browser = tabbedbrowser.TabbedBrowser(self.win_id)
+ objreg.register('tabbed-browser', self._tabbed_browser, scope='window',
+ window=self.win_id)
# We need to set an explicit parent for StatusBar because it does some
# show/hide magic immediately which would mean it'd show up as a
# window.
self.status = bar.StatusBar(self.win_id, parent=self)
- self._vbox.addWidget(self.status)
+
+ self._add_widgets()
self._completion = completionwidget.CompletionView(self.win_id, self)
@@ -134,22 +140,24 @@ class MainWindow(QWidget):
"""Resize the completion if related config options changed."""
if section == 'completion' and option in ('height', 'shrink'):
self.resize_completion()
+ elif section == 'ui' and option == 'downloads-position':
+ self._add_widgets()
+
+ def _add_widgets(self):
+ self._vbox.removeWidget(self._tabbed_browser)
+ self._vbox.removeWidget(self._downloadview)
+ self._vbox.removeWidget(self.status)
+ position = config.get('ui', 'downloads-position')
+ if position == 'north':
+ self._vbox.addWidget(self._downloadview)
+ self._vbox.addWidget(self._tabbed_browser)
+ elif position == 'south':
+ self._vbox.addWidget(self._tabbed_browser)
+ self._vbox.addWidget(self._downloadview)
+ else:
+ raise ValueError("Invalid position {}!".format(position))
+ self._vbox.addWidget(self.status)
- def _init_downloadview(self):
- log.init.debug("Initializing downloads...")
- download_manager = downloads.DownloadManager(self.win_id, self)
- objreg.register('download-manager', download_manager, scope='window',
- window=self.win_id)
-
- self._downloadview = downloadview.DownloadView(self.win_id)
- self._vbox.addWidget(self._downloadview)
- self._downloadview.show()
-
- def _init_tabbed_browser(self):
- self._tabbed_browser = tabbedbrowser.TabbedBrowser(self.win_id)
- objreg.register('tabbed-browser', self._tabbed_browser, scope='window',
- window=self.win_id)
- self._vbox.addWidget(self._tabbed_browser)
def _load_state_geometry(self):
"""Load the geometry from the state file."""