diff --git a/GUI/Model/Instrument/InstrumentModel.cpp b/GUI/Model/Instrument/InstrumentModel.cpp index bfe3027dc8d83a35d94a33b09fc6d6039b4a5ed1..3ccfd10f486e8a3c8ac8f7740df6807b118466fa 100644 --- a/GUI/Model/Instrument/InstrumentModel.cpp +++ b/GUI/Model/Instrument/InstrumentModel.cpp @@ -29,13 +29,6 @@ InstrumentModel::InstrumentModel(QObject* parent) InstrumentModel::~InstrumentModel() = default; -InstrumentModel* InstrumentModel::createCopy(SessionItem* parent) -{ - auto* result = new InstrumentModel(); - result->initFrom(this, parent); - return result; -} - QVector<SessionItem*> InstrumentModel::nonXMLItems() const { QVector<SessionItem*> result; diff --git a/GUI/Model/Instrument/InstrumentModel.h b/GUI/Model/Instrument/InstrumentModel.h index a39b9aeb76b116e18299eec0492565f3aae87d45..66e71cd7fdd91c6fa06d06154faec20ad7f15870 100644 --- a/GUI/Model/Instrument/InstrumentModel.h +++ b/GUI/Model/Instrument/InstrumentModel.h @@ -28,7 +28,6 @@ public: explicit InstrumentModel(QObject* parent = nullptr); ~InstrumentModel() override; - InstrumentModel* createCopy(SessionItem* parent = nullptr) override; QVector<SessionItem*> nonXMLItems() const override; void readFrom(QXmlStreamReader* reader, MessageService* messageService = nullptr) override; diff --git a/GUI/Model/Sample/ParticleCoreShellItem.cpp b/GUI/Model/Sample/ParticleCoreShellItem.cpp index 183d5c7955b231c69dbfbd2fbe8b1aa737aabaf4..ecbbe645565479ffd8ad08dc391b0ada167b8244 100644 --- a/GUI/Model/Sample/ParticleCoreShellItem.cpp +++ b/GUI/Model/Sample/ParticleCoreShellItem.cpp @@ -78,11 +78,6 @@ ParticleItem* ParticleCoreShellItem::createCore(MaterialModel* materials) return p; } -bool ParticleCoreShellItem::isCoreTagName(const QString& name) -{ - return T_CORE == name; -} - ParticleItem* ParticleCoreShellItem::shell() const { return dynamic_cast<ParticleItem*>(getItem(T_SHELL)); @@ -106,8 +101,3 @@ ParticleItem* ParticleCoreShellItem::createShell(MaterialModel* materials) return p; } - -bool ParticleCoreShellItem::isShellTagName(const QString& name) -{ - return T_SHELL == name; -} diff --git a/GUI/Model/Sample/ParticleCoreShellItem.h b/GUI/Model/Sample/ParticleCoreShellItem.h index 19fade676a362961cefcc11f65e7357097b14d4c..146ed37e3f7b67adbc58355ef3798ce508d52cec 100644 --- a/GUI/Model/Sample/ParticleCoreShellItem.h +++ b/GUI/Model/Sample/ParticleCoreShellItem.h @@ -37,12 +37,10 @@ public: ParticleItem* core() const; void clearCore(); ParticleItem* createCore(MaterialModel* materials); - static bool isCoreTagName(const QString& name); ParticleItem* shell() const; void clearShell(); ParticleItem* createShell(MaterialModel* materials); - static bool isShellTagName(const QString& name); }; #endif // BORNAGAIN_GUI_MODEL_SAMPLE_PARTICLECORESHELLITEM_H diff --git a/GUI/Model/Sample/SampleModel.cpp b/GUI/Model/Sample/SampleModel.cpp index e8db59194790059c1f106133141924f63bd7dd21..001bc665d0f1705807ec4d67dc501effeab27508 100644 --- a/GUI/Model/Sample/SampleModel.cpp +++ b/GUI/Model/Sample/SampleModel.cpp @@ -28,36 +28,6 @@ SampleModel::SampleModel(QObject* parent) : SessionModel(GUI::Session::XML::Samp connect(this, &SampleModel::dataChanged, this, &SampleModel::onDataChanged); } -SampleModel* SampleModel::createCopy(SessionItem* parent) -{ - auto* result = new SampleModel(); - result->initFrom(this, parent); - return result; -} - -QVariant SampleModel::data(const QModelIndex& index, int role) const -{ - if (!index.isValid()) - return QVariant(); - - if (SessionItem* item = itemForIndex(index)) { - if (role == Qt::DecorationRole && index.column() == SessionFlags::ITEM_VALUE) { - const auto propertyName = item->itemName(); - const auto* itemWithMaterial = dynamic_cast<ItemWithMaterial*>(item->parent()); - - if (ItemWithMaterial::isMaterialPropertyName(propertyName) - && itemWithMaterial != nullptr) { - const int size = qApp->fontMetrics().height(); - QPixmap pixmap(size, size); - pixmap.fill(itemWithMaterial->materialColor()); - return pixmap; - } - } - } - - return SessionModel::data(index, role); -} - MultiLayerItem* SampleModel::multiLayerItem() { return topItem<MultiLayerItem>(); diff --git a/GUI/Model/Sample/SampleModel.h b/GUI/Model/Sample/SampleModel.h index bc6426cd49c5aefb36aee9ca5bc87f3287a86595..d310ed74fcfa3dbb0330535acdd6e28cfe0dbb79 100644 --- a/GUI/Model/Sample/SampleModel.h +++ b/GUI/Model/Sample/SampleModel.h @@ -28,10 +28,6 @@ class SampleModel : public SessionModel { public: explicit SampleModel(QObject* parent = nullptr); - SampleModel* createCopy(SessionItem* parent = nullptr) override; - - QVariant data(const QModelIndex& index, int role) const override; - MultiLayerItem* multiLayerItem(); QVector<MultiLayerItem*> multiLayerItems() const; diff --git a/GUI/Model/Session/SessionModel.cpp b/GUI/Model/Session/SessionModel.cpp index c29320d3300d23163a4b9dbc3105da9626ef8c3d..bc033d1577228a9e76692998805d11c40d956e6d 100644 --- a/GUI/Model/Session/SessionModel.cpp +++ b/GUI/Model/Session/SessionModel.cpp @@ -408,12 +408,6 @@ SessionItem* SessionModel::copy(const SessionItem* item_to_copy, SessionItem* ne return new_parent->getItems(tagName).back(); } -SessionModel* SessionModel::createCopy(SessionItem* parent) -{ - Q_UNUSED(parent); - throw Error("SessionModel::createCopy() -> Error. Not implemented."); -} - void SessionModel::initFrom(SessionModel* model, SessionItem*) { QByteArray byte_array; @@ -429,7 +423,6 @@ void SessionModel::initFrom(SessionModel* model, SessionItem*) if (reader.isStartElement()) readFrom(&reader); } - modelLoaded(); } SessionItem* SessionModel::rootItem() const diff --git a/GUI/Model/Session/SessionModel.h b/GUI/Model/Session/SessionModel.h index 579de599edab1f3d98d6012e565872b33e48ad93..7690acdc4056f644cdacb6781389b00c3c450c49 100644 --- a/GUI/Model/Session/SessionModel.h +++ b/GUI/Model/Session/SessionModel.h @@ -53,7 +53,6 @@ public: QModelIndex index(int row, int column, const QModelIndex& parent) const override; QModelIndex parent(const QModelIndex& child) const override; - bool setHeaderData(int, Qt::Orientation, const QVariant&, int = Qt::EditRole) override; bool setData(const QModelIndex& index, const QVariant& value, int role) override; bool removeRows(int row, int count, const QModelIndex& parent) override; @@ -107,8 +106,6 @@ public: SessionItem* copy(const SessionItem* item_to_copy, SessionItem* new_parent = nullptr, const QString& tag = ""); - virtual SessionModel* createCopy(SessionItem* parent = nullptr); - //! Returns first item in list of topItems template <typename T = SessionItem> T* topItem() const; template <typename T = SessionItem> QVector<T*> topItems() const; @@ -120,9 +117,6 @@ public: virtual QVector<SessionItem*> nonXMLItems() const; -signals: - void modelLoaded(); - protected: void setRootItem(SessionItem* root) { m_root_item = root; } @@ -183,11 +177,6 @@ template <typename T> QVector<T*> SessionModel::topItems(std::function<bool(cons return result; } -inline bool SessionModel::setHeaderData(int, Qt::Orientation, const QVariant&, int) -{ - return false; -} - inline Qt::DropActions SessionModel::supportedDragActions() const { return Qt::MoveAction; diff --git a/Tests/Unit/GUI/TestSessionModel.cpp b/Tests/Unit/GUI/TestSessionModel.cpp index 537e1a1851a262c3c787e324b66a8abeff365f2b..ecad662058e5b464d129413aeb7b44c82b7ab39f 100644 --- a/Tests/Unit/GUI/TestSessionModel.cpp +++ b/Tests/Unit/GUI/TestSessionModel.cpp @@ -45,83 +45,6 @@ TEST_F(TestSessionModel, setData) EXPECT_EQ(spy.count(), 1); } -TEST_F(TestSessionModel, SampleModelCopy) -{ - std::unique_ptr<MaterialModel> P_materialModel(new MaterialModel()); - - SampleModel model1; - auto* multilayer = model1.insertItem<MultiLayerItem>(); - multilayer->setSampleName("multilayer"); - multilayer->addLayer(); - auto* multilayer2 = model1.insertItem<MultiLayerItem>(); - multilayer2->setSampleName("multilayer2"); - - QString buffer1; - QXmlStreamWriter writer1(&buffer1); - model1.writeTo(&writer1); - - std::unique_ptr<SampleModel> model2(model1.createCopy()); - QString buffer2; - QXmlStreamWriter writer2(&buffer2); - model2->writeTo(&writer2); - - EXPECT_EQ(buffer1, buffer2); -} - -TEST_F(TestSessionModel, SampleModelPartialCopy) -{ - std::unique_ptr<MaterialModel> P_materialModel(new MaterialModel()); - - SampleModel model1; - auto* multilayer1 = model1.insertItem<MultiLayerItem>(); - multilayer1->setSampleName("multilayer1"); - model1.insertItem<LayerItem>(multilayer1); - - auto* multilayer2 = model1.insertItem<MultiLayerItem>(); - multilayer2->setSampleName("multilayer2"); - - std::unique_ptr<SampleModel> model2(model1.createCopy(multilayer1)); - SessionItem* result = model2->itemForIndex(model2->index(0, 0, QModelIndex())); - - EXPECT_EQ(result->itemName(), multilayer1->sampleName()); - EXPECT_EQ(result->modelType(), multilayer1->modelType()); -} - -TEST_F(TestSessionModel, InstrumentModelCopy) -{ - InstrumentModel model1; - auto* instrument1 = model1.insertItem<GISASInstrumentItem>(); - instrument1->setItemName("instrument1"); - - auto* instrument2 = model1.insertItem<GISASInstrumentItem>(); - instrument2->setItemName("instrument2"); - - QString buffer1; - QXmlStreamWriter writer1(&buffer1); - model1.writeTo(&writer1); - - std::unique_ptr<InstrumentModel> model2(model1.createCopy()); - QString buffer2; - QXmlStreamWriter writer2(&buffer2); - model2->writeTo(&writer2); - - EXPECT_EQ(buffer1, buffer2); -} - -TEST_F(TestSessionModel, InstrumentModelPartialCopy) -{ - InstrumentModel model1; - auto* instrument1 = model1.insertItem<GISASInstrumentItem>(); - instrument1->setItemName("instrument1"); - - auto* instrument2 = model1.insertItem<GISASInstrumentItem>(); - instrument2->setItemName("instrument2"); - - std::unique_ptr<InstrumentModel> model2(model1.createCopy(instrument2)); - SessionItem* result = model2->itemForIndex(model2->index(0, 0, QModelIndex())); - EXPECT_EQ(result->modelType(), instrument2->modelType()); -} - //! Test if SessionItem can be copied from one model to another. Particularly, we test //! here if a MultiLayerItem can be copied from SampleModel to the JobItem of JobModel