17 #include <QGridLayout>
18 #include <QLayoutItem>
26 while (QLayoutItem* item = layout->takeAt(0)) {
28 if (QWidget* widget = item->widget())
31 if (QLayout* childLayout = item->layout())
45 void remove(QGridLayout* layout,
int row,
int column,
bool deleteWidgets);
46 void deleteChildWidgets(QLayoutItem* item);
60 remove(layout, row, -1, deleteWidgets);
61 layout->setRowMinimumHeight(row, 0);
62 layout->setRowStretch(row, 0);
76 remove(layout, -1, column, deleteWidgets);
77 layout->setColumnMinimumWidth(column, 0);
78 layout->setColumnStretch(column, 0);
83 for (
int i_row = 0; i_row < layout->rowCount(); ++i_row) {
97 void remove(QGridLayout* layout,
int row,
int column,
bool deleteWidgets)
100 for (
int i = layout->count() - 1; i >= 0; i--) {
102 layout->getItemPosition(i, &r, &c, &rs, &cs);
103 if ((r <= row && r + rs - 1 >= row) || (c <= column && c + cs - 1 >= column)) {
105 QLayoutItem* item = layout->takeAt(i);
107 deleteChildWidgets(item);
118 void deleteChildWidgets(QLayoutItem* item)
120 if (item->layout()) {
122 for (
int i = 0; i < item->layout()->count(); i++) {
123 deleteChildWidgets(item->layout()->itemAt(i));
126 delete item->widget();
133 auto result =
new QWidget;
134 result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
Defines LayoutUtils namespace.
void removeRow(QGridLayout *layout, int row, bool deleteWidgets=true)
Removes row from grid layout (important: doesn't change row count).
void removeColumn(QGridLayout *layout, int column, bool deleteWidgets=true)
Removes column from grid layout.
void clearLayout(QLayout *layout, bool deleteWidgets=true)
Removes content from box layout.
QWidget * placeHolder()
Returns empty widget to occupy place in layout.
void clearGridLayout(QGridLayout *layout, bool deleteWidgets=true)
Clear layout completely.
MVVM_MODEL_EXPORT bool remove(const std::string &path)
Removes file or empty directory.