File indexing completed on 2024-05-12 05:13:15
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Sandro Knauß <knauss@kolabsys.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0005 */ 0006 0007 #pragma once 0008 0009 #include "calendarsupport_export.h" 0010 0011 #include <KMime/KMimeMessage> 0012 0013 #include <Akonadi/Collection> 0014 #include <Akonadi/Item> 0015 0016 #include <QDialog> 0017 0018 class QAbstractItemModel; 0019 class QLineEdit; 0020 0021 namespace TextCustomEditor 0022 { 0023 class RichTextEditorWidget; 0024 } 0025 0026 namespace Akonadi 0027 { 0028 class CollectionComboBox; 0029 } 0030 0031 namespace CalendarSupport 0032 { 0033 class CALENDARSUPPORT_EXPORT NoteEditDialog : public QDialog 0034 { 0035 Q_OBJECT 0036 public: 0037 explicit NoteEditDialog(QWidget *parent = nullptr); 0038 ~NoteEditDialog() override; 0039 0040 [[nodiscard]] Akonadi::Collection collection() const; 0041 void setCollection(const Akonadi::Collection &value); 0042 0043 void load(const Akonadi::Item &item); 0044 [[nodiscard]] KMime::Message::Ptr note() const; 0045 0046 // Used for tests 0047 static QAbstractItemModel *_k_noteEditStubModel; 0048 0049 public Q_SLOTS: 0050 void accept() override; 0051 0052 private Q_SLOTS: 0053 CALENDARSUPPORT_NO_EXPORT void slotCollectionChanged(int); 0054 CALENDARSUPPORT_NO_EXPORT void slotUpdateButtons(); 0055 0056 Q_SIGNALS: 0057 void createNote(const Akonadi::Item ¬e, const Akonadi::Collection &collection); 0058 void collectionChanged(const Akonadi::Collection &col); 0059 0060 private: 0061 CALENDARSUPPORT_NO_EXPORT void readConfig(); 0062 CALENDARSUPPORT_NO_EXPORT void writeConfig(); 0063 Akonadi::Collection mCollection; 0064 Akonadi::Item mItem; 0065 QLineEdit *const mNoteTitle; 0066 QPushButton *mOkButton = nullptr; 0067 TextCustomEditor::RichTextEditorWidget *mNoteText = nullptr; 0068 Akonadi::CollectionComboBox *mCollectionCombobox = nullptr; 0069 }; 0070 }