summaryrefslogtreecommitdiff
path: root/src/frontend/qtwidgets/lib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/qtwidgets/lib.cpp')
-rw-r--r--src/frontend/qtwidgets/lib.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/frontend/qtwidgets/lib.cpp b/src/frontend/qtwidgets/lib.cpp
new file mode 100644
index 0000000..2290472
--- /dev/null
+++ b/src/frontend/qtwidgets/lib.cpp
@@ -0,0 +1,22 @@
+#include <QApplication>
+#include <QMainWindow>
+#include <QWidget>
+
+#include "lib.h"
+
+// shamelessly ripped from https://stackoverflow.com/a/46456214
+AssignmentList *getMainWindow() {
+ foreach(QWidget *w, QApplication::topLevelWidgets())
+ if(AssignmentList *mainWin = qobject_cast<AssignmentList*>(w))
+ return mainWin;
+ return nullptr;
+}
+
+void recursiveClear(QLayout *layout) {
+ QLayoutItem *child;
+ while((child = layout->takeAt(0)) != nullptr) {
+ if(child->layout()) recursiveClear(child->layout());
+ delete child->widget();
+ delete child;
+ }
+}