[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdepim-addons/Applications/17.08] plugins/messageviewerplugins/createtodoplugin: Reduce duplicate c
From:       Montel Laurent <null () kde ! org>
Date:       2017-08-18 6:04:26
Message-ID: E1diaOQ-0004sB-HY () code ! kde ! org
[Download RAW message or body]

Git commit 9b5fdb4a85a2a2e6a2edfce9574f31caaefdbd97 by Montel Laurent.
Committed on 18/08/2017 at 06:04.
Pushed by mlaurent into branch 'Applications/17.08'.

Reduce duplicate code

M  +22   -15   plugins/messageviewerplugins/createtodoplugin/todoedit.cpp
M  +1    -0    plugins/messageviewerplugins/createtodoplugin/todoedit.h

https://commits.kde.org/kdepim-addons/9b5fdb4a85a2a2e6a2edfce9574f31caaefdbd97

diff --git a/plugins/messageviewerplugins/createtodoplugin/todoedit.cpp \
b/plugins/messageviewerplugins/createtodoplugin/todoedit.cpp index a1b7ff82..26dddc04 \
                100644
--- a/plugins/messageviewerplugins/createtodoplugin/todoedit.cpp
+++ b/plugins/messageviewerplugins/createtodoplugin/todoedit.cpp
@@ -248,8 +248,7 @@ void TodoEdit::slotReturnPressed()
     if (!mNoteEdit->text().trimmed().isEmpty()) {
         mMsgWidget->setText(i18nc("%1 is summary of the todo, %2 is name of the \
                folder in which it is stored",
                                   "New todo '%1' was added to task list '%2'", \
                mNoteEdit->text(), collection.displayName()));
-        KCalCore::Todo::Ptr todo(new KCalCore::Todo);
-        todo->setSummary(mNoteEdit->text());
+        KCalCore::Todo::Ptr todo = createTodoItem();
         mNoteEdit->clear();
 
         // We don't hide the widget here, so that multiple todo's can be added
@@ -259,6 +258,20 @@ void TodoEdit::slotReturnPressed()
     }
 }
 
+KCalCore::Todo::Ptr TodoEdit::createTodoItem()
+{
+    KCalCore::Todo::Ptr todo(new KCalCore::Todo);
+    todo->setSummary(mNoteEdit->text());
+    KCalCore::Attachment::Ptr attachment(new \
KCalCore::Attachment(mMessage->encodedContent().toBase64(), \
KMime::Message::mimeType())); +    const KMime::Headers::Subject *const subject = \
mMessage->subject(false); +    if (subject) {
+        attachment->setLabel(subject->asUnicodeString());
+    }
+
+    todo->addAttachment(attachment);
+    return todo;
+}
+
 bool TodoEdit::eventFilter(QObject *object, QEvent *e)
 {
     // Close the bar when pressing Escape.
@@ -290,21 +303,15 @@ bool TodoEdit::eventFilter(QObject *object, QEvent *e)
 
 void TodoEdit::slotOpenEditor()
 {
-    QTemporaryFile tf;
-    tf.setAutoRemove(false);
-    tf.open();
-    tf.write(mMessage->encodedContent());
-    tf.close();
+    KCalCore::Todo::Ptr event = createTodoItem();
 
-    const KMime::Headers::Subject *const subject = mMessage->subject(false);
-    IncidenceEditorNG::IncidenceDialog *dlg = \
                IncidenceEditorNG::IncidenceDialogFactory::createTodoEditor(
-        mNoteEdit->text(), QString(),
-        QStringList() << tf.fileName(),
-            QStringList(),      // attendees
-            QStringList() << KMime::Message::mimeType(),
-            QStringList() << (subject ? subject->asUnicodeString() : QString()),
-            true, mCollection, true, this);
+    Akonadi::Item item;
+    item.setPayload<KCalCore::Todo::Ptr>(event);
+    item.setMimeType(KCalCore::Todo::todoMimeType());
+
+    IncidenceEditorNG::IncidenceDialog *dlg = \
IncidenceEditorNG::IncidenceDialogFactory::create(true, \
                KCalCore::IncidenceBase::TypeTodo, nullptr, this);
     connect(dlg, &IncidenceEditorNG::IncidenceDialog::finished, this, \
&TodoEdit::slotCloseWidget); +    dlg->load(item);
     dlg->open();
 }
 
diff --git a/plugins/messageviewerplugins/createtodoplugin/todoedit.h \
b/plugins/messageviewerplugins/createtodoplugin/todoedit.h index 381442cf..0e5abeed \
                100644
--- a/plugins/messageviewerplugins/createtodoplugin/todoedit.h
+++ b/plugins/messageviewerplugins/createtodoplugin/todoedit.h
@@ -61,6 +61,7 @@ Q_SIGNALS:
 protected:
     bool eventFilter(QObject *object, QEvent *e) override;
 private:
+    KCalCore::Todo::Ptr createTodoItem();
     void comboboxRowInserted();
     void slotReturnPressed();
     void slotCollectionChanged(int);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic