File indexing completed on 2024-04-28 05:11:34

0001 /*
0002   SPDX-FileCopyrightText: 2010 Bertjan Broeksema <broeksema@kde.org>
0003   SPDX-FileCopyrightText: 2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
0004 
0005   SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 
0010 #include "incidenceeditor-ng.h"
0011 
0012 #include <memory>
0013 
0014 namespace Ui
0015 {
0016 class EventOrTodoDesktop;
0017 }
0018 
0019 namespace IncidenceEditorNG
0020 {
0021 class IncidenceDescriptionPrivate;
0022 
0023 /**
0024  * The IncidenceDescriptionEditor keeps track of the following Incidence parts:
0025  * - description
0026  */
0027 class IncidenceDescription : public IncidenceEditor
0028 {
0029     Q_OBJECT
0030 public:
0031     using IncidenceEditorNG::IncidenceEditor::load; // So we don't trigger -Woverloaded-virtual
0032     using IncidenceEditorNG::IncidenceEditor::save; // So we don't trigger -Woverloaded-virtual
0033 
0034     explicit IncidenceDescription(Ui::EventOrTodoDesktop *ui);
0035 
0036     ~IncidenceDescription() override;
0037 
0038     void load(const KCalendarCore::Incidence::Ptr &incidence) override;
0039     void save(const KCalendarCore::Incidence::Ptr &incidence) override;
0040     [[nodiscard]] bool isDirty() const override;
0041 
0042     void printDebugInfo() const override;
0043 
0044 private:
0045     void toggleRichTextDescription();
0046     void enableRichTextDescription(bool enable);
0047     void setupToolBar();
0048 
0049 private:
0050     Ui::EventOrTodoDesktop *const mUi;
0051     //@cond PRIVATE
0052     Q_DECLARE_PRIVATE(IncidenceDescription)
0053     std::unique_ptr<IncidenceDescriptionPrivate> const d;
0054     //@endcond
0055 };
0056 }