17 #include <QGridLayout>
18 #include <QLayoutItem>
22 void remove(QGridLayout* layout,
int row,
int column,
bool deleteWidgets);
23 void deleteChildWidgets(QLayoutItem* item);
31 while (QLayoutItem* item = layout->takeAt(0)) {
33 delete item->widget();
34 if (QLayout* childLayout = item->layout())
51 remove(layout, row, -1, deleteWidgets);
52 layout->setRowMinimumHeight(row, 0);
53 layout->setRowStretch(row, 0);
67 remove(layout, -1, column, deleteWidgets);
68 layout->setColumnMinimumWidth(column, 0);
69 layout->setColumnStretch(column, 0);
74 for (
int i_row = 0; i_row < layout->rowCount(); ++i_row) {
88 void remove(QGridLayout* layout,
int row,
int column,
bool deleteWidgets)
91 for (
int i = layout->count() - 1; i >= 0; i--) {
93 layout->getItemPosition(i, &r, &c, &rs, &cs);
94 if ((r <= row && r + rs - 1 >= row) || (c <= column && c + cs - 1 >= column)) {
96 QLayoutItem* item = layout->takeAt(i);
98 deleteChildWidgets(item);
108 void deleteChildWidgets(QLayoutItem* item)
110 if (item->layout()) {
112 for (
int i = 0; i < item->layout()->count(); i++)
113 deleteChildWidgets(item->layout()->itemAt(i));
115 item->widget()->deleteLater();
122 auto result =
new QWidget;
123 result->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
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.