Cockatrice/libcockatrice_utility/libcockatrice/utility/qt_utils.h
Lukas Brübach 68ad18ad04 [VDE] Deck Analytics Widgets overhaul
Took 2 minutes

Took 3 minutes

Took 3 minutes
2025-12-31 17:58:55 +01:00

34 lines
759 B
C++

#ifndef COCKATRICE_QT_UTILS_H
#define COCKATRICE_QT_UTILS_H
#include <QObject>
namespace QtUtils
{
template <typename T> T *findParentOfType(const QObject *obj)
{
const QObject *p = obj ? obj->parent() : nullptr;
while (p) {
if (auto casted = qobject_cast<T *>(const_cast<QObject *>(p))) {
return casted;
}
p = p->parent();
}
return nullptr;
}
static void clearLayoutRec(QLayout *l)
{
if (!l)
return;
QLayoutItem *it;
while ((it = l->takeAt(0)) != nullptr) {
if (QWidget *w = it->widget())
w->deleteLater();
if (QLayout *sub = it->layout())
clearLayoutRec(sub);
delete it;
}
}
} // namespace QtUtils
#endif // COCKATRICE_QT_UTILS_H