Abstract TabWidget away from QtWidgets, so can be used for QtQuick

This commit is contained in:
Sergio Martins
2019-08-07 21:00:49 +01:00
parent 0ba3371c6c
commit 89757def76
14 changed files with 237 additions and 121 deletions

View File

@@ -26,12 +26,37 @@
*/
#include "TabWidgetWidget_p.h"
#include "Frame_p.h"
#include "Config.h"
using namespace KDDockWidgets;
TabWidgetWidget::TabWidgetWidget(QWidget *parent)
: TabWidget(parent)
TabWidgetWidget::TabWidgetWidget(Frame *parent)
: QTabWidget(parent)
, TabWidget(this, parent)
, m_tabBar(Config::self().frameWorkWidgetFactory()->createTabBar(this))
{
setTabBar(m_tabBar);
}
TabBar *TabWidgetWidget::tabBar() const
{
return m_tabBar;
}
int TabWidgetWidget::numDockWidgets() const
{
return count();
}
void TabWidgetWidget::removeDockWidget(DockWidgetBase *dw)
{
removeTab(indexOf(dw));
}
int TabWidgetWidget::indexOfDockWidget(DockWidgetBase *dw) const
{
return indexOf(dw);
}
void TabWidgetWidget::paintEvent(QPaintEvent *p)
@@ -41,3 +66,49 @@ void TabWidgetWidget::paintEvent(QPaintEvent *p)
if (count() > 1)
QTabWidget::paintEvent(p);
}
void TabWidgetWidget::tabInserted(int)
{
onTabInserted();
}
void TabWidgetWidget::tabRemoved(int)
{
onTabRemoved();
}
bool TabWidgetWidget::isPositionDraggable(QPoint p) const
{
if (tabPosition() != QTabWidget::North) {
qWarning() << Q_FUNC_INFO << "Not implemented yet. Only North is supported";
return false;
}
return p.y() >= 0 && p.y() <= QTabWidget::tabBar()->height();
}
void TabWidgetWidget::setCurrentDockWidget(int index)
{
setCurrentIndex(index);
}
void TabWidgetWidget::insertDockWidget(int index, DockWidgetBase *dw,
const QIcon &icon, const QString &title)
{
insertTab(index, dw, icon, title);
}
void TabWidgetWidget::setTabBarAutoHide(bool b)
{
QTabWidget::setTabBarAutoHide(b);
}
DockWidgetBase *TabWidgetWidget::dockwidgetAt(int index) const
{
return qobject_cast<DockWidgetBase *>(widget(index));
}
int TabWidgetWidget::currentIndex() const
{
return QTabWidget::currentIndex();
}