10 #include <QHBoxLayout>
11 #include <QVBoxLayout>
20 mVerticalSplitter(new
Splitter(
Qt::Vertical, this)), mHorizontalSplitter(new
Splitter(
Qt::Horizontal, this)), mLeftSplitter(new
Splitter(
Qt::Vertical, this)),
21 mRightSplitter(new
Splitter(
Qt::Vertical, this)), mBottomSplitter(new
Splitter(
Qt::Horizontal, this)),
26 mBottomContainer(new
QWidget(this)), mLeftSpacer(new
QFrame(this)), mRightSpacer(new
QFrame(this)),
29 mBottomAnchor(new
SplitterAnchor(mBottomDock, mBottomSplitter, this)),
50 mBottomContainer->
hide();
55 mLeftSplitter->
hide();
56 mRightSplitter->
hide();
57 mBottomSplitter->
hide();
78 mTopLevelLayout->
addLayout(mSecondLevelLayout);
79 mBottomContainer->
setLayout(mSpacerLayout);
80 mTopLevelLayout->
addWidget(mBottomContainer);
92 mSecondLevelLayout->
addLayout(mThirdLevelLayout);
97 mThirdLevelLayout->
addLayout(mFourthLevelLayout);
101 mFourthLevelLayout->
addWidget(mVerticalSplitter);
103 mVerticalSplitter->
addWidget(mHorizontalSplitter);
104 mVerticalSplitter->
addWidget(mBottomSplitter);
106 mHorizontalSplitter->
addWidget(mLeftSplitter);
107 mHorizontalSplitter->
addWidget(mTabWidget);
108 mHorizontalSplitter->
addWidget(mRightSplitter);
117 maxIndex = mTabWidget->
count();
120 maxIndex = mLeftAnchor->
count();
123 maxIndex = mRightAnchor->
count();
126 maxIndex = mBottomAnchor->
count();
130 if (index > maxIndex)
132 log_warning(
"gui",
"Cannot insert widget '{}' at index {}, moved to index {}", widget->
name().
toStdString(), index, maxIndex);
140 mTabWidget->
add(widget, index);
143 mLeftAnchor->
add(widget, index);
146 mRightAnchor->
add(widget, index);
149 mBottomAnchor->
add(widget, index);
162 mLeftAnchor->
clear();
163 mRightAnchor->
clear();
164 mBottomAnchor->
clear();
184 if (mLeftDock->
count())
198 if (mRightDock->
count())
201 mRightSpacer->
show();
206 mRightSpacer->
hide();
212 if (mBottomDock->
count())
213 mBottomContainer->
show();
215 mBottomContainer->
hide();
220 mWasBottomContainerHidden = mBottomContainer->
isHidden();
221 mBottomContainer->
show();
227 if(mWasBottomContainerHidden && mBottomDock->
count() == 0)
228 mBottomContainer->
hide();
static ContentDragRelay * instance()
void addContent(ContentWidget *widget, int index, content_anchor anchor)
ContentLayoutArea(QWidget *parent=nullptr)
void removeContent(ContentWidget *widget)
void updateBottomDockBar()
void initSplitterSize(const QSize &size)
void updateRightDockBar()
Abstract class for Widgets within HAL's ContentArea.
Contains and handles DockButtons.
Adds specific ContentWidgets to HALs main content area.
int count() const override
virtual void add(ContentWidget *widget, int index=-1) override
A QSplitter that can be checked if it is unused or not.
#define log_warning(channel,...)
void addLayout(QLayout *layout, int stretch)
void setSpacing(int spacing)
bool setAlignment(QWidget *w, Qt::Alignment alignment)
void setContentsMargins(int left, int top, int right, int bottom)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void setObjectName(const QString &name)
void setChildrenCollapsible(bool)
void setSizes(const QList< int > &list)
std::string toStdString() const const