diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ set(KMAILTRANSPORT_LIB_VERSION "5.11.40") set(KLDAP_LIB_VERSION "5.11.40") set(CALENDARUTILS_LIB_VERSION "5.11.40") -set(KCALENDARCORE_LIB_VERSION "5.11.44") +set(KCALENDARCORE_LIB_VERSION "5.11.45") set(CALENDARSUPPORT_LIB_VERSION "5.11.40") set(LIBKDEPIM_LIB_VERSION "5.11.40") set(EVENTVIEW_LIB_VERSION "5.11.40") diff --git a/src/attachmenteditdialog.h b/src/attachmenteditdialog.h --- a/src/attachmenteditdialog.h +++ b/src/attachmenteditdialog.h @@ -56,7 +56,7 @@ virtual void slotApply(); private: - KCalCore::Attachment::Ptr mAttachment; + KCalCore::Attachment mAttachment; AttachmentIconItem *mItem = nullptr; QMimeType mMimeType; Ui::AttachmentEditDialog *mUi = nullptr; diff --git a/src/attachmenteditdialog.cpp b/src/attachmenteditdialog.cpp --- a/src/attachmenteditdialog.cpp +++ b/src/attachmenteditdialog.cpp @@ -41,11 +41,11 @@ : QDialog(parent) , #ifdef KDEPIM_ENTERPRISE_BUILD - mAttachment(new KCalCore::Attachment('\0')) + mAttachment(KCalCore::Attachment('\0')) //use the non-uri constructor // as we want inline by default #else - mAttachment(new KCalCore::Attachment(QString())) + mAttachment(KCalCore::Attachment(QString())) #endif , mItem(item) , mUi(new Ui::AttachmentEditDialog) @@ -79,16 +79,16 @@ mOkButton->setEnabled(false); mUi->mInlineCheck->setEnabled(false); - if (item->attachment()->isUri() || item->attachment()->data().isEmpty()) { + if (item->attachment().isUri() || item->attachment().data().isEmpty()) { mUi->mStackedWidget->setCurrentIndex(0); mUi->mURLRequester->setUrl(QUrl(item->uri())); urlChanged(item->uri()); } else { mUi->mInlineCheck->setEnabled(true); mUi->mStackedWidget->setCurrentIndex(1); mUi->mSizeLabel->setText(QStringLiteral("%1 (%2)"). - arg(KIO::convertSize(item->attachment()->size()), - QLocale().toString(item->attachment()->size()))); + arg(KIO::convertSize(item->attachment().size()), + QLocale().toString(item->attachment().size()))); } connect(mUi->mInlineCheck, &QCheckBox::stateChanged, this, diff --git a/src/attachmenticonview.h b/src/attachmenticonview.h --- a/src/attachmenticonview.h +++ b/src/attachmenticonview.h @@ -56,10 +56,10 @@ class AttachmentIconItem : public QListWidgetItem { public: - AttachmentIconItem(const KCalCore::Attachment::Ptr &att, QListWidget *parent); + AttachmentIconItem(const KCalCore::Attachment &att, QListWidget *parent); ~AttachmentIconItem(); - KCalCore::Attachment::Ptr attachment() const; + KCalCore::Attachment attachment() const; Q_REQUIRED_RESULT const QString uri() const; Q_REQUIRED_RESULT const QString savedUri() const; void setUri(const QString &uri); @@ -84,7 +84,7 @@ Q_REQUIRED_RESULT QUrl tempFileForAttachment(); private: - KCalCore::Attachment::Ptr mAttachment; + KCalCore::Attachment mAttachment; QString mSaveUri; QUrl mTempFile; }; diff --git a/src/attachmenticonview.cpp b/src/attachmenticonview.cpp --- a/src/attachmenticonview.cpp +++ b/src/attachmenticonview.cpp @@ -45,21 +45,18 @@ using namespace IncidenceEditorNG; -AttachmentIconItem::AttachmentIconItem(const KCalCore::Attachment::Ptr &att, QListWidget *parent) +AttachmentIconItem::AttachmentIconItem(const KCalCore::Attachment &att, QListWidget *parent) : QListWidgetItem(parent) { - if (att) { - mAttachment = KCalCore::Attachment::Ptr(new KCalCore::Attachment(*att.data())); - mAttachment->setLabel(att->label()); + if (!att.isEmpty()) { + mAttachment = att; } else { // for the enterprise, inline attachments are the default #ifdef KDEPIM_ENTERPRISE_BUILD - mAttachment - = KCalCore::Attachment::Ptr( - new KCalCore::Attachment(QByteArray())); // use the non-uri constructor + mAttachment = KCalCore::Attachment(QByteArray()); // use the non-uri constructor // as we want inline by default #else - mAttachment = KCalCore::Attachment::Ptr(new KCalCore::Attachment(QString())); + mAttachment = KCalCore::Attachment(QString()); #endif } readAttachment(); @@ -70,14 +67,14 @@ { } -KCalCore::Attachment::Ptr AttachmentIconItem::attachment() const +KCalCore::Attachment AttachmentIconItem::attachment() const { return mAttachment; } const QString AttachmentIconItem::uri() const { - return mAttachment->uri(); + return mAttachment.uri(); } const QString AttachmentIconItem::savedUri() const @@ -88,51 +85,51 @@ void AttachmentIconItem::setUri(const QString &uri) { mSaveUri = uri; - mAttachment->setUri(mSaveUri); + mAttachment.setUri(mSaveUri); readAttachment(); } void AttachmentIconItem::setData(const QByteArray &data) { - mAttachment->setDecodedData(data); + mAttachment.setDecodedData(data); readAttachment(); } const QString AttachmentIconItem::mimeType() const { - return mAttachment->mimeType(); + return mAttachment.mimeType(); } void AttachmentIconItem::setMimeType(const QString &mime) { - mAttachment->setMimeType(mime); + mAttachment.setMimeType(mime); readAttachment(); } const QString AttachmentIconItem::label() const { - return mAttachment->label(); + return mAttachment.label(); } void AttachmentIconItem::setLabel(const QString &description) { - if (mAttachment->label() == description) { + if (mAttachment.label() == description) { return; } - mAttachment->setLabel(description); + mAttachment.setLabel(description); readAttachment(); } bool AttachmentIconItem::isBinary() const { - return mAttachment->isBinary(); + return mAttachment.isBinary(); } QPixmap AttachmentIconItem::icon() const { QMimeDatabase db; - return icon(db.mimeTypeForName(mAttachment->mimeType()), - mAttachment->uri(), mAttachment->isBinary()); + return icon(db.mimeTypeForName(mAttachment.mimeType()), + mAttachment.uri(), mAttachment.isBinary()); } QPixmap AttachmentIconItem::icon(const QMimeType &mimeType, const QString &uri, bool binary) @@ -148,19 +145,19 @@ void AttachmentIconItem::readAttachment() { - setText(mAttachment->label()); + setText(mAttachment.label()); setFlags(flags() | Qt::ItemIsEditable); QMimeDatabase db; - if (mAttachment->mimeType().isEmpty() - || !(db.mimeTypeForName(mAttachment->mimeType()).isDefault())) { + if (mAttachment.mimeType().isEmpty() + || !(db.mimeTypeForName(mAttachment.mimeType()).isDefault())) { QMimeType mimeType; - if (mAttachment->isUri()) { - mimeType = db.mimeTypeForUrl(QUrl(mAttachment->uri())); + if (mAttachment.isUri()) { + mimeType = db.mimeTypeForUrl(QUrl(mAttachment.uri())); } else { - mimeType = db.mimeTypeForData(mAttachment->decodedData()); + mimeType = db.mimeTypeForData(mAttachment.decodedData()); } - mAttachment->setMimeType(mimeType.name()); + mAttachment.setMimeType(mimeType.name()); } setIcon(icon()); @@ -192,7 +189,7 @@ QTemporaryFile *file = nullptr; QMimeDatabase db; - QStringList patterns = db.mimeTypeForName(mAttachment->mimeType()).globPatterns(); + QStringList patterns = db.mimeTypeForName(mAttachment.mimeType()).globPatterns(); if (!patterns.empty()) { file = new QTemporaryFile(QDir::tempPath() + QLatin1String( @@ -207,7 +204,7 @@ file->open(); // read-only not to give the idea that it could be written to file->setPermissions(QFile::ReadUser); - file->write(QByteArray::fromBase64(mAttachment->data())); + file->write(QByteArray::fromBase64(mAttachment.data())); mTempFile = QUrl::fromLocalFile(file->fileName()); file->close(); return mTempFile; diff --git a/src/incidenceattachment.cpp b/src/incidenceattachment.cpp --- a/src/incidenceattachment.cpp +++ b/src/incidenceattachment.cpp @@ -92,8 +92,7 @@ QListWidgetItem *item = mAttachmentView->item(itemIndex); AttachmentIconItem *attitem = dynamic_cast(item); Q_ASSERT(item); - incidence->addAttachment( - KCalCore::Attachment::Ptr(new KCalCore::Attachment(*(attitem->attachment())))); + incidence->addAttachment(attitem->attachment()); } } @@ -109,13 +108,12 @@ QListWidgetItem *item = mAttachmentView->item(itemIndex); Q_ASSERT(dynamic_cast(item)); - const KCalCore::Attachment::Ptr listAttachment - = static_cast(item)->attachment(); + const KCalCore::Attachment listAttachment = static_cast(item)->attachment(); for (int i = 0; i < origAttachments.count(); ++i) { - const KCalCore::Attachment::Ptr attachment = origAttachments.at(i); + const KCalCore::Attachment attachment = origAttachments.at(i); - if (*attachment == *listAttachment) { + if (attachment == listAttachment) { origAttachments.remove(i); break; } @@ -140,7 +138,7 @@ void IncidenceAttachment::addAttachment() { QPointer that(this); - AttachmentIconItem *item = new AttachmentIconItem(KCalCore::Attachment::Ptr(), mAttachmentView); + AttachmentIconItem *item = new AttachmentIconItem(KCalCore::Attachment(), mAttachmentView); QPointer dialog(new AttachmentEditDialog(item, mAttachmentView)); dialog->setWindowTitle(i18nc("@title", "Add Attachment")); @@ -189,8 +187,8 @@ if (it->isSelected()) { AttachmentIconItem *attitem = static_cast(it); if (attitem) { - KCalCore::Attachment::Ptr att = attitem->attachment(); - labels << att->label(); + const KCalCore::Attachment att = attitem->attachment(); + labels << att.label(); selected << it; } } @@ -236,23 +234,23 @@ Q_ASSERT(dynamic_cast(item)); AttachmentIconItem *attitem = static_cast(item); - if (!attitem->attachment()) { + if (attitem->attachment().isEmpty()) { return; } - KCalCore::Attachment::Ptr att = attitem->attachment(); + KCalCore::Attachment att = attitem->attachment(); // get the saveas file name const QString saveAsFile = QFileDialog::getSaveFileName(nullptr, i18nc("@title", "Save Attachment"), - att->label()); + att.label()); if (saveAsFile.isEmpty()) { return; } QUrl sourceUrl; - if (att->isUri()) { - sourceUrl = QUrl(att->uri()); + if (att.isUri()) { + sourceUrl = QUrl(att.uri()); } else { sourceUrl = attitem->tempFileForAttachment(); } @@ -278,18 +276,18 @@ Q_ASSERT(item); Q_ASSERT(dynamic_cast(item)); AttachmentIconItem *attitem = static_cast(item); - if (!attitem->attachment()) { + if (attitem->attachment().isEmpty()) { return; } - KCalCore::Attachment::Ptr att = attitem->attachment(); - if (att->isUri()) { - openURL(QUrl(att->uri())); + const KCalCore::Attachment att = attitem->attachment(); + if (att.isUri()) { + openURL(QUrl(att.uri())); } else { KRun::RunFlags flags; flags |= KRun::DeleteTemporaryFiles; flags |= KRun::RunExecutables; - KRun::runUrl(attitem->tempFileForAttachment(), att->mimeType(), nullptr, flags); + KRun::runUrl(attitem->tempFileForAttachment(), att.mimeType(), nullptr, flags); } } @@ -344,7 +342,7 @@ Q_ASSERT(dynamic_cast(item)); AttachmentIconItem *attitem = static_cast(item); - if (!attitem->attachment()) { + if (attitem->attachment().isEmpty()) { return; } @@ -566,7 +564,7 @@ void IncidenceAttachment::addDataAttachment(const QByteArray &data, const QString &mimeType, const QString &label) { - AttachmentIconItem *item = new AttachmentIconItem(KCalCore::Attachment::Ptr(), mAttachmentView); + AttachmentIconItem *item = new AttachmentIconItem(KCalCore::Attachment(), mAttachmentView); QString nlabel = label; if (mimeType == QLatin1String("message/rfc822")) { @@ -593,7 +591,7 @@ { if (!inLine) { AttachmentIconItem *item - = new AttachmentIconItem(KCalCore::Attachment::Ptr(), mAttachmentView); + = new AttachmentIconItem(KCalCore::Attachment(), mAttachmentView); item->setUri(uri); item->setLabel(label); if (mimeType.isEmpty()) { diff --git a/src/incidencedefaults.cpp b/src/incidencedefaults.cpp --- a/src/incidencedefaults.cpp +++ b/src/incidencedefaults.cpp @@ -259,17 +259,15 @@ mimeType = attachmentMimetypes[ i ]; } - KCalCore::Attachment::Ptr attachment; + KCalCore::Attachment attachment; if (inlineAttachment) { auto job = KIO::storedGet(QUrl::fromUserInput(*it)); if (job->exec()) { const QByteArray data = job->data(); - attachment - = KCalCore::Attachment::Ptr(new KCalCore::Attachment(data.toBase64(), - mimeType)); + attachment = KCalCore::Attachment(data.toBase64(), mimeType); if (i < attachmentLabels.count()) { - attachment->setLabel(attachmentLabels[ i ]); + attachment.setLabel(attachmentLabels[ i ]); } } else { qCCritical(INCIDENCEEDITOR_LOG) << "Error downloading uri " << *it @@ -283,23 +281,23 @@ } } } else { - attachment = KCalCore::Attachment::Ptr(new KCalCore::Attachment(*it, mimeType)); + attachment = KCalCore::Attachment(*it, mimeType); if (i < attachmentLabels.count()) { - attachment->setLabel(attachmentLabels[ i ]); + attachment.setLabel(attachmentLabels[ i ]); } } - if (attachment) { - if (attachment->label().isEmpty()) { - if (attachment->isUri()) { - attachment->setLabel(attachment->uri()); + if (!attachment.isEmpty()) { + if (attachment.label().isEmpty()) { + if (attachment.isUri()) { + attachment.setLabel(attachment.uri()); } else { - attachment->setLabel( + attachment.setLabel( i18nc("@label attachment contains binary data", "[Binary data]")); } } d->mAttachments << attachment; - attachment->setShowInline(inlineAttachment); + attachment.setShowInline(inlineAttachment); } } } @@ -385,7 +383,7 @@ incidence->setOrganizer(organizerAsPerson); } - for (const KCalCore::Attachment::Ptr &attachment : qAsConst(d->mAttachments)) { + for (const KCalCore::Attachment &attachment : qAsConst(d->mAttachments)) { incidence->addAttachment(attachment); }