Skip to content
Snippets Groups Projects
Commit 47666ea4 authored by Matthias Puchner's avatar Matthias Puchner
Browse files

do not expose applicationModels on ProjectDocument interface

parent 82ef4e30
No related branches found
No related tags found
1 merge request!302Simplify instrument linking
......@@ -257,7 +257,7 @@ QVector<RealDataItem*> SimulationView::realDataItems() const
SimulationOptionsItem* SimulationView::optionsItem() const
{
return m_document->applicationModels()->documentModel()->simulationOptionsItem();
return m_document->simulationOptionsItem();
}
const MultiLayerItem* SimulationView::selectedSample() const
......
......@@ -13,7 +13,7 @@
// ************************************************************************************************
#include "GUI/mainwindow/projectdocument.h"
#include "GUI/Models/ApplicationModels.h"
#include "GUI/Models/DocumentModel.h"
#include "GUI/Models/Error.h"
#include "GUI/Models/JobModel.h"
#include "GUI/Views/ImportDataWidgets/LinkInstrumentManager.h"
......@@ -94,11 +94,6 @@ QString ProjectDocument::projectFileExtension()
return ".pro";
}
ApplicationModels* ProjectDocument::applicationModels()
{
return &m_applicationModels;
}
InstrumentModel* ProjectDocument::instrumentModel() const
{
return m_applicationModels.instrumentModel();
......@@ -124,6 +119,11 @@ JobModel* ProjectDocument::jobModel() const
return m_applicationModels.jobModel();
}
SimulationOptionsItem* ProjectDocument::simulationOptionsItem() const
{
return m_applicationModels.documentModel()->simulationOptionsItem();
}
LinkInstrumentManager* ProjectDocument::linkInstrumentManager()
{
return m_linkManager;
......
......@@ -28,6 +28,7 @@ class MaterialModel;
class RealDataModel;
class JobModel;
class LinkInstrumentManager;
class SimulationOptionsItem;
//! Project document class handles all data related to the opened project
//! (sample, jobModel, project specific windows settings)
......@@ -65,12 +66,13 @@ public:
static QString projectFileExtension();
ApplicationModels* applicationModels();
InstrumentModel* instrumentModel() const;
SampleModel* sampleModel() const;
MaterialModel* materialModel() const;
RealDataModel* realDataModel() const;
JobModel* jobModel() const;
SimulationOptionsItem* simulationOptionsItem() const;
LinkInstrumentManager* linkInstrumentManager();
void save(const QString& project_file_name, bool autoSave = false);
......
......@@ -16,9 +16,9 @@
class TestProjectDocument : public ::testing::Test {
protected:
//! helper method to modify something in a model
void modify_models(ApplicationModels* models)
void modify_models(ProjectDocument& doc)
{
auto instrument = models->instrumentModel()->instrumentItems().front();
auto instrument = doc.instrumentModel()->instrumentItems().front();
instrument->setId(GUI::Helpers::createUuid());
}
};
......@@ -52,7 +52,7 @@ TEST_F(TestProjectDocument, test_projectDocument)
EXPECT_EQ(spyDocument.count(), 0);
// Changing document and checking its status
modify_models(document.applicationModels());
modify_models(document);
EXPECT_TRUE(document.isModified());
EXPECT_EQ(spyDocument.count(), 1);
......
......@@ -18,9 +18,9 @@
class TestSaveService : public ::testing::Test {
protected:
// helper method to modify something in a model
void modify_models(ApplicationModels* models)
void modify_models(ProjectDocument& doc)
{
auto instrument = models->instrumentModel()->instrumentItems().front();
auto instrument = doc.instrumentModel()->instrumentItems().front();
instrument->setId(GUI::Helpers::createUuid());
}
const int m_save_wait = 10000;
......@@ -55,7 +55,7 @@ TEST_F(TestSaveService, test_autoSaveController)
QSignalSpy spyAutosave(&autosave, SIGNAL(autosaveRequest()));
// modify document once and check that autosave directory was created
modify_models(document->applicationModels());
modify_models(*document);
EXPECT_TRUE(document->isModified());
EXPECT_TRUE(spyAutosave.wait(m_save_wait));
EXPECT_EQ(spyAutosave.count(), 1);
......@@ -68,7 +68,7 @@ TEST_F(TestSaveService, test_autoSaveController)
// modify several times and check than autosave was triggered only once
for (size_t i = 0; i < 10; ++i)
modify_models(document->applicationModels());
modify_models(*document);
EXPECT_TRUE(spyAutosave.wait(m_save_wait));
EXPECT_EQ(spyAutosave.count(), 2);
......@@ -94,7 +94,7 @@ TEST_F(TestSaveService, test_autoSaveControllerNewDocument)
QSignalSpy spyAutosave(&autosave, SIGNAL(autosaveRequest()));
modify_models(document->applicationModels());
modify_models(*document);
EXPECT_FALSE(spyAutosave.wait(autosave_time * 2));
EXPECT_EQ(spyAutosave.count(), 0);
}
......@@ -112,7 +112,7 @@ TEST_F(TestSaveService, test_saveService)
std::unique_ptr<ProjectDocument> document(new ProjectDocument);
auto instrument = document->instrumentModel()->insertItem<GISASInstrumentItem>();
instrument->setItemName("GISAS");
modify_models(document->applicationModels());
modify_models(*document);
EXPECT_FALSE(QFile::exists(projectFileName));
......@@ -145,7 +145,7 @@ TEST_F(TestSaveService, test_failingSaveService)
std::unique_ptr<ProjectDocument> document(new ProjectDocument);
auto instrument = document->instrumentModel()->insertItem<GISASInstrumentItem>();
instrument->setItemName("GISAS");
modify_models(document->applicationModels());
modify_models(*document);
EXPECT_FALSE(QFile::exists(projectFileName));
......@@ -240,7 +240,7 @@ TEST_F(TestSaveService, test_autosaveEnabled)
// modify several times and check SaveService signals
for (size_t i = 0; i < 10; ++i)
modify_models(document->applicationModels());
modify_models(*document);
EXPECT_TRUE(document->isModified());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment