File indexing completed on 2024-06-02 04:47:08

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "textcustomeditor_export.h"
0010 #include <QWidget>
0011 
0012 namespace TextCustomEditor
0013 {
0014 class PlainTextEditor;
0015 class PlainTextEditorWidgetPrivate;
0016 /**
0017  * @brief The PlainTextEditorWidget class
0018  * @author Laurent Montel <montel@kde.org>
0019  */
0020 class TEXTCUSTOMEDITOR_EXPORT PlainTextEditorWidget : public QWidget
0021 {
0022     Q_OBJECT
0023     Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
0024 public:
0025     explicit PlainTextEditorWidget(QWidget *parent = nullptr);
0026     explicit PlainTextEditorWidget(PlainTextEditor *customEditor, QWidget *parent = nullptr);
0027     ~PlainTextEditorWidget() override;
0028 
0029     [[nodiscard]] PlainTextEditor *editor() const;
0030 
0031     void setReadOnly(bool readOnly);
0032     [[nodiscard]] bool isReadOnly() const;
0033 
0034     void setPlainText(const QString &text);
0035     [[nodiscard]] QString toPlainText() const;
0036 
0037     void clear();
0038     void setSpellCheckingConfigFileName(const QString &_fileName);
0039 
0040     [[nodiscard]] bool isEmpty() const;
0041 
0042 private:
0043     TEXTCUSTOMEDITOR_NO_EXPORT void slotFind();
0044     TEXTCUSTOMEDITOR_NO_EXPORT void slotReplace();
0045 
0046     TEXTCUSTOMEDITOR_NO_EXPORT void slotHideFindBar();
0047     TEXTCUSTOMEDITOR_NO_EXPORT void init(PlainTextEditor *customEditor = nullptr);
0048     std::unique_ptr<PlainTextEditorWidgetPrivate> const d;
0049 };
0050 }