11 #include <QHBoxLayout>
12 #include <QVBoxLayout>
26 mVerticalSplitter(new
Splitter(
Qt::Vertical, this)),
27 mHorizontalSplitter(new
Splitter(
Qt::Horizontal, this)),
28 mLeftSplitter(new
Splitter(
Qt::Vertical, this)),
29 mRightSplitter(new
Splitter(
Qt::Vertical, this)),
30 mBottomSplitter(new
Splitter(
Qt::Horizontal, this)),
36 mBottomContainer(new
QWidget(this)), mLeftSpacer(new
QFrame(this)),
37 mRightSpacer(new
QFrame(this)),
62 mBottomContainer->
hide();
67 mLeftSplitter->
hide();
68 mRightSplitter->
hide();
69 mBottomSplitter->
hide();
90 mTopLevelLayout->
addLayout(mSecondLevelLayout);
91 mBottomContainer->
setLayout(mSpacerLayout);
92 mTopLevelLayout->
addWidget(mBottomContainer);
104 mSecondLevelLayout->
addLayout(mThirdLevelLayout);
109 mThirdLevelLayout->
addLayout(mFourthLevelLayout);
113 mFourthLevelLayout->
addWidget(mVerticalSplitter);
115 mVerticalSplitter->
addWidget(mHorizontalSplitter);
116 mVerticalSplitter->
addWidget(mBottomSplitter);
118 mHorizontalSplitter->
addWidget(mLeftSplitter);
119 mHorizontalSplitter->
addWidget(mTabWidget);
120 mHorizontalSplitter->
addWidget(mRightSplitter);
129 maxIndex = mTabWidget->
count();
132 maxIndex = mLeftAnchor->
count();
135 maxIndex = mRightAnchor->
count();
138 maxIndex = mBottomAnchor->
count();
142 if (index > maxIndex)
144 log_warning(
"gui",
"Cannot insert widget '{}' at index {}, moved to index {}", widget->
name().
toStdString(), index, maxIndex);
152 mTabWidget->
add(widget, index);
155 mLeftAnchor->
add(widget, index);
158 mRightAnchor->
add(widget, index);
161 mBottomAnchor->
add(widget, index);
175 mLeftAnchor->
clear();
176 mRightAnchor->
clear();
177 mBottomAnchor->
clear();
197 if (mLeftDock->
count())
211 if (mRightDock->
count())
214 mRightSpacer->
show();
219 mRightSpacer->
hide();
225 if (mBottomDock->
count())
226 mBottomContainer->
show();
228 mBottomContainer->
hide();
233 mWasBottomContainerHidden = mBottomContainer->
isHidden();
234 mBottomContainer->
show();
240 if(mWasBottomContainerHidden && mBottomDock->
count() == 0)
241 mBottomContainer->
hide();
virtual int count() const
static ContentDragRelay * instance()
ContentLayoutArea(QWidget *parent=nullptr)
void removeContent(ContentWidget *widget)
void updateBottomDockBar()
void initSplitterSize(const QSize &size)
void updateRightDockBar()
void addContent(ContentWidget *widget, int index, ContentLayout::Position anchor)
Abstract class for Widgets within HAL's ContentArea.
Contains and handles DockButtons.
void restoreSplitterState(const QString &tag, QSplitter *splitter) const
void saveSplitterState(const QString &tag, const QSplitter *splitter)
static SettingsManager * instance()
Adds specific ContentWidgets to HALs main content area.
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