void XMPEditWidget::apply() { if (d->modified && !d->isReadOnly) { KPImageInfo info(*d->dlg->currentItem()); if (d->contentPage->syncHOSTCommentIsChecked()) { info.setDescription(d->contentPage->getXMPCaption()); } d->contentPage->applyMetadata(d->exifData, d->xmpData); if (d->originPage->syncHOSTDateIsChecked()) { info.setDate(d->originPage->getXMPCreationDate()); } d->originPage->applyMetadata(d->exifData, d->xmpData); d->subjectsPage->applyMetadata(d->xmpData); d->keywordsPage->applyMetadata(d->xmpData); d->categoriesPage->applyMetadata(d->xmpData); d->creditsPage->applyMetadata(d->xmpData); d->statusPage->applyMetadata(d->xmpData); d->propertiesPage->applyMetadata(d->xmpData); KPMetadata meta; meta.load((*d->dlg->currentItem()).path()); meta.setExif(d->exifData); meta.setIptc(d->iptcData); meta.setXmp(d->xmpData); meta.save((*d->dlg->currentItem()).path()); d->modified = false; } }
void IPTCSubjects::applyMetadata(QByteArray& iptcData) { KPMetadata meta; meta.setIptc(iptcData); QStringList newSubjects = subjectsList(); if (m_subjectsCheck->isChecked()) meta.setIptcSubjects(meta.getIptcSubjects(), newSubjects); else meta.setIptcSubjects(meta.getIptcSubjects(), QStringList()); iptcData = meta.getIptc(); }
void IPTCKeywords::applyMetadata(QByteArray& iptcData) { KPMetadata meta; meta.setIptc(iptcData); QStringList newKeywords; for (int i = 0 ; i < d->keywordsBox->count(); ++i) { QListWidgetItem* item = d->keywordsBox->item(i); newKeywords.append(item->text()); } if (d->keywordsCheck->isChecked()) meta.setIptcKeywords(d->oldKeywords, newKeywords); else meta.setIptcKeywords(d->oldKeywords, QStringList()); iptcData = meta.getIptc(); }
void IPTCKeywords::readMetadata(QByteArray& iptcData) { blockSignals(true); KPMetadata meta; meta.setIptc(iptcData); d->oldKeywords = meta.getIptcKeywords(); d->keywordsBox->clear(); d->keywordsCheck->setChecked(false); if (!d->oldKeywords.isEmpty()) { d->keywordsBox->insertItems(0, d->oldKeywords); d->keywordsCheck->setChecked(true); } d->keywordEdit->setEnabled(d->keywordsCheck->isChecked()); d->keywordsBox->setEnabled(d->keywordsCheck->isChecked()); d->addKeywordButton->setEnabled(d->keywordsCheck->isChecked()); d->delKeywordButton->setEnabled(d->keywordsCheck->isChecked()); blockSignals(false); }
void IPTCEnvelope::applyMetadata(QByteArray& iptcData) { KPMetadata meta; meta.setIptc(iptcData); if (d->destinationCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.Destination", d->destinationEdit->toPlainText()); } else { meta.removeIptcTag("Iptc.Envelope.Destination"); } if (d->envelopeIDCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.EnvelopeNumber", d->envelopeIDEdit->text()); } else { meta.removeIptcTag("Iptc.Envelope.EnvelopeNumber"); } if (d->serviceIDCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.ServiceId", d->serviceIDEdit->text()); } else { meta.removeIptcTag("Iptc.Envelope.ServiceId"); } if (d->unoIDCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.UNO", d->unoIDEdit->text()); } else { meta.removeIptcTag("Iptc.Envelope.UNO"); } if (d->productIDCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.ProductId", d->productIDEdit->text()); } else { meta.removeIptcTag("Iptc.Envelope.ProductId"); } if (d->priorityCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.EnvelopePriority", QString::number(d->priorityCB->currentIndex())); } else if (d->priorityCheck->isValid()) { meta.removeIptcTag("Iptc.Envelope.EnvelopePriority"); } if (d->formatCheck->isChecked()) { QString key; int i = 0; for (IPTCEnvelopePriv::FileFormatMap::Iterator it = d->fileFormatMap.begin(); it != d->fileFormatMap.end(); ++it) { if (i == d->formatCB->currentIndex()) key = it.key(); i++; } QString format = key.section('-', 0, 0); QString version = key.section('-', -1); meta.setIptcTagString("Iptc.Envelope.FileFormat", format); meta.setIptcTagString("Iptc.Envelope.FileVersion", version); } else if (d->priorityCheck->isValid()) { meta.removeIptcTag("Iptc.Envelope.FileFormat"); meta.removeIptcTag("Iptc.Envelope.FileVersion"); } if (d->dateSentCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.DateSent", d->dateSentSel->date().toString(Qt::ISODate)); } else { meta.removeIptcTag("Iptc.Envelope.DateSent"); } if (d->timeSentCheck->isChecked()) { meta.setIptcTagString("Iptc.Envelope.TimeSent", d->timeSentSel->time().toString(Qt::ISODate) + d->zoneSentSel->getTimeZone()); } else { meta.removeIptcTag("Iptc.Envelope.TimeSent"); } meta.setImageProgramId(QString("Kipi-plugins"), QString(kipiplugins_version)); iptcData = meta.getIptc(); }
void IPTCEnvelope::readMetadata(QByteArray& iptcData) { blockSignals(true); KPMetadata meta; meta.setIptc(iptcData); QString data, format, version; QStringList list; QDate date; QTime time; QString dateStr, timeStr; d->destinationEdit->clear(); d->destinationCheck->setChecked(false); data = meta.getIptcTagString("Iptc.Envelope.Destination", false); if (!data.isNull()) { d->destinationEdit->setText(data); d->destinationCheck->setChecked(true); } d->destinationEdit->setEnabled(d->destinationCheck->isChecked()); d->envelopeIDEdit->clear(); d->envelopeIDCheck->setChecked(false); data = meta.getIptcTagString("Iptc.Envelope.EnvelopeNumber", false); if (!data.isNull()) { d->envelopeIDEdit->setText(data); d->envelopeIDCheck->setChecked(true); } d->envelopeIDEdit->setEnabled(d->envelopeIDCheck->isChecked()); d->serviceIDEdit->clear(); d->serviceIDCheck->setChecked(false); data = meta.getIptcTagString("Iptc.Envelope.ServiceId", false); if (!data.isNull()) { d->serviceIDEdit->setText(data); d->serviceIDCheck->setChecked(true); } d->serviceIDEdit->setEnabled(d->serviceIDCheck->isChecked()); d->unoIDEdit->clear(); d->unoIDCheck->setChecked(false); data = meta.getIptcTagString("Iptc.Envelope.UNO", false); if (!data.isNull()) { d->unoIDEdit->setText(data); d->unoIDCheck->setChecked(true); } d->unoIDEdit->setEnabled(d->unoIDCheck->isChecked()); d->productIDEdit->clear(); d->productIDCheck->setChecked(false); data = meta.getIptcTagString("Iptc.Envelope.ProductId", false); if (!data.isNull()) { d->productIDEdit->setText(data); d->productIDCheck->setChecked(true); } d->productIDEdit->setEnabled(d->productIDCheck->isChecked()); d->priorityCB->setCurrentIndex(0); d->priorityCheck->setChecked(false); data = meta.getIptcTagString("Iptc.Envelope.EnvelopePriority", false); if (!data.isNull()) { const int val = data.toInt(); if (val >= 0 && val <= 9) { d->priorityCB->setCurrentIndex(val); d->priorityCheck->setChecked(true); } else d->priorityCheck->setValid(false); } d->priorityCB->setEnabled(d->priorityCheck->isChecked()); d->formatCB->setCurrentIndex(0); d->formatCheck->setChecked(false); format = meta.getIptcTagString("Iptc.Envelope.FileFormat", false); version = meta.getIptcTagString("Iptc.Envelope.FileVersion", false); if (!format.isNull()) { if (!version.isNull()) { if (format.size() == 1) format.prepend("0"); if (version.size() == 1) version.prepend("0"); QString key = QString("%1-%2").arg(format).arg(version); int index = -1, i = 0; for (IPTCEnvelopePriv::FileFormatMap::Iterator it = d->fileFormatMap.begin(); it != d->fileFormatMap.end(); ++it) { if (it.key() == key) index = i; i++; } if (index != -1) { d->formatCB->setCurrentIndex(index); d->formatCheck->setChecked(true); } else d->formatCheck->setValid(false); } else d->formatCheck->setValid(false); } d->formatCB->setEnabled(d->formatCheck->isChecked()); dateStr = meta.getIptcTagString("Iptc.Envelope.DateSent", false); timeStr = meta.getIptcTagString("Iptc.Envelope.TimeSent", false); d->dateSentSel->setDate(QDate::currentDate()); d->dateSentCheck->setChecked(false); if (!dateStr.isEmpty()) { date = QDate::fromString(dateStr, Qt::ISODate); if (date.isValid()) { d->dateSentSel->setDate(date); d->dateSentCheck->setChecked(true); } } d->dateSentSel->setEnabled(d->dateSentCheck->isChecked()); d->timeSentSel->setTime(QTime::currentTime()); d->timeSentCheck->setChecked(false); d->zoneSentSel->setToUTC(); if (!timeStr.isEmpty()) { time = QTime::fromString(timeStr, Qt::ISODate); if (time.isValid()) { d->timeSentSel->setTime(time); d->timeSentCheck->setChecked(true); d->zoneSentSel->setTimeZone(timeStr); } } d->timeSentSel->setEnabled(d->timeSentCheck->isChecked()); d->zoneSentSel->setEnabled(d->timeSentCheck->isChecked()); blockSignals(false); }
void IPTCSubjects::readMetadata(QByteArray& iptcData) { KPMetadata meta; meta.setIptc(iptcData); setSubjectsList(meta.getIptcSubjects()); }