Cleanup: remove QMLInterface::instance()

QMLInterface::instance() is only used in one single place. This
makes the whole notion of having a global instance of the object
moot, isn't it?

Simply make the object static to the function that uses it, which
guarantees that the object will be created when the function is
called. I.e. the same behavior is retained with less complexity.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-01-31 09:42:09 +01:00 committed by bstoeger
parent 188e513761
commit 3b42de66dc
2 changed files with 3 additions and 11 deletions

View file

@ -81,16 +81,11 @@ QMLInterface::QMLInterface()
this, &QMLInterface::display_variationsChanged);
}
QMLInterface *QMLInterface::instance()
{
static QMLInterface *self = new QMLInterface;
return self;
}
void QMLInterface::setup(QQmlContext *ct)
{
// Register interface class
ct->setContextProperty("Backend", QMLInterface::instance());
static QMLInterface self;
ct->setContextProperty("Backend", &self);
// Make enums available as types
qmlRegisterUncreatableType<QMLInterface>("org.subsurfacedivelog.mobile",1,0,"Enums","Enum is not a type");
@ -100,7 +95,6 @@ void QMLInterface::setup(QQmlContext *ct)
diveSummary::summaryCalculation(0, 3);
}
void QMLInterface::summaryCalculation(int primaryPeriod, int secondaryPeriod)
{
diveSummary::summaryCalculation(primaryPeriod, secondaryPeriod);

View file

@ -81,9 +81,7 @@ class QMLInterface : public QObject {
Q_PROPERTY(QStringList diveSummaryText READ diveSummaryText NOTIFY diveSummaryTextChanged);
public:
static QMLInterface *instance();
// function to do the needed setup and do connect of signal/signal
// function to do the needed setup
static void setup(QQmlContext *ct);
// Duplicated enums, these enums are properly defined in the C/C++ structure