diff -r 4e4c729e86cf -r 265c31231d9d E5Gui/E5TabWidget.py --- a/E5Gui/E5TabWidget.py Thu Sep 23 19:52:19 2010 +0200 +++ b/E5Gui/E5TabWidget.py Sat Sep 25 20:25:16 2010 +0200 @@ -128,7 +128,7 @@ """ customTabContextMenuRequested = pyqtSignal(QPoint, int) - def __init__(self, parent = None, dnd = False, tabBar = None): + def __init__(self, parent = None, dnd = False): """ Constructor @@ -137,29 +137,38 @@ """ QTabWidget.__init__(self, parent) - if tabBar is not None: - self.__tabBar = tabBar - self.setTabBar(self.__tabBar) - if dnd: - self.setMovable(True) - else: - if dnd: - if not hasattr(self, 'setMovable'): - self.__tabBar = E5DnDTabBar(self) - self.__tabBar.tabMoveRequested.connect(self.moveTab) - self.setTabBar(self.__tabBar) - else: - self.__tabBar = E5WheelTabBar(self) - self.setTabBar(self.__tabBar) - self.setMovable(True) + if dnd: + if not hasattr(self, 'setMovable'): + self.__tabBar = E5DnDTabBar(self) + self.__tabBar.tabMoveRequested.connect(self.moveTab) + self.setTabBar(self.__tabBar) else: self.__tabBar = E5WheelTabBar(self) self.setTabBar(self.__tabBar) + self.setMovable(True) + else: + self.__tabBar = E5WheelTabBar(self) + self.setTabBar(self.__tabBar) self.__lastCurrentIndex = -1 self.__currentIndex = -1 self.currentChanged.connect(self.__currentChanged) + def setCustomTabBar(self, dnd, tabBar): + """ + Public method to set a custom tab bar. + + @param dnd flag indicating the support for Drag & Drop (boolean) + @param tabBar reference to the tab bar to set (QTabBar) + """ + self.__tabBar = tabBar + self.setTabBar(self.__tabBar) + if dnd: + if isinstance(tabBar, E5DnDTabBar): + self.__tabBar.tabMoveRequested.connect(self.moveTab) + else: + self.setMovable(True) + def __currentChanged(self, index): """ Private slot to handle the currentChanged signal.