Changeset View
Changeset View
Standalone View
Standalone View
incidenceeditor-ng/incidencecategories.cpp
Show First 20 Lines • Show All 106 Lines • ▼ Show 20 Lines | void IncidenceCategories::checkForUnknownCategories( const QStringList &categoriesToCheck ) | ||||
fetchJob->setProperty("categoriesToCheck", categoriesToCheck); | fetchJob->setProperty("categoriesToCheck", categoriesToCheck); | ||||
connect(fetchJob, SIGNAL(tagsReceived(Akonadi::Tag::List)), this, SLOT(onTagsReceived(Akonadi::Tag::List))); | connect(fetchJob, SIGNAL(tagsReceived(Akonadi::Tag::List)), this, SLOT(onTagsReceived(Akonadi::Tag::List))); | ||||
} | } | ||||
void IncidenceCategories::onTagsReceived(const Akonadi::Tag::List &tags) | void IncidenceCategories::onTagsReceived(const Akonadi::Tag::List &tags) | ||||
{ | { | ||||
QStringList tagsToCheck = sender()->property("categoriesToCheck").toStringList(); | QStringList tagsToCheck = sender()->property("categoriesToCheck").toStringList(); | ||||
foreach (const Akonadi::Tag &tag, tags) { | foreach (const Akonadi::Tag &tag, tags) { | ||||
if (tagsToCheck.contains(tag.gid()) || tagsToCheck.contains(tag.name())) { | |||||
mSelectedTags << tag; | |||||
} | |||||
tagsToCheck.removeAll(tag.gid()); | tagsToCheck.removeAll(tag.gid()); | ||||
tagsToCheck.removeAll(tag.name()); | tagsToCheck.removeAll(tag.name()); | ||||
} | } | ||||
mUi->mTagWidget->setSelection(mSelectedTags); | |||||
foreach ( const QString &category, tagsToCheck ) { | foreach ( const QString &category, tagsToCheck ) { | ||||
kDebug() << "Creating tag: " << category; | kDebug() << "Creating tag: " << category; | ||||
Akonadi::Tag tag = Akonadi::Tag::genericTag(category); | Akonadi::Tag tag = Akonadi::Tag::genericTag(category); | ||||
tag.setGid(category.toUtf8()); | tag.setGid(category.toUtf8()); | ||||
Akonadi::TagCreateJob *tagCreateJob = new Akonadi::TagCreateJob(tag, this); | Akonadi::TagCreateJob *tagCreateJob = new Akonadi::TagCreateJob(tag, this); | ||||
connect(tagCreateJob, SIGNAL(result(KJob*)), this, SLOT(onTagCreated(KJob*))); | connect(tagCreateJob, SIGNAL(result(KJob*)), this, SLOT(onTagCreated(KJob*))); | ||||
tagCreateJob->setMergeIfExisting(true); | tagCreateJob->setMergeIfExisting(true); | ||||
} | } | ||||
} | } | ||||
void IncidenceCategories::onTagCreated(KJob *job) | void IncidenceCategories::onTagCreated(KJob *job) | ||||
{ | { | ||||
const Akonadi::Tag createdTag = static_cast<Akonadi::TagCreateJob*>(job)->tag(); | const Akonadi::Tag createdTag = static_cast<Akonadi::TagCreateJob*>(job)->tag(); | ||||
kDebug() << "Created tag: " << createdTag; | kDebug() << "Created tag: " << createdTag; | ||||
mSelectedTags << createdTag; | mSelectedTags << createdTag; | ||||
mUi->mTagWidget->setSelection(mSelectedTags); | mUi->mTagWidget->setSelection(mSelectedTags); | ||||
onSelectionChanged(mSelectedTags); | |||||
} | } |