Make tabbar configurable.

This commit is contained in:
Florian Bruhin 2014-02-13 08:56:01 +01:00
parent d7f58015bb
commit 5b0e24b799
2 changed files with 37 additions and 4 deletions

View File

@ -44,6 +44,15 @@ startpage = http://www.duckduckgo.com/
addressbar_dns_lookup = false
auto_search = true
[tabbar]
movable = true
closebuttons = false
scrollbuttons = false
# north, south, east, west
position = north
# previous, left, right
select_on_remove = previous
[searchengines]
DEFAULT = ${duckduckgo}
duckduckgo = https://duckduckgo.com/?q={}

View File

@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
from PyQt5.QtWidgets import QTabWidget, QSizePolicy
from PyQt5.QtWidgets import QTabWidget, QTabBar, QSizePolicy
from PyQt5.QtCore import Qt
import qutebrowser.utils.config as config
@ -60,12 +60,36 @@ class TabWidget(QTabWidget):
"""
def __init__(self, parent):
# FIXME export some settings (TabPosition, tabsClosable,
# usesScrollButtons)
super().__init__(parent)
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.setStyle(Style(self.style()))
self.setStyleSheet(config.get_stylesheet(self._stylesheet))
self.setDocumentMode(True)
self.setMovable(True)
self.setElideMode(Qt.ElideRight)
self._init_config()
def _init_config(self):
"""Initialize attributes based on the config."""
position_conv = {
'north': QTabWidget.North,
'south': QTabWidget.South,
'west': QTabWidget.West,
'east': QTabWidget.East,
}
select_conv = {
'left': QTabBar.SelectLeftTab,
'right': QTabBar.SelectRightTab,
'previous': QTabBar.SelectPreviousTab,
}
self.setMovable(config.config.getboolean('tabbar', 'movable'))
self.setTabsClosable(config.config.getboolean('tabbar',
'closebuttons'))
self.setUsesScrollButtons(config.config.getboolean('tabbar',
'scrollbuttons'))
posstr = config.config.get('tabbar', 'position').lower()
selstr = config.config.get('tabbar', 'select_on_remove').lower()
try:
self.setTabPosition(position_conv[posstr])
self.tabBar().setSelectionBehaviorOnRemove(select_conv[selstr])
except KeyError:
pass