diff --git a/CommonData/databaseinterface.cpp b/CommonData/databaseinterface.cpp index 9bdaf19e06..5a29f7bf11 100644 --- a/CommonData/databaseinterface.cpp +++ b/CommonData/databaseinterface.cpp @@ -1369,6 +1369,12 @@ std::string DatabaseInterface::dbFile(bool onlyName) const DatabaseInterface *DatabaseInterface::singleton() { + if(!_singleton) + { + Log::log() << "No DatabaseInterface::singleton available here yet, creating an interface for internal.sqlite without recreating the dbstructure" << std::endl; + _singleton = new DatabaseInterface(false); + } + return _singleton; } diff --git a/CommonData/dataset.cpp b/CommonData/dataset.cpp index 67a281d273..2600b129c8 100644 --- a/CommonData/dataset.cpp +++ b/CommonData/dataset.cpp @@ -619,9 +619,3 @@ bool DataSet::initColumnWithStrings(int colIndex, const std::string & newName, c return anyChanges || column->type() != prevType; } -bool DataSet::isFilterNameFree(const std::string& filterName) -{ - return -1 == db().filterGetId(filterName); -} - - diff --git a/CommonData/dataset.h b/CommonData/dataset.h index 704fa7cf44..1c5165a18c 100644 --- a/CommonData/dataset.h +++ b/CommonData/dataset.h @@ -83,7 +83,6 @@ class DataSet : public DataSetBaseNode void setWorkspaceEmptyValues( const stringset& values); const std::string & description() const { return _description; } void setDescription( const std::string& desc); - bool isFilterNameFree( const std::string& filterName); private: void upgradeTo019(const Json::Value & emptyVals); diff --git a/CommonData/filter.cpp b/CommonData/filter.cpp index 4931838036..439fe4cbbc 100644 --- a/CommonData/filter.cpp +++ b/CommonData/filter.cpp @@ -170,6 +170,11 @@ bool Filter::checkForUpdates() return false; } +bool Filter::filterNameIsFree(const std::string &filterName) +{ + return -1 == DatabaseInterface::singleton()->filterGetId(filterName); +} + void Filter::reset() { if(!_data->writeBatchedToDB()) diff --git a/CommonData/filter.h b/CommonData/filter.h index 1b47fde1c9..adf55df49e 100644 --- a/CommonData/filter.h +++ b/CommonData/filter.h @@ -56,6 +56,8 @@ class Filter : public DataSetBaseNode bool checkForUpdates(); void reset(); + static bool filterNameIsFree(const std::string & filterName); + DatabaseInterface & db(); const DatabaseInterface & db() const; diff --git a/Common/jsonutilities.cpp b/CommonData/jsonutilities.cpp similarity index 100% rename from Common/jsonutilities.cpp rename to CommonData/jsonutilities.cpp diff --git a/Common/jsonutilities.h b/CommonData/jsonutilities.h similarity index 100% rename from Common/jsonutilities.h rename to CommonData/jsonutilities.h diff --git a/QMLComponents/models/listmodelfiltereddataentry.cpp b/QMLComponents/models/listmodelfiltereddataentry.cpp index 900c266469..12310dfde9 100644 --- a/QMLComponents/models/listmodelfiltereddataentry.cpp +++ b/QMLComponents/models/listmodelfiltereddataentry.cpp @@ -17,13 +17,12 @@ ListModelFilteredDataEntry::ListModelFilteredDataEntry(TableViewBase * parent) connect(_tableView, SIGNAL(colNameSignal(QString)), this, SLOT(setColName(QString)) ); connect(_tableView, SIGNAL(extraColSignal(QString)), this, SLOT(setExtraCol(QString)) ); - DataSet* dataSet = VariableInfo::info()->dataSet(); static int counter = 0; do { _filterName = "ListModelFilteredDataEntry_" + std::to_string(counter++); } - while(!dataSet->isFilterNameFree(_filterName)); + while(!Filter::filterNameIsFree(_filterName)); connect(VariableInfo::info(), &VariableInfo::dataSetChanged, this, &ListModelFilteredDataEntry::dataSetChangedHandler); } diff --git a/QMLComponents/variableinfo.cpp b/QMLComponents/variableinfo.cpp index 1a9715a5eb..94e5c7b1bb 100644 --- a/QMLComponents/variableinfo.cpp +++ b/QMLComponents/variableinfo.cpp @@ -70,8 +70,5 @@ bool VariableInfo::dataAvailable() DataSet *VariableInfo::dataSet() { - if(!DatabaseInterface::singleton()) - new DatabaseInterface(false); - return _provider ? reinterpret_cast(_provider->provideInfo(VariableInfo::DataSetPointer).value()) : nullptr; }