qtutils: implement parent finder
This commit is contained in:
@@ -64,6 +64,21 @@ public:
|
|||||||
|
|
||||||
static QStringList WordWrapString(const QString &s, const QFontMetrics &fm, int bounding_width);
|
static QStringList WordWrapString(const QString &s, const QFontMetrics &fm, int bounding_width);
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
static T *GetParentOfType(const QObject *child)
|
||||||
|
{
|
||||||
|
QObject *t = child->parent();
|
||||||
|
|
||||||
|
while (t) {
|
||||||
|
if (T *p = dynamic_cast<T*>(t)) {
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
t = t->parent();
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
|
||||||
|
#include "common/qtutils.h"
|
||||||
#include "common/xmlutils.h"
|
#include "common/xmlutils.h"
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
#include "dialog/progress/progress.h"
|
#include "dialog/progress/progress.h"
|
||||||
@@ -173,16 +174,7 @@ void Project::RegenerateUuid()
|
|||||||
|
|
||||||
Project *Project::GetProjectFromObject(const QObject *o)
|
Project *Project::GetProjectFromObject(const QObject *o)
|
||||||
{
|
{
|
||||||
QObject *t = o->parent();
|
return QtUtils::GetParentOfType<Project>(o);
|
||||||
|
|
||||||
while (t) {
|
|
||||||
if (Project *p = dynamic_cast<Project*>(t)) {
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
t = t->parent();
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Project::ColorManagerValueChanged(const NodeInput &input, const TimeRange &range)
|
void Project::ColorManagerValueChanged(const NodeInput &input, const TimeRange &range)
|
||||||
|
|||||||
Reference in New Issue
Block a user