Mercurial > hg > classical
changeset 31:07efb25d24d6
* Merge revs 7200-7222 from SVN (update use of loader API, switch to using
mapper for merge operation)
author | Chris Cannam |
---|---|
date | Thu, 18 Mar 2010 16:59:24 +0000 |
parents | 8bed05455706 |
children | abd5d022c85d |
files | common/Objects.cpp common/Objects.h testapp/Loader.cpp utilities/composer/composer.cpp utilities/composer/composer.pro utilities/widgettest/widgettest.cpp |
diffstat | 6 files changed, 210 insertions(+), 118 deletions(-) [+] |
line wrap: on
line diff
--- a/common/Objects.cpp Tue Mar 16 17:36:28 2010 +0000 +++ b/common/Objects.cpp Thu Mar 18 16:59:24 2010 +0000 @@ -600,16 +600,23 @@ } if (!m_birth) { - if (c->birth()) m_birth = new Birth(*c->birth()); + if (c->birth()) { + m_birth = new Birth(*c->birth()); + emit birthChanged(m_birth); + } } if (!m_death) { - if (c->death()) m_death = new Death(*c->death()); + if (c->death()) { + m_death = new Death(*c->death()); + emit deathChanged(m_death); + } } if (c->gender() != "") { if (m_gender == "") { m_gender = c->gender(); + emit genderChanged(m_gender); } else if (c->gender() != m_gender) { std::cerr << "WARNING: Composer::mergeFrom: Gender mismatch! Composer " << c->name().toStdString() << " has gender " << c->gender().toStdString() << ", but target composer " << m_name.toStdString() << " has gender " << m_gender.toStdString() << std::endl; } @@ -629,6 +636,14 @@ if (m_period == "") m_period = c->period(); if (m_remarks == "") m_remarks = c->remarks(); + + emit nationalityChanged(m_nationality); + emit geonameURIsChanged(m_geonameURIs); + emit otherURIsChanged(m_otherURIs); + emit pagesChanged(m_pages); + emit periodChanged(m_period); + emit remarksChanged(m_remarks); + emit aliasesChanged(m_aliases); } static int
--- a/common/Objects.h Tue Mar 16 17:36:28 2010 +0000 +++ b/common/Objects.h Thu Mar 18 16:59:24 2010 +0000 @@ -50,9 +50,9 @@ { Q_OBJECT - Q_PROPERTY(ClassicalData::Year year READ year WRITE setYear STORED true) - Q_PROPERTY(QString place READ place WRITE setPlace STORED true) - Q_PROPERTY(bool approximate READ approximate WRITE setApproximate STORED true) + Q_PROPERTY(ClassicalData::Year year READ year WRITE setYear NOTIFY yearChanged STORED true) + Q_PROPERTY(QString place READ place WRITE setPlace NOTIFY placeChanged STORED true) + Q_PROPERTY(bool approximate READ approximate WRITE setApproximate NOTIFY approximateChanged STORED true) public: HistoricalEvent() : m_year(0), m_place(), m_approximate(false) { } @@ -61,12 +61,17 @@ HistoricalEvent(const HistoricalEvent &h) : QObject(), m_year(h.m_year), m_place(h.m_place), m_approximate(h.m_approximate) { } Year year() const { return m_year; } - void setYear(Year y) { m_year = y; } + void setYear(Year y) { m_year = y; emit yearChanged(y); } QString place() const { return m_place; } - void setPlace(QString p) { m_place = p; } + void setPlace(QString p) { m_place = p; emit placeChanged(p); } bool approximate() const { return m_approximate; } - void setApproximate(bool a) { m_approximate = a; } + void setApproximate(bool a) { m_approximate = a; emit approximateChanged(a); } +signals: + void yearChanged(Year); + void placeChanged(QString); + void approximateChanged(bool); + private: Year m_year; QString m_place; @@ -100,8 +105,8 @@ { Q_OBJECT - Q_PROPERTY(ClassicalData::Composer *composer READ composer WRITE setComposer STORED true) - Q_PROPERTY(QSet<ClassicalData::Work *> works READ works WRITE setWorks STORED true) + Q_PROPERTY(ClassicalData::Composer *composer READ composer WRITE setComposer NOTIFY composerChanged STORED true) + Q_PROPERTY(QSet<ClassicalData::Work *> works READ works WRITE setWorks NOTIFY worksChanged STORED true) Q_PROPERTY(QString composerName READ composerName WRITE setComposerName STORED false) public: @@ -110,16 +115,20 @@ Composition(Year y, QString p) : HistoricalEvent(y, p), m_composer(0) { } Composer *composer() { return m_composer; } - void setComposer(Composer *c) { m_composer = c; } + void setComposer(Composer *c) { m_composer = c; emit composerChanged(c); } QSet<Work *> works() { return m_works; } - void setWorks(QSet<Work *> c) { m_works = c; } - void addWork(Work *w) { m_works.insert(w); } + void setWorks(QSet<Work *> c) { m_works = c; emit worksChanged(c); } + void addWork(Work *w) { m_works.insert(w); emit worksChanged(m_works); } // Not a storable property, set temporarily while composer record is found QString composerName() const { return m_cname; } void setComposerName(QString n) { m_cname = n; } +signals: + void composerChanged(Composer *); + void worksChanged(QSet<Work *>); + private: Composer *m_composer; QSet<Work *> m_works; @@ -130,21 +139,26 @@ { Q_OBJECT - Q_PROPERTY(Dataquay::Uri uri READ uri WRITE setUri STORED true) - Q_PROPERTY(QString siteName READ siteName WRITE setSiteName STORED true) - Q_PROPERTY(QObject *topic READ topic WRITE setTopic STORED true) + Q_PROPERTY(Dataquay::Uri uri READ uri WRITE setUri NOTIFY uriChanged STORED true) + Q_PROPERTY(QString siteName READ siteName WRITE setSiteName NOTIFY siteNameChanged STORED true) + Q_PROPERTY(QObject *topic READ topic WRITE setTopic NOTIFY topicChanged STORED true) public: Document(QObject *parent = 0) : QObject(parent), m_topic(0) { } Dataquay::Uri uri() const { return m_uri; } - void setUri(Dataquay::Uri uri) { m_uri = uri; } + void setUri(Dataquay::Uri uri) { m_uri = uri; emit uriChanged(uri); } QString siteName() const { return m_siteName; } - void setSiteName(QString n) { m_siteName = n; } + void setSiteName(QString n) { m_siteName = n; emit siteNameChanged(n); } QObject *topic() const { return m_topic; } // I don't own this - void setTopic(QObject *t) { m_topic = t; } + void setTopic(QObject *t) { m_topic = t; emit topicChanged(t); } + +signals: + void uriChanged(Dataquay::Uri); + void siteNameChanged(QString); + void topicChanged(QObject *); private: Dataquay::Uri m_uri; @@ -157,44 +171,56 @@ { Q_OBJECT - Q_PROPERTY(QString name READ name WRITE setName STORED true) - Q_PROPERTY(QSet<QString> aliases READ aliases WRITE setAliases STORED true) - Q_PROPERTY(QString remarks READ remarks WRITE setRemarks STORED true) - Q_PROPERTY(QSet<ClassicalData::Document*> pages READ pages WRITE setPages STORED true) - Q_PROPERTY(QSet<Dataquay::Uri> otherURIs READ otherURIs WRITE setOtherURIs STORED true) + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged STORED true) + Q_PROPERTY(QSet<QString> aliases READ aliases WRITE setAliases NOTIFY aliasesChanged STORED true) + Q_PROPERTY(QString remarks READ remarks WRITE setRemarks NOTIFY remarksChanged STORED true) + Q_PROPERTY(QSet<ClassicalData::Document*> pages READ pages WRITE setPages NOTIFY pagesChanged STORED true) + Q_PROPERTY(QSet<Dataquay::Uri> otherURIs READ otherURIs WRITE setOtherURIs NOTIFY otherURIsChanged STORED true) public: NamedEntity(QObject *parent = 0) : QObject(parent) { } ~NamedEntity() { +/* for (QSet<Document *>::iterator i = m_pages.begin(); i != m_pages.end(); ++i) { delete *i; } +*/ } QString name() const { return m_name; } - virtual void setName(QString n) { m_name = n; } + virtual void setName(QString n) { m_name = n; emit nameChanged(n); } QString remarks() const { return m_remarks; } - void setRemarks(QString n) { m_remarks = n; } + void setRemarks(QString n) { m_remarks = n; emit remarksChanged(n); } QSet<QString> aliases() const { return m_aliases; } - virtual void setAliases(QSet<QString> l) { m_aliases = l; } - virtual void addAlias(QString a) { m_aliases.insert(a); } + virtual void setAliases(QSet<QString> l) { m_aliases = l; emit aliasesChanged(l); } + virtual void addAlias(QString a) { m_aliases.insert(a); emit aliasesChanged(m_aliases); } QSet<Document *> pages() const { return m_pages; } - void addPage(Document *p) { m_pages.insert(p); } + void addPage(Document *p) { m_pages.insert(p); emit pagesChanged(m_pages); } void setPages(QSet<Document *> p) { +/* for (QSet<Document *>::iterator i = m_pages.begin(); i != m_pages.end(); ++i) { delete *i; } +*/ m_pages = p; + emit pagesChanged(p); } QSet<Dataquay::Uri> otherURIs() const { return m_otherURIs; } - void addOtherURI(Dataquay::Uri u) { m_otherURIs.insert(u); } - void setOtherURIs(QSet<Dataquay::Uri> u) { m_otherURIs = u; } + void addOtherURI(Dataquay::Uri u) { m_otherURIs.insert(u); emit otherURIsChanged(m_otherURIs); } + void setOtherURIs(QSet<Dataquay::Uri> u) { m_otherURIs = u; emit otherURIsChanged(u); } + +signals: + void nameChanged(QString); + void remarksChanged(QString); + void aliasesChanged(QSet<QString>); + void pagesChanged(QSet<Document *>); + void otherURIsChanged(QSet<Dataquay::Uri>); protected: QString m_name; @@ -212,49 +238,49 @@ { Q_OBJECT - Q_PROPERTY(QString key READ key WRITE setKey STORED true) - Q_PROPERTY(QString opus READ opus WRITE setOpus STORED true) - Q_PROPERTY(QString catalogue READ catalogue WRITE setCatalogue STORED true) - Q_PROPERTY(QString number READ number WRITE setNumber STORED true) - Q_PROPERTY(QSet<ClassicalData::Form*> forms READ forms WRITE setForms STORED true) - Q_PROPERTY(ClassicalData::Work* partOf READ partOf WRITE setPartOf STORED true) - Q_PROPERTY(QSet<ClassicalData::Work*> parts READ parts WRITE setParts STORED true) - Q_PROPERTY(QSet<ClassicalData::Movement*> movements READ movements WRITE setMovements STORED true) - Q_PROPERTY(ClassicalData::Composition *composition READ composition WRITE setComposition STORED true) + Q_PROPERTY(QString key READ key WRITE setKey NOTIFY keyChanged STORED true) + Q_PROPERTY(QString opus READ opus WRITE setOpus NOTIFY opusChanged STORED true) + Q_PROPERTY(QString catalogue READ catalogue WRITE setCatalogue NOTIFY catalogueChanged STORED true) + Q_PROPERTY(QString number READ number WRITE setNumber NOTIFY numberChanged STORED true) + Q_PROPERTY(QSet<ClassicalData::Form*> forms READ forms WRITE setForms NOTIFY formsChanged STORED true) + Q_PROPERTY(ClassicalData::Work* partOf READ partOf WRITE setPartOf NOTIFY partOfChanged STORED true) + Q_PROPERTY(QSet<ClassicalData::Work*> parts READ parts WRITE setParts NOTIFY partsChanged STORED true) + Q_PROPERTY(QSet<ClassicalData::Movement*> movements READ movements WRITE setMovements NOTIFY movementsChanged STORED true) + Q_PROPERTY(ClassicalData::Composition *composition READ composition WRITE setComposition NOTIFY compositionChanged STORED true) public: Work(QObject *parent = 0) : NamedEntity(parent), m_partOf(0), m_composition(0) { } QString key() const { return m_key; } - void setKey(QString n) { m_key = n; } + void setKey(QString n) { m_key = n; emit keyChanged(n); } QString opus() const { return m_opus; } - void setOpus(QString n) { m_opus = n; } + void setOpus(QString n) { m_opus = n; emit opusChanged(n); } QString catalogue() const { return m_catalogue; } - void setCatalogue(QString n) { m_catalogue = n; } + void setCatalogue(QString n) { m_catalogue = n; emit catalogueChanged(n); } QString number() const { return m_number; } - void setNumber(QString n) { m_number = n; } + void setNumber(QString n) { m_number = n; emit numberChanged(n); } QSet<Form *> forms() const { return m_forms; } - void setForms(QSet<Form *> f) { m_forms = f; } - void addForm(Form *f) { m_forms.insert(f); } + void setForms(QSet<Form *> f) { m_forms = f; emit formsChanged(f); } + void addForm(Form *f) { m_forms.insert(f); emit formsChanged(m_forms); } Work *partOf() const { return m_partOf; } - void setPartOf(Work *w) { m_partOf = w; } + void setPartOf(Work *w) { m_partOf = w; emit partOfChanged(w); } QSet<Work *> parts() const { return m_parts; } - void setParts(QSet<Work *> l) { m_parts = l; } - void addPart(Work *w) { m_parts.insert(w); } + void setParts(QSet<Work *> l) { m_parts = l; emit partsChanged(l); } + void addPart(Work *w) { m_parts.insert(w); emit partsChanged(m_parts); } QSet<Movement *> movements() const { return m_movements; } - void setMovements(QSet<Movement *> l) { m_movements = l; } - void addMovement(Movement *w) { m_movements.insert(w); } + void setMovements(QSet<Movement *> l) { m_movements = l; emit movementsChanged(l); } + void addMovement(Movement *w) { m_movements.insert(w); emit movementsChanged(m_movements); } Composition *composition() { return m_composition; } const Composition *composition() const { return m_composition; } - void setComposition(Composition *c) { m_composition = c; } + void setComposition(Composition *c) { m_composition = c; emit compositionChanged(c); } struct Ordering { bool operator()(Work *, Work *); @@ -269,6 +295,17 @@ //!!! todo: unit tests static int compareCatalogueNumberTexts(QString a, QString b); +signals: + void keyChanged(QString); + void opusChanged(QString); + void catalogueChanged(QString); + void numberChanged(QString); + void formsChanged(QSet<Form *>); + void partOfChanged(Work *); + void partsChanged(QSet<Work *>); + void movementsChanged(QSet<Movement *>); + void compositionChanged(Composition *); + private: QString m_key; QString m_opus; @@ -285,31 +322,38 @@ { Q_OBJECT - Q_PROPERTY(QString key READ key WRITE setKey STORED true) - Q_PROPERTY(QString number READ number WRITE setNumber STORED true) - Q_PROPERTY(ClassicalData::Work* partOf READ partOf WRITE setPartOf STORED true) - Q_PROPERTY(QSet<ClassicalData::Movement*> parts READ parts WRITE setParts STORED true) // movements can be nested - Q_PROPERTY(ClassicalData::Composition *composition READ composition WRITE setComposition STORED true) + Q_PROPERTY(QString key READ key WRITE setKey NOTIFY keyChanged STORED true) + Q_PROPERTY(QString number READ number WRITE setNumber NOTIFY numberChanged STORED true) + Q_PROPERTY(ClassicalData::Work* partOf READ partOf WRITE setPartOf NOTIFY partOfChanged STORED true) + Q_PROPERTY(QSet<ClassicalData::Movement*> parts READ parts WRITE setParts NOTIFY partsChanged STORED true) // movements can be nested + Q_PROPERTY(ClassicalData::Composition *composition READ composition WRITE setComposition NOTIFY compositionChanged STORED true) public: Movement(QObject *parent = 0) : NamedEntity(parent), m_partOf(0), m_composition(0) { } QString key() const { return m_key; } - void setKey(QString n) { m_key = n; } + void setKey(QString n) { m_key = n; emit keyChanged(n); } QString number() const { return m_number; } - void setNumber(QString n) { m_number = n; } + void setNumber(QString n) { m_number = n; emit numberChanged(n); } Work *partOf() const { return m_partOf; } - void setPartOf(Work *w) { m_partOf = w; } + void setPartOf(Work *w) { m_partOf = w; emit partOfChanged(w); } QSet<Movement *> parts() const { return m_parts; } - void setParts(QSet<Movement *> l) { m_parts = l; } - void addPart(Movement *w) { m_parts.insert(w); } + void setParts(QSet<Movement *> l) { m_parts = l; emit partsChanged(l); } + void addPart(Movement *w) { m_parts.insert(w); emit partsChanged(m_parts); } Composition *composition() { return m_composition; } const Composition *composition() const { return m_composition; } - void setComposition(Composition *c) { m_composition = c; } + void setComposition(Composition *c) { m_composition = c; emit compositionChanged(c); } + +signals: + void keyChanged(QString); + void numberChanged(QString); + void partOfChanged(Work *); + void partsChanged(QSet<Movement *>); + void compositionChanged(Composition *); private: QString m_key; @@ -323,12 +367,12 @@ { Q_OBJECT - Q_PROPERTY(QString gender READ gender WRITE setGender STORED true) - Q_PROPERTY(QSet<QString> nationality READ nationality WRITE setNationality STORED true) - Q_PROPERTY(QSet<Dataquay::Uri> geonameURIs READ geonameURIs WRITE setGeonameURIs STORED true) - Q_PROPERTY(QString period READ period WRITE setPeriod STORED true) - Q_PROPERTY(ClassicalData::Birth *birth READ birth WRITE setBirth STORED true) - Q_PROPERTY(ClassicalData::Death *death READ death WRITE setDeath STORED true) + Q_PROPERTY(QString gender READ gender WRITE setGender NOTIFY genderChanged STORED true) + Q_PROPERTY(QSet<QString> nationality READ nationality WRITE setNationality NOTIFY nationalityChanged STORED true) + Q_PROPERTY(QSet<Dataquay::Uri> geonameURIs READ geonameURIs WRITE setGeonameURIs NOTIFY geonameURIsChanged STORED true) + Q_PROPERTY(QString period READ period WRITE setPeriod NOTIFY periodChanged STORED true) + Q_PROPERTY(ClassicalData::Birth *birth READ birth WRITE setBirth NOTIFY birthChanged STORED true) + Q_PROPERTY(ClassicalData::Death *death READ death WRITE setDeath NOTIFY deathChanged STORED true) Q_PROPERTY(QString surname READ getSurname STORED false) Q_PROPERTY(QString forenames READ getForenames STORED false) @@ -338,26 +382,26 @@ NamedEntity(parent), m_birth(0), m_death(0), m_namesCached(false) { } QString gender() const { return m_gender; } - void setGender(QString n) { m_gender = n; } + void setGender(QString n) { m_gender = n; emit genderChanged(n); } QSet<QString> nationality() const { return m_nationality; } - void setNationality(QSet<QString> n) { m_nationality = n; } - void addNationality(QString n) { m_nationality.insert(n); } + void setNationality(QSet<QString> n) { m_nationality = n; emit nationalityChanged(n); } + void addNationality(QString n) { m_nationality.insert(n); emit nationalityChanged(m_nationality); } QSet<Dataquay::Uri> geonameURIs() const { return m_geonameURIs; } - void setGeonameURIs(QSet<Dataquay::Uri> n) { m_geonameURIs = n; } - void addGeonameURI(Dataquay::Uri n) { m_geonameURIs.insert(n); } + void setGeonameURIs(QSet<Dataquay::Uri> n) { m_geonameURIs = n; emit geonameURIsChanged(n); } + void addGeonameURI(Dataquay::Uri n) { m_geonameURIs.insert(n); emit geonameURIsChanged(m_geonameURIs); } QString period() const { return m_period; } - void setPeriod(QString n) { m_period = n; } + void setPeriod(QString n) { m_period = n; emit periodChanged(n); } Birth *birth() { return m_birth; } const Birth *birth() const { return m_birth; } - void setBirth(Birth *b) { m_birth = b; } + void setBirth(Birth *b) { m_birth = b; emit birthChanged(b); } Death *death() { return m_death; } const Death *death() const { return m_death; } - void setDeath(Death *d) { m_death = d; } + void setDeath(Death *d) { m_death = d; emit deathChanged(d); } virtual void setName(QString n) { NamedEntity::setName(n); @@ -453,6 +497,14 @@ */ static QString reduceName(QString name); +signals: + void genderChanged(QString); + void nationalityChanged(QSet<QString>); + void geonameURIsChanged(QSet<Dataquay::Uri>); + void periodChanged(QString); + void birthChanged(Birth *); + void deathChanged(Death *); + private: QString m_gender; QSet<QString> m_nationality; @@ -478,7 +530,7 @@ { Q_OBJECT - Q_PROPERTY(QString uri READ uri) + Q_PROPERTY(Dataquay::Uri uri READ uri) public: Form(QObject *parent = 0) : NamedEntity(parent) { } @@ -493,8 +545,9 @@ return m_map[name]; } - QString uri() const { - return QString(":form_%1").arg(name()).toLower().replace(' ', '_'); + Dataquay::Uri uri() const { + return Dataquay::Uri + (QString(":form_%1").arg(name()).toLower().replace(' ', '_')); } private:
--- a/testapp/Loader.cpp Tue Mar 16 17:36:28 2010 +0000 +++ b/testapp/Loader.cpp Thu Mar 18 16:59:24 2010 +0000 @@ -61,14 +61,22 @@ std::cerr << "imported, mapping..." << std::endl; - QObject *root = loader->loadAllObjects(0); +// QObject *root = loader->loadAllObjects(0); + + QObjectList objects; + try { + objects = loader->loadAll(); + } catch (const std::exception &e) { + std::cerr << "mapping failed: " << e.what() << std::endl; + return 1; + } delete loader; delete store; QObjectList composers; // std::cerr << "Known composers:" << std::endl; - foreach (QObject *o, root->children()) { + foreach (QObject *o, objects) { Composer *c = qobject_cast<Composer *>(o); if (c) { QString sn = c->getSortName(true);
--- a/utilities/composer/composer.cpp Tue Mar 16 17:36:28 2010 +0000 +++ b/utilities/composer/composer.cpp Thu Mar 18 16:59:24 2010 +0000 @@ -4,9 +4,11 @@ #include "TypeRegistrar.h" #include <dataquay/BasicStore.h> +#include <dataquay/TransactionalStore.h> #include <dataquay/RDFException.h> #include <dataquay/objectmapper/ObjectLoader.h> #include <dataquay/objectmapper/ObjectStorer.h> +#include <dataquay/objectmapper/ObjectMapper.h> #include <dataquay/objectmapper/TypeMapping.h> #include <dataquay/Debug.h> @@ -284,28 +286,6 @@ worksMap[target].unite(works); worksMap.remove(c); - // rub out the old composer -- we don't have a neat way to do this yet - if (store) { - if (c->birth()) { - Triple bt(c->birth()->property("uri").value<Uri>(), Node(), Node()); - if (bt.a.value != "") { - cout << "removing for " << bt.a.value.toStdString() << endl; - store->remove(bt); - } - } - if (c->death()) { - Triple dt(c->death()->property("uri").value<Uri>(), Node(), Node()); - if (dt.a.value != "") { - cout << "removing for " << dt.a.value.toStdString() << endl; - store->remove(dt); - } - } - Triple t(c->property("uri").value<Uri>(), Node(), Node()); - if (t.a.value != "") { - cout << "removing for " << t.a.value.toStdString() << endl; - store->remove(t); - } - } delete c->birth(); delete c->death(); delete c; @@ -331,6 +311,7 @@ BasicStore *store = new BasicStore(); store->setBaseUri(Uri("http://dbtune.org/classical/resource/")); ObjectLoader *loader = new ObjectLoader(store); +// loader->setFollowPolicy(ObjectLoader::FollowObjectProperties); TypeMapping tm; @@ -345,14 +326,39 @@ } cerr << "Imported RDF data, mapping to objects..."; - QObject *root = loader->loadAllObjects(0); + QObjectList objects = loader->loadAll(); cerr << " done" << endl; delete loader; - allComposers = root->findChildren<Composer *>(); + bool write = false; + if (command == "merge") { + write = true; + } - QList<Work *> works = root->findChildren<Work *>(); + TransactionalStore *ts = 0; + ObjectMapper *mapper = 0; + + if (write) { + cerr << "Managing objects..."; + ts = new TransactionalStore(store); + mapper = new ObjectMapper(ts); + mapper->setTypeMapping(tm); + mapper->manage(objects); + cerr << " done" << endl; + } + + foreach (QObject *o, objects) { + Composer *c = qobject_cast<Composer *>(o); + if (c) allComposers.push_back(c); + } + + QList<Work *> works; + foreach (QObject *o, objects) { + Work *w = qobject_cast<Work *>(o); + if (w) works.push_back(w); + } + foreach (Work *w, works) { Composition *c = w->composition(); if (c) { @@ -361,8 +367,6 @@ } } - bool write = false; - if (command == "list") { if (!args.empty()) usage(argv[0]); listBrief(allComposers); @@ -394,11 +398,11 @@ sources.push_back(c); } merge(target, sources, store); - write = true; } } if (write) { +/* ObjectStorer *storer = new ObjectStorer(store); storer->setTypeMapping(tm); @@ -411,16 +415,24 @@ // storer->storeAllObjects(root->children()); // storer->setFollowPolicy(ObjectStorer::FollowAll); storer->setFollowPolicy(ObjectStorer::FollowObjectProperties); - storer->store(root->children()); + storer->store(objects); + cerr << " done" << endl; + + delete storer; +*/ + + cerr << "Committing changes..."; + mapper->commit(); cerr << " done" << endl; cerr << "Saving to file out.ttl..."; store->save("out.ttl"); cerr << " done" << endl; - - delete storer; } + delete mapper; + delete ts; + delete store; }
--- a/utilities/composer/composer.pro Tue Mar 16 17:36:28 2010 +0000 +++ b/utilities/composer/composer.pro Thu Mar 18 16:59:24 2010 +0000 @@ -1,6 +1,6 @@ TEMPLATE = app TARGET = composer -QT -= gui network xml +#QT -= gui network xml load(../../../all.prf)
--- a/utilities/widgettest/widgettest.cpp Tue Mar 16 17:36:28 2010 +0000 +++ b/utilities/widgettest/widgettest.cpp Thu Mar 18 16:59:24 2010 +0000 @@ -84,17 +84,21 @@ loader->setTypeMapping(tm); if (!load(store, inFileName)) { - cerr << "Failed to load data source" << endl; - return 1; + cerr << "Failed to load data source" << endl; + return 1; } cerr << "Imported RDF data, mapping to objects..."; - QObject *root = loader->loadAllObjects(0); + QObjectList objects = loader->loadAll(); cerr << " done" << endl; delete loader; - QList<Composer *> composers = root->findChildren<Composer *>(); + QList<Composer *> composers; + foreach (QObject *o, objects) { + Composer *c = qobject_cast<Composer *>(o); + if (c) composers.push_back(c); + } ComposerTypingThoroughMatcher matcher(composers); TypingSelectWidget *w = new TypingSelectWidget();