mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2025-03-16 02:59:51 +08:00
Moved SideBarLocation enum out of CDockWidgetSideTab into global ads namespace
This commit is contained in:
parent
822ad48152
commit
c94155fb06
@ -650,7 +650,7 @@ CMainWindow::CMainWindow(QWidget *parent) :
|
|||||||
|
|
||||||
// uncomment the following line to enable focus highlighting of the dock
|
// uncomment the following line to enable focus highlighting of the dock
|
||||||
// widget that has the focus
|
// widget that has the focus
|
||||||
CDockManager::setConfigFlag(CDockManager::FocusHighlighting, true);
|
//CDockManager::setConfigFlag(CDockManager::FocusHighlighting, true);
|
||||||
|
|
||||||
// uncomment if you would like to enable dock widget auto hiding
|
// uncomment if you would like to enable dock widget auto hiding
|
||||||
CDockManager::setConfigFlag(CDockManager::DefaultAutoHideConfig, true);
|
CDockManager::setConfigFlag(CDockManager::DefaultAutoHideConfig, true);
|
||||||
@ -748,7 +748,7 @@ void CMainWindow::onViewToggled(bool Open)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << DockWidget->objectName() << " viewToggled(" << Open << ")";
|
//qDebug() << DockWidget->objectName() << " viewToggled(" << Open << ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ CMainWindow::CMainWindow(QWidget *parent)
|
|||||||
TableDockWidget->resize(250, 150);
|
TableDockWidget->resize(250, 150);
|
||||||
TableDockWidget->setMinimumSize(200,150);
|
TableDockWidget->setMinimumSize(200,150);
|
||||||
TableDockWidget->setDefaultAutoHideDockProportion(0.5);
|
TableDockWidget->setDefaultAutoHideDockProportion(0.5);
|
||||||
DockManager->addAutoHideDockWidget(CDockWidgetSideTab::SideTabBarArea::Left, TableDockWidget, CDockWidget::Last);
|
DockManager->addAutoHideDockWidget(SideBarLocation::Left, TableDockWidget, CDockWidget::Last);
|
||||||
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
||||||
|
|
||||||
table = new QTableWidget();
|
table = new QTableWidget();
|
||||||
@ -58,7 +58,7 @@ CMainWindow::CMainWindow(QWidget *parent)
|
|||||||
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
||||||
TableDockWidget->resize(250, 150);
|
TableDockWidget->resize(250, 150);
|
||||||
TableDockWidget->setMinimumSize(200,150);
|
TableDockWidget->setMinimumSize(200,150);
|
||||||
DockManager->addAutoHideDockWidget(CDockWidgetSideTab::SideTabBarArea::Left, TableDockWidget, CDockWidget::Last);
|
DockManager->addAutoHideDockWidget(SideBarLocation::Left, TableDockWidget, CDockWidget::Last);
|
||||||
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
||||||
|
|
||||||
QTableWidget* propertiesTable = new QTableWidget();
|
QTableWidget* propertiesTable = new QTableWidget();
|
||||||
|
@ -50,14 +50,14 @@ namespace ads
|
|||||||
static const int ResizeMargin = 4;
|
static const int ResizeMargin = 4;
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
bool static isHorizontalArea(CDockWidgetSideTab::SideTabBarArea Area)
|
bool static isHorizontalArea(SideBarLocation Area)
|
||||||
{
|
{
|
||||||
switch (Area)
|
switch (Area)
|
||||||
{
|
{
|
||||||
case CDockWidgetSideTab::Top:
|
case SideBarLocation::Top:
|
||||||
case CDockWidgetSideTab::Bottom: return true;
|
case SideBarLocation::Bottom: return true;
|
||||||
case CDockWidgetSideTab::Left:
|
case SideBarLocation::Left:
|
||||||
case CDockWidgetSideTab::Right: return false;
|
case SideBarLocation::Right: return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -65,14 +65,14 @@ bool static isHorizontalArea(CDockWidgetSideTab::SideTabBarArea Area)
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
Qt::Edge static edgeFromSideTabBarArea(CDockWidgetSideTab::SideTabBarArea Area)
|
Qt::Edge static edgeFromSideTabBarArea(SideBarLocation Area)
|
||||||
{
|
{
|
||||||
switch (Area)
|
switch (Area)
|
||||||
{
|
{
|
||||||
case CDockWidgetSideTab::Top: return Qt::BottomEdge;
|
case SideBarLocation::Top: return Qt::BottomEdge;
|
||||||
case CDockWidgetSideTab::Bottom: return Qt::TopEdge;
|
case SideBarLocation::Bottom: return Qt::TopEdge;
|
||||||
case CDockWidgetSideTab::Left: return Qt::RightEdge;
|
case SideBarLocation::Left: return Qt::RightEdge;
|
||||||
case CDockWidgetSideTab::Right: return Qt::LeftEdge;
|
case SideBarLocation::Right: return Qt::LeftEdge;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Qt::LeftEdge;
|
return Qt::LeftEdge;
|
||||||
@ -80,15 +80,15 @@ Qt::Edge static edgeFromSideTabBarArea(CDockWidgetSideTab::SideTabBarArea Area)
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
int resizeHandleLayoutPosition(CDockWidgetSideTab::SideTabBarArea Area)
|
int resizeHandleLayoutPosition(SideBarLocation Area)
|
||||||
{
|
{
|
||||||
switch (Area)
|
switch (Area)
|
||||||
{
|
{
|
||||||
case CDockWidgetSideTab::Bottom:
|
case SideBarLocation::Bottom:
|
||||||
case CDockWidgetSideTab::Right: return 0;
|
case SideBarLocation::Right: return 0;
|
||||||
|
|
||||||
case CDockWidgetSideTab::Top:
|
case SideBarLocation::Top:
|
||||||
case CDockWidgetSideTab::Left: return 1;
|
case SideBarLocation::Left: return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -104,7 +104,7 @@ struct AutoHideDockContainerPrivate
|
|||||||
CDockAreaWidget* DockArea{nullptr};
|
CDockAreaWidget* DockArea{nullptr};
|
||||||
CDockWidget* DockWidget{nullptr};
|
CDockWidget* DockWidget{nullptr};
|
||||||
QPointer<CDockManager> DockManager{nullptr};
|
QPointer<CDockManager> DockManager{nullptr};
|
||||||
CDockWidgetSideTab::SideTabBarArea SideTabBarArea;
|
SideBarLocation SideTabBarArea;
|
||||||
QBoxLayout* Layout;
|
QBoxLayout* Layout;
|
||||||
CResizeHandle* ResizeHandle = nullptr;
|
CResizeHandle* ResizeHandle = nullptr;
|
||||||
QSize Size;
|
QSize Size;
|
||||||
@ -117,14 +117,14 @@ struct AutoHideDockContainerPrivate
|
|||||||
/**
|
/**
|
||||||
* Convenience function to get a dock widget area
|
* Convenience function to get a dock widget area
|
||||||
*/
|
*/
|
||||||
DockWidgetArea getDockWidgetArea(CDockWidgetSideTab::SideTabBarArea area)
|
DockWidgetArea getDockWidgetArea(SideBarLocation area)
|
||||||
{
|
{
|
||||||
switch (area)
|
switch (area)
|
||||||
{
|
{
|
||||||
case CDockWidgetSideTab::Left: return LeftDockWidgetArea;
|
case SideBarLocation::Left: return LeftDockWidgetArea;
|
||||||
case CDockWidgetSideTab::Right: return RightDockWidgetArea;
|
case SideBarLocation::Right: return RightDockWidgetArea;
|
||||||
case CDockWidgetSideTab::Bottom: return BottomDockWidgetArea;
|
case SideBarLocation::Bottom: return BottomDockWidgetArea;
|
||||||
case CDockWidgetSideTab::Top: return TopDockWidgetArea;
|
case SideBarLocation::Top: return TopDockWidgetArea;
|
||||||
}
|
}
|
||||||
|
|
||||||
return LeftDockWidgetArea;
|
return LeftDockWidgetArea;
|
||||||
@ -168,7 +168,7 @@ CDockContainerWidget* CAutoHideDockContainer::parentContainer() const
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CAutoHideDockContainer::CAutoHideDockContainer(CDockManager* DockManager, CDockWidgetSideTab::SideTabBarArea area, CDockContainerWidget* parent) :
|
CAutoHideDockContainer::CAutoHideDockContainer(CDockManager* DockManager, SideBarLocation area, CDockContainerWidget* parent) :
|
||||||
Super(parent),
|
Super(parent),
|
||||||
d(new AutoHideDockContainerPrivate(this))
|
d(new AutoHideDockContainerPrivate(this))
|
||||||
{
|
{
|
||||||
@ -200,7 +200,7 @@ CAutoHideDockContainer::CAutoHideDockContainer(CDockManager* DockManager, CDockW
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CAutoHideDockContainer::CAutoHideDockContainer(CDockWidget* DockWidget, CDockWidgetSideTab::SideTabBarArea area, CDockContainerWidget* parent) :
|
CAutoHideDockContainer::CAutoHideDockContainer(CDockWidget* DockWidget, SideBarLocation area, CDockContainerWidget* parent) :
|
||||||
CAutoHideDockContainer(DockWidget->dockManager(), area, parent)
|
CAutoHideDockContainer(DockWidget->dockManager(), area, parent)
|
||||||
{
|
{
|
||||||
addDockWidget(DockWidget);
|
addDockWidget(DockWidget);
|
||||||
@ -215,17 +215,17 @@ void CAutoHideDockContainer::updateSize()
|
|||||||
|
|
||||||
switch (sideTabBarArea())
|
switch (sideTabBarArea())
|
||||||
{
|
{
|
||||||
case CDockWidgetSideTab::Top:
|
case SideBarLocation::Top:
|
||||||
move(rect.topLeft());
|
move(rect.topLeft());
|
||||||
resize(rect.width(), qMin(rect.height(), d->Size.height()));
|
resize(rect.width(), qMin(rect.height(), d->Size.height()));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CDockWidgetSideTab::Left:
|
case SideBarLocation::Left:
|
||||||
move(rect.topLeft());
|
move(rect.topLeft());
|
||||||
resize(qMin(d->Size.width(), rect.width()), rect.height());
|
resize(qMin(d->Size.width(), rect.width()), rect.height());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CDockWidgetSideTab::Right:
|
case SideBarLocation::Right:
|
||||||
{
|
{
|
||||||
QPoint p = rect.topRight();
|
QPoint p = rect.topRight();
|
||||||
p.rx() -= (width() - 1);
|
p.rx() -= (width() - 1);
|
||||||
@ -234,7 +234,7 @@ void CAutoHideDockContainer::updateSize()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CDockWidgetSideTab::Bottom:
|
case SideBarLocation::Bottom:
|
||||||
{
|
{
|
||||||
QPoint p = rect.bottomLeft();
|
QPoint p = rect.bottomLeft();
|
||||||
p.ry() -= (height() - 1);
|
p.ry() -= (height() - 1);
|
||||||
@ -299,7 +299,7 @@ void CAutoHideDockContainer::addDockWidget(CDockWidget* DockWidget)
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CDockWidgetSideTab::SideTabBarArea CAutoHideDockContainer::sideTabBarArea() const
|
SideBarLocation CAutoHideDockContainer::sideTabBarArea() const
|
||||||
{
|
{
|
||||||
return d->SideTabBarArea;
|
return d->SideTabBarArea;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ class CDockingStateReader;
|
|||||||
class ADS_EXPORT CAutoHideDockContainer : public QFrame
|
class ADS_EXPORT CAutoHideDockContainer : public QFrame
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(int sideTabBarArea READ sideTabBarArea)
|
Q_PROPERTY(ads::SideBarLocation sideTabBarArea READ sideTabBarArea)
|
||||||
private:
|
private:
|
||||||
AutoHideDockContainerPrivate* d; ///< private data (pimpl)
|
AutoHideDockContainerPrivate* d; ///< private data (pimpl)
|
||||||
friend struct AutoHideDockContainerPrivate;
|
friend struct AutoHideDockContainerPrivate;
|
||||||
@ -70,12 +70,12 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Create Auto Hide widget with a dock manager
|
* Create Auto Hide widget with a dock manager
|
||||||
*/
|
*/
|
||||||
CAutoHideDockContainer(CDockManager* DockManager, CDockWidgetSideTab::SideTabBarArea area, CDockContainerWidget* parent);
|
CAutoHideDockContainer(CDockManager* DockManager, SideBarLocation area, CDockContainerWidget* parent);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create Auto Hide widget with the given dock widget
|
* Create Auto Hide widget with the given dock widget
|
||||||
*/
|
*/
|
||||||
CAutoHideDockContainer(CDockWidget* DockWidget, CDockWidgetSideTab::SideTabBarArea area, CDockContainerWidget* parent);
|
CAutoHideDockContainer(CDockWidget* DockWidget, SideBarLocation area, CDockContainerWidget* parent);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Virtual Destructor
|
* Virtual Destructor
|
||||||
@ -100,7 +100,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Returns the side tab bar area of this Auto Hide dock container
|
* Returns the side tab bar area of this Auto Hide dock container
|
||||||
*/
|
*/
|
||||||
CDockWidgetSideTab::SideTabBarArea sideTabBarArea() const;
|
SideBarLocation sideTabBarArea() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the dock area widget of this Auto Hide dock container
|
* Returns the dock area widget of this Auto Hide dock container
|
||||||
|
@ -146,6 +146,7 @@ CDockAreaTabBar::CDockAreaTabBar(CDockAreaWidget* parent) :
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
CDockAreaTabBar::~CDockAreaTabBar()
|
CDockAreaTabBar::~CDockAreaTabBar()
|
||||||
{
|
{
|
||||||
|
qDebug() << "~CDockAreaTabBar count " << count();
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -493,7 +493,6 @@ void CDockAreaTitleBar::onCurrentTabChanged(int Index)
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
void CDockAreaTitleBar::onAutoHideButtonClicked()
|
void CDockAreaTitleBar::onAutoHideButtonClicked()
|
||||||
{
|
{
|
||||||
qDebug() << "CDockAreaTitleBar::onAutoHideButtonClicked()";
|
|
||||||
if (d->DockArea->features().testFlag(CDockWidget::DockWidgetPinnable))
|
if (d->DockArea->features().testFlag(CDockWidget::DockWidgetPinnable))
|
||||||
{
|
{
|
||||||
d->DockArea->toggleAutoHideArea(!d->DockArea->isAutoHide());
|
d->DockArea->toggleAutoHideArea(!d->DockArea->isAutoHide());
|
||||||
|
@ -867,6 +867,7 @@ void CDockAreaWidget::saveState(QXmlStreamWriter& s) const
|
|||||||
auto CurrentDockWidget = currentDockWidget();
|
auto CurrentDockWidget = currentDockWidget();
|
||||||
QString Name = CurrentDockWidget ? CurrentDockWidget->objectName() : "";
|
QString Name = CurrentDockWidget ? CurrentDockWidget->objectName() : "";
|
||||||
s.writeAttribute("Current", Name);
|
s.writeAttribute("Current", Name);
|
||||||
|
|
||||||
// To keep the saved XML data small, we only save the allowed areas and the
|
// To keep the saved XML data small, we only save the allowed areas and the
|
||||||
// dock area flags if the values are different from the default values
|
// dock area flags if the values are different from the default values
|
||||||
if (isAutoHide())
|
if (isAutoHide())
|
||||||
|
@ -139,7 +139,7 @@ public:
|
|||||||
unsigned int zOrderIndex = 0;
|
unsigned int zOrderIndex = 0;
|
||||||
QList<CDockAreaWidget*> DockAreas;
|
QList<CDockAreaWidget*> DockAreas;
|
||||||
QList<CAutoHideDockContainer*> AutoHideWidgets;
|
QList<CAutoHideDockContainer*> AutoHideWidgets;
|
||||||
QMap<CDockWidgetSideTab::SideTabBarArea, CSideTabBar*> SideTabBarWidgets;
|
QMap<SideBarLocation, CSideTabBar*> SideTabBarWidgets;
|
||||||
QGridLayout* Layout = nullptr;
|
QGridLayout* Layout = nullptr;
|
||||||
QSplitter* RootSplitter = nullptr;
|
QSplitter* RootSplitter = nullptr;
|
||||||
bool isFloating = false;
|
bool isFloating = false;
|
||||||
@ -255,7 +255,7 @@ public:
|
|||||||
* Assumes that there are no auto hidden dock areas, and then restores all the dock areas that
|
* Assumes that there are no auto hidden dock areas, and then restores all the dock areas that
|
||||||
* exist in the XML
|
* exist in the XML
|
||||||
*/
|
*/
|
||||||
bool restoreAutoHideDockArea(CDockingStateReader& s, CDockWidgetSideTab::SideTabBarArea area, bool Testing);
|
bool restoreAutoHideDockArea(CDockingStateReader& s, SideBarLocation area, bool Testing);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restores either a dock area or an auto hide dock area depending on the value in the XML
|
* Restores either a dock area or an auto hide dock area depending on the value in the XML
|
||||||
@ -1033,7 +1033,7 @@ bool DockContainerWidgetPrivate::restoreSplitter(CDockingStateReader& s,
|
|||||||
}
|
}
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
bool DockContainerWidgetPrivate::restoreAutoHideDockArea(CDockingStateReader& s, CDockWidgetSideTab::SideTabBarArea area, bool Testing)
|
bool DockContainerWidgetPrivate::restoreAutoHideDockArea(CDockingStateReader& s, SideBarLocation area, bool Testing)
|
||||||
{
|
{
|
||||||
bool Ok;
|
bool Ok;
|
||||||
#ifdef ADS_DEBUG_PRINT
|
#ifdef ADS_DEBUG_PRINT
|
||||||
@ -1126,7 +1126,7 @@ bool DockContainerWidgetPrivate::restoreDockOrAutoHideDockArea(CDockingStateRead
|
|||||||
const auto sideTabAreaValue = Stream.attributes().value("SideTabBarArea");
|
const auto sideTabAreaValue = Stream.attributes().value("SideTabBarArea");
|
||||||
if (!sideTabAreaValue.isNull())
|
if (!sideTabAreaValue.isNull())
|
||||||
{
|
{
|
||||||
auto sideTabBarArea = static_cast<CDockWidgetSideTab::SideTabBarArea>(sideTabAreaValue.toInt(&Ok));
|
auto sideTabBarArea = static_cast<SideBarLocation>(sideTabAreaValue.toInt(&Ok));
|
||||||
if (!Ok)
|
if (!Ok)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -1500,7 +1500,8 @@ CDockAreaWidget* CDockContainerWidget::addDockWidget(DockWidgetArea area, CDockW
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CAutoHideDockContainer* CDockContainerWidget::createAndInitializeAutoHideDockWidgetContainer(CDockWidgetSideTab::SideTabBarArea area, CDockWidget* DockWidget, CDockWidget::eAutoHideInsertOrder insertOrder)
|
CAutoHideDockContainer* CDockContainerWidget::createAndInitializeAutoHideDockWidgetContainer(
|
||||||
|
SideBarLocation area, CDockWidget* DockWidget, CDockWidget::eAutoHideInsertOrder insertOrder)
|
||||||
{
|
{
|
||||||
if (d->DockManager != DockWidget->dockManager())
|
if (d->DockManager != DockWidget->dockManager())
|
||||||
{
|
{
|
||||||
@ -1546,7 +1547,7 @@ enum eBorderLocation
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CDockWidgetSideTab::SideTabBarArea CDockContainerWidget::calculateSideTabBarArea(CDockAreaWidget* DockAreaWidget)
|
SideBarLocation CDockContainerWidget::calculateSideTabBarArea(CDockAreaWidget* DockAreaWidget)
|
||||||
{
|
{
|
||||||
|
|
||||||
auto ContentRect = this->contentRect();
|
auto ContentRect = this->contentRect();
|
||||||
@ -1562,62 +1563,62 @@ CDockWidgetSideTab::SideTabBarArea CDockContainerWidget::calculateSideTabBarArea
|
|||||||
// measure border distances - a distance less than 16 px means we touch the
|
// measure border distances - a distance less than 16 px means we touch the
|
||||||
// border
|
// border
|
||||||
int BorderDistance[4];
|
int BorderDistance[4];
|
||||||
|
|
||||||
int Distance = qAbs(ContentRect.topLeft().y() - DockAreaRect.topLeft().y());
|
int Distance = qAbs(ContentRect.topLeft().y() - DockAreaRect.topLeft().y());
|
||||||
BorderDistance[CDockWidgetSideTab::Top] = (Distance < MinBorderDistance) ? 0 : Distance;
|
BorderDistance[SideBarLocation::Top] = (Distance < MinBorderDistance) ? 0 : Distance;
|
||||||
if (!BorderDistance[CDockWidgetSideTab::Top])
|
if (!BorderDistance[SideBarLocation::Top])
|
||||||
{
|
{
|
||||||
borders |= BorderTop;
|
borders |= BorderTop;
|
||||||
}
|
}
|
||||||
qDebug() << "BorderDistance[CDockWidgetSideTab::Top] " << BorderDistance[CDockWidgetSideTab::Top];
|
|
||||||
Distance = qAbs(ContentRect.bottomRight().y() - DockAreaRect.bottomRight().y());
|
Distance = qAbs(ContentRect.bottomRight().y() - DockAreaRect.bottomRight().y());
|
||||||
BorderDistance[CDockWidgetSideTab::Bottom] = (Distance < MinBorderDistance) ? 0 : Distance;
|
BorderDistance[SideBarLocation::Bottom] = (Distance < MinBorderDistance) ? 0 : Distance;
|
||||||
if (!BorderDistance[CDockWidgetSideTab::Bottom])
|
if (!BorderDistance[SideBarLocation::Bottom])
|
||||||
{
|
{
|
||||||
borders |= BorderBottom;
|
borders |= BorderBottom;
|
||||||
}
|
}
|
||||||
qDebug() << "BorderDistance[CDockWidgetSideTab::Bottom] " << BorderDistance[CDockWidgetSideTab::Bottom];
|
|
||||||
Distance = qAbs(ContentRect.topLeft().x() - DockAreaRect.topLeft().x());
|
Distance = qAbs(ContentRect.topLeft().x() - DockAreaRect.topLeft().x());
|
||||||
BorderDistance[CDockWidgetSideTab::Left] = (Distance < MinBorderDistance) ? 0 : Distance;
|
BorderDistance[SideBarLocation::Left] = (Distance < MinBorderDistance) ? 0 : Distance;
|
||||||
if (!BorderDistance[CDockWidgetSideTab::Left])
|
if (!BorderDistance[SideBarLocation::Left])
|
||||||
{
|
{
|
||||||
borders |= BorderLeft;
|
borders |= BorderLeft;
|
||||||
}
|
}
|
||||||
qDebug() << "BorderDistance[CDockWidgetSideTab::Left] " << BorderDistance[CDockWidgetSideTab::Left];
|
|
||||||
Distance = qAbs(ContentRect.bottomRight().x() - DockAreaRect.bottomRight().x());
|
Distance = qAbs(ContentRect.bottomRight().x() - DockAreaRect.bottomRight().x());
|
||||||
BorderDistance[CDockWidgetSideTab::Right] = (Distance < MinBorderDistance) ? 0 : Distance;
|
BorderDistance[SideBarLocation::Right] = (Distance < MinBorderDistance) ? 0 : Distance;
|
||||||
if (!BorderDistance[CDockWidgetSideTab::Right])
|
if (!BorderDistance[SideBarLocation::Right])
|
||||||
{
|
{
|
||||||
borders |= BorderRight;
|
borders |= BorderRight;
|
||||||
}
|
}
|
||||||
qDebug() << "BorderDistance[CDockWidgetSideTab::Right] " << BorderDistance[CDockWidgetSideTab::Right];
|
|
||||||
|
|
||||||
auto SideTab = CDockWidgetSideTab::Right;
|
auto SideTab = SideBarLocation::Right;
|
||||||
switch (borders)
|
switch (borders)
|
||||||
{
|
{
|
||||||
// 1. It's touching all borders
|
// 1. It's touching all borders
|
||||||
case BorderAll: SideTab = HorizontalOrientation ? CDockWidgetSideTab::Bottom : CDockWidgetSideTab::Right; break;
|
case BorderAll: SideTab = HorizontalOrientation ? SideBarLocation::Bottom : SideBarLocation::Right; break;
|
||||||
|
|
||||||
// 2. It's touching 3 borders
|
// 2. It's touching 3 borders
|
||||||
case BorderVerticalBottom : SideTab = CDockWidgetSideTab::Bottom; break;
|
case BorderVerticalBottom : SideTab = SideBarLocation::Bottom; break;
|
||||||
case BorderVerticalTop : SideTab = CDockWidgetSideTab::Top; break;
|
case BorderVerticalTop : SideTab = SideBarLocation::Top; break;
|
||||||
case BorderHorizontalLeft: SideTab = CDockWidgetSideTab::Left; break;
|
case BorderHorizontalLeft: SideTab = SideBarLocation::Left; break;
|
||||||
case BorderHorizontalRight: SideTab = CDockWidgetSideTab::Right; break;
|
case BorderHorizontalRight: SideTab = SideBarLocation::Right; break;
|
||||||
|
|
||||||
// 3. Its touching horizontal or vertical borders
|
// 3. Its touching horizontal or vertical borders
|
||||||
case BorderVertical : SideTab = CDockWidgetSideTab::Bottom; break;
|
case BorderVertical : SideTab = SideBarLocation::Bottom; break;
|
||||||
case BorderHorizontal: SideTab = CDockWidgetSideTab::Right; break;
|
case BorderHorizontal: SideTab = SideBarLocation::Right; break;
|
||||||
|
|
||||||
// 4. Its in a corner
|
// 4. Its in a corner
|
||||||
case BorderTopLeft : SideTab = HorizontalOrientation ? CDockWidgetSideTab::Top : CDockWidgetSideTab::Left; break;
|
case BorderTopLeft : SideTab = HorizontalOrientation ? SideBarLocation::Top : SideBarLocation::Left; break;
|
||||||
case BorderTopRight : SideTab = HorizontalOrientation ? CDockWidgetSideTab::Top : CDockWidgetSideTab::Right; break;
|
case BorderTopRight : SideTab = HorizontalOrientation ? SideBarLocation::Top : SideBarLocation::Right; break;
|
||||||
case BorderBottomLeft : SideTab = HorizontalOrientation ? CDockWidgetSideTab::Bottom : CDockWidgetSideTab::Left; break;
|
case BorderBottomLeft : SideTab = HorizontalOrientation ? SideBarLocation::Bottom : SideBarLocation::Left; break;
|
||||||
case BorderBottomRight : SideTab = HorizontalOrientation ? CDockWidgetSideTab::Bottom : CDockWidgetSideTab::Right; break;
|
case BorderBottomRight : SideTab = HorizontalOrientation ? SideBarLocation::Bottom : SideBarLocation::Right; break;
|
||||||
|
|
||||||
// 5 Ists touching only one border
|
// 5 Ists touching only one border
|
||||||
case BorderLeft: SideTab = CDockWidgetSideTab::Left; break;
|
case BorderLeft: SideTab = SideBarLocation::Left; break;
|
||||||
case BorderRight: SideTab = CDockWidgetSideTab::Right; break;
|
case BorderRight: SideTab = SideBarLocation::Right; break;
|
||||||
case BorderTop: SideTab = CDockWidgetSideTab::Top; break;
|
case BorderTop: SideTab = SideBarLocation::Top; break;
|
||||||
case BorderBottom: SideTab = CDockWidgetSideTab::Bottom; break;
|
case BorderBottom: SideTab = SideBarLocation::Bottom; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SideTab;
|
return SideTab;
|
||||||
@ -2016,7 +2017,7 @@ bool CDockContainerWidget::restoreState(CDockingStateReader& s, bool Testing)
|
|||||||
bool IsFloating = s.attributes().value("Floating").toInt();
|
bool IsFloating = s.attributes().value("Floating").toInt();
|
||||||
ADS_PRINT("Restore CDockContainerWidget Floating" << IsFloating);
|
ADS_PRINT("Restore CDockContainerWidget Floating" << IsFloating);
|
||||||
|
|
||||||
QWidget*NewRootSplitter {};
|
QWidget* NewRootSplitter {};
|
||||||
if (!Testing)
|
if (!Testing)
|
||||||
{
|
{
|
||||||
d->VisibleDockAreaCount = -1;// invalidate the dock area count
|
d->VisibleDockAreaCount = -1;// invalidate the dock area count
|
||||||
@ -2098,25 +2099,25 @@ void CDockContainerWidget::createRootSplitter()
|
|||||||
void CDockContainerWidget::createSideTabBarWidgets()
|
void CDockContainerWidget::createSideTabBarWidgets()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
auto Area = CDockWidgetSideTab::Left;
|
auto Area = SideBarLocation::Left;
|
||||||
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
||||||
d->Layout->addWidget(d->SideTabBarWidgets[Area], 1, 0);
|
d->Layout->addWidget(d->SideTabBarWidgets[Area], 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto Area = CDockWidgetSideTab::Right;
|
auto Area = SideBarLocation::Right;
|
||||||
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
||||||
d->Layout->addWidget(d->SideTabBarWidgets[Area], 1, 2);
|
d->Layout->addWidget(d->SideTabBarWidgets[Area], 1, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto Area = CDockWidgetSideTab::Bottom;
|
auto Area = SideBarLocation::Bottom;
|
||||||
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
||||||
d->Layout->addWidget(d->SideTabBarWidgets[Area], 2, 1);
|
d->Layout->addWidget(d->SideTabBarWidgets[Area], 2, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto Area = CDockWidgetSideTab::Top;
|
auto Area = SideBarLocation::Top;
|
||||||
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
d->SideTabBarWidgets[Area] = new CSideTabBar(this, Area);
|
||||||
d->Layout->addWidget(d->SideTabBarWidgets[Area], 0, 1);
|
d->Layout->addWidget(d->SideTabBarWidgets[Area], 0, 1);
|
||||||
}
|
}
|
||||||
@ -2267,7 +2268,7 @@ void CDockContainerWidget::closeOtherAreas(CDockAreaWidget* KeepOpenArea)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CSideTabBar* CDockContainerWidget::sideTabBar(CDockWidgetSideTab::SideTabBarArea area) const
|
CSideTabBar* CDockContainerWidget::sideTabBar(SideBarLocation area) const
|
||||||
{
|
{
|
||||||
return d->SideTabBarWidgets[area];
|
return d->SideTabBarWidgets[area];
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,8 @@ protected:
|
|||||||
* Initializing inserts the tabs into the side tab widget and hides it
|
* Initializing inserts the tabs into the side tab widget and hides it
|
||||||
* Returns nullptr if you try and insert into an area where the configuration is not enabled
|
* Returns nullptr if you try and insert into an area where the configuration is not enabled
|
||||||
*/
|
*/
|
||||||
CAutoHideDockContainer* createAndInitializeAutoHideDockWidgetContainer(CDockWidgetSideTab::SideTabBarArea area, CDockWidget* DockWidget, CDockWidget::eAutoHideInsertOrder insertOrder);
|
CAutoHideDockContainer* createAndInitializeAutoHideDockWidgetContainer(
|
||||||
|
SideBarLocation area, CDockWidget* DockWidget, CDockWidget::eAutoHideInsertOrder insertOrder);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function for creation of the root splitter
|
* Helper function for creation of the root splitter
|
||||||
@ -220,7 +221,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Get's the auto hide dock side tab bar area based on the dock area widget position
|
* Get's the auto hide dock side tab bar area based on the dock area widget position
|
||||||
*/
|
*/
|
||||||
CDockWidgetSideTab::SideTabBarArea calculateSideTabBarArea(CDockAreaWidget* DockAreaWidget);
|
SideBarLocation calculateSideTabBarArea(CDockAreaWidget* DockAreaWidget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes dockwidget
|
* Removes dockwidget
|
||||||
@ -320,7 +321,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Returns the side tab widget for the given area
|
* Returns the side tab widget for the given area
|
||||||
*/
|
*/
|
||||||
CSideTabBar* sideTabBar(CDockWidgetSideTab::SideTabBarArea area) const;
|
CSideTabBar* sideTabBar(SideBarLocation area) const;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -867,13 +867,15 @@ CDockAreaWidget* CDockManager::addDockWidgetToContainer(DockWidgetArea area,
|
|||||||
}
|
}
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CAutoHideDockContainer* CDockManager::addAutoHideDockWidget(CDockWidgetSideTab::SideTabBarArea area, CDockWidget* Dockwidget, CDockWidget::eAutoHideInsertOrder insertOrder)
|
CAutoHideDockContainer* CDockManager::addAutoHideDockWidget(SideBarLocation area, CDockWidget* Dockwidget,
|
||||||
|
CDockWidget::eAutoHideInsertOrder insertOrder)
|
||||||
{
|
{
|
||||||
return addAutoHideDockWidgetToContainer(area, Dockwidget, this, insertOrder);
|
return addAutoHideDockWidgetToContainer(area, Dockwidget, this, insertOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CAutoHideDockContainer* CDockManager::addAutoHideDockWidgetToContainer(CDockWidgetSideTab::SideTabBarArea area, CDockWidget* Dockwidget, CDockContainerWidget* DockContainerWidget, CDockWidget::eAutoHideInsertOrder insertOrder)
|
CAutoHideDockContainer* CDockManager::addAutoHideDockWidgetToContainer(SideBarLocation area, CDockWidget* Dockwidget,
|
||||||
|
CDockContainerWidget* DockContainerWidget, CDockWidget::eAutoHideInsertOrder insertOrder)
|
||||||
{
|
{
|
||||||
d->DockWidgetsMap.insert(Dockwidget->objectName(), Dockwidget);
|
d->DockWidgetsMap.insert(Dockwidget->objectName(), Dockwidget);
|
||||||
auto container = DockContainerWidget->createAndInitializeAutoHideDockWidgetContainer(area, Dockwidget, insertOrder);
|
auto container = DockContainerWidget->createAndInitializeAutoHideDockWidgetContainer(area, Dockwidget, insertOrder);
|
||||||
|
@ -340,14 +340,16 @@ public:
|
|||||||
* An overlay widget is used for auto hide functionality
|
* An overlay widget is used for auto hide functionality
|
||||||
* \return Returns the CAutoHideDockContainer that contains the new DockWidget
|
* \return Returns the CAutoHideDockContainer that contains the new DockWidget
|
||||||
*/
|
*/
|
||||||
CAutoHideDockContainer* addAutoHideDockWidget(CDockWidgetSideTab::SideTabBarArea area, CDockWidget* Dockwidget, CDockWidget::eAutoHideInsertOrder insertOrder = CDockWidget::Last);
|
CAutoHideDockContainer* addAutoHideDockWidget(SideBarLocation area, CDockWidget* Dockwidget,
|
||||||
|
CDockWidget::eAutoHideInsertOrder insertOrder = CDockWidget::Last);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds dock widget overlayed into the given container based on the CDockWidgetSideTab::SideTabBarArea.
|
* Adds dock widget overlayed into the given container based on the CDockWidgetSideTab::SideTabBarArea.
|
||||||
* An overlay widget is used for auto hide functionality
|
* An overlay widget is used for auto hide functionality
|
||||||
* \return Returns the CAutoHideDockContainer that contains the new DockWidget
|
* \return Returns the CAutoHideDockContainer that contains the new DockWidget
|
||||||
*/
|
*/
|
||||||
CAutoHideDockContainer* addAutoHideDockWidgetToContainer(CDockWidgetSideTab::SideTabBarArea area, CDockWidget* Dockwidget, CDockContainerWidget* DockContainerWidget, CDockWidget::eAutoHideInsertOrder = CDockWidget::Last);
|
CAutoHideDockContainer* addAutoHideDockWidgetToContainer(SideBarLocation area,
|
||||||
|
CDockWidget* Dockwidget, CDockContainerWidget* DockContainerWidget, CDockWidget::eAutoHideInsertOrder = CDockWidget::Last);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function will add the given Dockwidget to the given dock area as
|
* This function will add the given Dockwidget to the given dock area as
|
||||||
|
@ -344,6 +344,10 @@ CDockWidget::CDockWidget(const QString &title, QWidget *parent) :
|
|||||||
CDockWidget::~CDockWidget()
|
CDockWidget::~CDockWidget()
|
||||||
{
|
{
|
||||||
ADS_PRINT("~CDockWidget()");
|
ADS_PRINT("~CDockWidget()");
|
||||||
|
if (d->SideTabWidget)
|
||||||
|
{
|
||||||
|
delete d->SideTabWidget;
|
||||||
|
}
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ CDockWidgetSideTab::CDockWidgetSideTab(CDockWidget* DockWidget, QWidget* parent)
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
CDockWidgetSideTab::~CDockWidgetSideTab()
|
CDockWidgetSideTab::~CDockWidgetSideTab()
|
||||||
{
|
{
|
||||||
|
qDebug() << "~CDockWidgetSideTab()";
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ void CDockWidgetSideTab::updateStyle()
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CDockWidgetSideTab::SideTabBarArea CDockWidgetSideTab::sideTabBarArea() const
|
SideBarLocation CDockWidgetSideTab::sideTabBarArea() const
|
||||||
{
|
{
|
||||||
auto dockAreaWidget = d->DockWidget->dockAreaWidget();
|
auto dockAreaWidget = d->DockWidget->dockAreaWidget();
|
||||||
if (dockAreaWidget && dockAreaWidget->isAutoHide())
|
if (dockAreaWidget && dockAreaWidget->isAutoHide())
|
||||||
@ -141,7 +142,7 @@ Qt::Orientation CDockWidgetSideTab::orientation() const
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
void CDockWidgetSideTab::updateOrientationAndSpacing(SideTabBarArea area)
|
void CDockWidgetSideTab::updateOrientationAndSpacing(SideBarLocation area)
|
||||||
{
|
{
|
||||||
setOrientation((area == Bottom || area == Top) ? Qt::Horizontal : Qt::Vertical);
|
setOrientation((area == Bottom || area == Top) ? Qt::Horizontal : Qt::Vertical);
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class ADS_EXPORT CDockWidgetSideTab : public CPushButton
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
Q_PROPERTY(SideTabBarArea sideTabBarArea READ sideTabBarArea)
|
Q_PROPERTY(ads::SideBarLocation sideTabBarArea READ sideTabBarArea)
|
||||||
Q_PROPERTY(Qt::Orientation orientation READ orientation)
|
Q_PROPERTY(Qt::Orientation orientation READ orientation)
|
||||||
Q_PROPERTY(bool activeTab READ isActiveTab)
|
Q_PROPERTY(bool activeTab READ isActiveTab)
|
||||||
|
|
||||||
@ -71,18 +71,6 @@ protected:
|
|||||||
public:
|
public:
|
||||||
using Super = CPushButton;
|
using Super = CPushButton;
|
||||||
|
|
||||||
/**
|
|
||||||
* Dock widget side tab bar locations
|
|
||||||
*/
|
|
||||||
enum SideTabBarArea
|
|
||||||
{
|
|
||||||
Top,
|
|
||||||
Left,
|
|
||||||
Right,
|
|
||||||
Bottom
|
|
||||||
};
|
|
||||||
Q_ENUM(SideTabBarArea)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Constructor
|
* Default Constructor
|
||||||
* param[in] DockWidget The dock widget this title bar belongs to
|
* param[in] DockWidget The dock widget this title bar belongs to
|
||||||
@ -103,7 +91,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Getter for side tab bar area property
|
* Getter for side tab bar area property
|
||||||
*/
|
*/
|
||||||
SideTabBarArea sideTabBarArea() const;
|
SideBarLocation sideTabBarArea() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set orientation vertical or horizontal
|
* Set orientation vertical or horizontal
|
||||||
@ -118,7 +106,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Update the orientation, visibility and spacing based on the area and the config
|
* Update the orientation, visibility and spacing based on the area and the config
|
||||||
*/
|
*/
|
||||||
void updateOrientationAndSpacing(SideTabBarArea area);
|
void updateOrientationAndSpacing(SideBarLocation area);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true, if this is the active tab. The tab is active if the auto hide widget is visible
|
* Returns true, if this is the active tab. The tab is active if the auto hide widget is visible
|
||||||
|
@ -352,6 +352,7 @@ CDockWidgetTab::CDockWidgetTab(CDockWidget* DockWidget, QWidget *parent) :
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
CDockWidgetTab::~CDockWidgetTab()
|
CDockWidgetTab::~CDockWidgetTab()
|
||||||
{
|
{
|
||||||
|
qDebug() << "~CDockWidgetTab " << text();
|
||||||
ADS_PRINT("~CDockWidgetTab()");
|
ADS_PRINT("~CDockWidgetTab()");
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
@ -721,6 +721,7 @@ CFloatingDockContainer::CFloatingDockContainer(CDockWidget *DockWidget) :
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
CFloatingDockContainer::~CFloatingDockContainer()
|
CFloatingDockContainer::~CFloatingDockContainer()
|
||||||
{
|
{
|
||||||
|
qDebug() << "~CFloatingDockContainer " << windowTitle();
|
||||||
ADS_PRINT("~CFloatingDockContainer");
|
ADS_PRINT("~CFloatingDockContainer");
|
||||||
if (d->DockManager)
|
if (d->DockManager)
|
||||||
{
|
{
|
||||||
|
@ -297,7 +297,6 @@ bool CResizeHandle::isResizing() const
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
void CResizeHandle::setMinResizeSize(int MinSize)
|
void CResizeHandle::setMinResizeSize(int MinSize)
|
||||||
{
|
{
|
||||||
qDebug() << "CResizeHandle::setMinResizeSize " << MinSize;
|
|
||||||
d->MinSize = MinSize;
|
d->MinSize = MinSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,7 +304,6 @@ void CResizeHandle::setMinResizeSize(int MinSize)
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
void CResizeHandle::setMaxResizeSize(int MaxSize)
|
void CResizeHandle::setMaxResizeSize(int MaxSize)
|
||||||
{
|
{
|
||||||
qDebug() << "CResizeHandle::setMaxResizeSize " << MaxSize;
|
|
||||||
d->MaxSize = MaxSize;
|
d->MaxSize = MaxSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ struct SideTabBarPrivate
|
|||||||
CDockContainerWidget* ContainerWidget;
|
CDockContainerWidget* ContainerWidget;
|
||||||
QBoxLayout* TabsLayout;
|
QBoxLayout* TabsLayout;
|
||||||
Qt::Orientation Orientation;
|
Qt::Orientation Orientation;
|
||||||
CDockWidgetSideTab::SideTabBarArea SideTabArea = CDockWidgetSideTab::Left;
|
SideBarLocation SideTabArea = SideBarLocation::Left;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience function to check if this is a horizontal side bar
|
* Convenience function to check if this is a horizontal side bar
|
||||||
@ -73,13 +73,13 @@ SideTabBarPrivate::SideTabBarPrivate(CSideTabBar* _public) :
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CSideTabBar::CSideTabBar(CDockContainerWidget* parent, CDockWidgetSideTab::SideTabBarArea area) :
|
CSideTabBar::CSideTabBar(CDockContainerWidget* parent, SideBarLocation area) :
|
||||||
Super(parent),
|
Super(parent),
|
||||||
d(new SideTabBarPrivate(this))
|
d(new SideTabBarPrivate(this))
|
||||||
{
|
{
|
||||||
d->SideTabArea = area;
|
d->SideTabArea = area;
|
||||||
d->ContainerWidget = parent;
|
d->ContainerWidget = parent;
|
||||||
d->Orientation = (area == CDockWidgetSideTab::Bottom || area == CDockWidgetSideTab::Top)
|
d->Orientation = (area == SideBarLocation::Bottom || area == SideBarLocation::Top)
|
||||||
? Qt::Horizontal : Qt::Vertical;
|
? Qt::Horizontal : Qt::Vertical;
|
||||||
|
|
||||||
auto mainLayout = new QBoxLayout(d->Orientation == Qt::Vertical ? QBoxLayout::TopToBottom : QBoxLayout::LeftToRight);
|
auto mainLayout = new QBoxLayout(d->Orientation == Qt::Vertical ? QBoxLayout::TopToBottom : QBoxLayout::LeftToRight);
|
||||||
@ -126,6 +126,7 @@ void CSideTabBar::insertSideTab(int Index, CDockWidgetSideTab* SideTab)
|
|||||||
//============================================================================
|
//============================================================================
|
||||||
void CSideTabBar::removeSideTab(CDockWidgetSideTab* SideTab)
|
void CSideTabBar::removeSideTab(CDockWidgetSideTab* SideTab)
|
||||||
{
|
{
|
||||||
|
qDebug() << "CSideTabBar::removeSideTab " << SideTab->text();
|
||||||
d->TabsLayout->removeWidget(SideTab);
|
d->TabsLayout->removeWidget(SideTab);
|
||||||
if (d->TabsLayout->isEmpty())
|
if (d->TabsLayout->isEmpty())
|
||||||
{
|
{
|
||||||
@ -168,7 +169,7 @@ int CSideTabBar::tabCount() const
|
|||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CDockWidgetSideTab::SideTabBarArea CSideTabBar::sideTabBarArea() const
|
SideBarLocation CSideTabBar::sideTabBarArea() const
|
||||||
{
|
{
|
||||||
return d->SideTabArea;
|
return d->SideTabArea;
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ class CDockWidgetSideTab;
|
|||||||
class ADS_EXPORT CSideTabBar : public QFrame
|
class ADS_EXPORT CSideTabBar : public QFrame
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(int sideTabBarArea READ sideTabBarArea)
|
Q_PROPERTY(ads::SideBarLocation sideTabBarArea READ sideTabBarArea)
|
||||||
Q_PROPERTY(Qt::Orientation orientation READ orientation)
|
Q_PROPERTY(Qt::Orientation orientation READ orientation)
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -62,7 +62,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Default Constructor
|
* Default Constructor
|
||||||
*/
|
*/
|
||||||
CSideTabBar(CDockContainerWidget* parent, CDockWidgetSideTab::SideTabBarArea area);
|
CSideTabBar(CDockContainerWidget* parent, SideBarLocation area);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Virtual Destructor
|
* Virtual Destructor
|
||||||
@ -97,7 +97,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Getter for side tab bar area property
|
* Getter for side tab bar area property
|
||||||
*/
|
*/
|
||||||
CDockWidgetSideTab::SideTabBarArea sideTabBarArea() const;
|
SideBarLocation sideTabBarArea() const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void sideTabAutoHideToggleRequested();
|
void sideTabAutoHideToggleRequested();
|
||||||
|
@ -69,6 +69,7 @@ QT_FORWARD_DECLARE_CLASS(QSplitter)
|
|||||||
|
|
||||||
namespace ads
|
namespace ads
|
||||||
{
|
{
|
||||||
|
Q_NAMESPACE
|
||||||
class CDockSplitter;
|
class CDockSplitter;
|
||||||
|
|
||||||
enum DockWidgetArea
|
enum DockWidgetArea
|
||||||
@ -130,6 +131,19 @@ enum eBitwiseOperator
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Each dock container supports 4 sidbars
|
||||||
|
*/
|
||||||
|
enum SideBarLocation
|
||||||
|
{
|
||||||
|
Top,
|
||||||
|
Left,
|
||||||
|
Right,
|
||||||
|
Bottom
|
||||||
|
};
|
||||||
|
Q_ENUMS(SideBarLocation);
|
||||||
|
|
||||||
|
|
||||||
namespace internal
|
namespace internal
|
||||||
{
|
{
|
||||||
static const bool RestoreTesting = true;
|
static const bool RestoreTesting = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user