[libcalamaresui] Avoid metatype warnings at runtime
- Register the types with the Qt type system. This is needed because we're passing them as signal and slot parameters across threads.
This commit is contained in:
parent
f1aa22d9e8
commit
41fecf341b
@ -95,7 +95,7 @@ signals:
|
|||||||
void modulesFailed( QStringList ); /// .. or not
|
void modulesFailed( QStringList ); /// .. or not
|
||||||
// Below, see RequirementsChecker documentation
|
// Below, see RequirementsChecker documentation
|
||||||
void requirementsComplete( bool );
|
void requirementsComplete( bool );
|
||||||
void requirementsResult( RequirementsList& );
|
void requirementsResult( RequirementsList );
|
||||||
void requirementsProgress( const QString& );
|
void requirementsProgress( const QString& );
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#define CALAMARES_REQUIREMENT_H
|
#define CALAMARES_REQUIREMENT_H
|
||||||
|
|
||||||
#include <QList>
|
#include <QList>
|
||||||
|
#include <QMetaType>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
@ -57,4 +58,7 @@ struct RequirementEntry
|
|||||||
using RequirementsList = QList< RequirementEntry >;
|
using RequirementsList = QList< RequirementEntry >;
|
||||||
|
|
||||||
} // namespace Calamares
|
} // namespace Calamares
|
||||||
|
|
||||||
|
Q_DECLARE_METATYPE(Calamares::RequirementEntry)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -34,7 +34,26 @@
|
|||||||
namespace Calamares
|
namespace Calamares
|
||||||
{
|
{
|
||||||
|
|
||||||
void
|
static void
|
||||||
|
registerMetatypes()
|
||||||
|
{
|
||||||
|
static bool done = false;
|
||||||
|
|
||||||
|
if ( !done )
|
||||||
|
{
|
||||||
|
qRegisterMetaType< RequirementEntry >( "RequirementEntry" );
|
||||||
|
// It's sensitive to the names of types in parameters; in particular
|
||||||
|
// althrough QList<RequirementEntry> is the same as RequirementsList,
|
||||||
|
// because we *name* the type as RequirementsList in the parameters,
|
||||||
|
// we need to register that (as well). Here, be safe and register
|
||||||
|
// both names.
|
||||||
|
qRegisterMetaType< QList< RequirementEntry > >( "QList<RequirementEntry>" );
|
||||||
|
qRegisterMetaType< RequirementsList >( "RequirementsList" );
|
||||||
|
done = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
check( Module * const &m, RequirementsChecker *c )
|
check( Module * const &m, RequirementsChecker *c )
|
||||||
{
|
{
|
||||||
RequirementsList l = m->checkRequirements();
|
RequirementsList l = m->checkRequirements();
|
||||||
@ -49,6 +68,8 @@ RequirementsChecker::RequirementsChecker( QVector< Module* > modules, QObject* p
|
|||||||
{
|
{
|
||||||
m_watchers.reserve( m_modules.count() );
|
m_watchers.reserve( m_modules.count() );
|
||||||
m_collectedRequirements.reserve( m_modules.count() );
|
m_collectedRequirements.reserve( m_modules.count() );
|
||||||
|
|
||||||
|
registerMetatypes();
|
||||||
}
|
}
|
||||||
|
|
||||||
RequirementsChecker::~RequirementsChecker()
|
RequirementsChecker::~RequirementsChecker()
|
||||||
|
@ -53,7 +53,7 @@ signals:
|
|||||||
/// @brief Human-readable progress message
|
/// @brief Human-readable progress message
|
||||||
void requirementsProgress( const QString& );
|
void requirementsProgress( const QString& );
|
||||||
/// @brief Requirements from a single module
|
/// @brief Requirements from a single module
|
||||||
void requirementsResult( RequirementsList& );
|
void requirementsResult( RequirementsList );
|
||||||
/** @brief When all requirements are collected
|
/** @brief When all requirements are collected
|
||||||
*
|
*
|
||||||
* The argument indicates if all mandatory requirements are satisfied.
|
* The argument indicates if all mandatory requirements are satisfied.
|
||||||
|
Loading…
Reference in New Issue
Block a user