File indexing completed on 2024-06-09 04:58:48

0001 /*
0002    SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 #include "config-ruqola.h"
0009 #include "libruqolawidgets_private_export.h"
0010 #include <QPlainTextEdit>
0011 #if HAVE_TEXT_CUSTOM_EDITOR
0012 #include <TextCustomEditor/PlainTextEditor>
0013 #include <TextCustomEditor/PlainTextEditorWidget>
0014 
0015 class LIBRUQOLAWIDGETS_TESTS_EXPORT ViewLogPlainTextEdit : public TextCustomEditor::PlainTextEditorWidget
0016 {
0017     Q_OBJECT
0018 public:
0019     explicit ViewLogPlainTextEdit(QWidget *parent = nullptr);
0020     ~ViewLogPlainTextEdit() override;
0021 };
0022 
0023 class LIBRUQOLAWIDGETS_TESTS_EXPORT ViewLogPlainTextEditor : public TextCustomEditor::PlainTextEditor
0024 {
0025     Q_OBJECT
0026 public:
0027     explicit ViewLogPlainTextEditor(QWidget *parent = nullptr);
0028     ~ViewLogPlainTextEditor() override;
0029 
0030 protected:
0031     void addExtraMenuEntry(QMenu *menu, QPoint pos) override;
0032 
0033 private:
0034     LIBRUQOLAWIDGETS_NO_EXPORT void slotSaveAsFile();
0035     LIBRUQOLAWIDGETS_NO_EXPORT void saveTextAs(const QString &text, const QString &filter, QWidget *parent, const QUrl &url = {}, const QString &caption = {});
0036     [[nodiscard]] LIBRUQOLAWIDGETS_NO_EXPORT bool saveToFile(const QString &filename, const QString &text);
0037 };
0038 #else
0039 class LIBRUQOLAWIDGETS_TESTS_EXPORT ViewLogPlainTextEdit : public QPlainTextEdit
0040 {
0041     Q_OBJECT
0042 public:
0043     explicit ViewLogPlainTextEdit(QWidget *parent = nullptr);
0044     ~ViewLogPlainTextEdit() override;
0045 
0046 protected:
0047     void contextMenuEvent(QContextMenuEvent *event) override;
0048 
0049 private:
0050     LIBRUQOLAWIDGETS_NO_EXPORT void slotSaveAsFile();
0051     LIBRUQOLAWIDGETS_NO_EXPORT void saveTextAs(const QString &text, const QString &filter, QWidget *parent, const QUrl &url = {}, const QString &caption = {});
0052     [[nodiscard]] LIBRUQOLAWIDGETS_NO_EXPORT bool saveToFile(const QString &filename, const QString &text);
0053 };
0054 
0055 #endif