1 /*
2    SPDX-FileCopyrightText: 2015-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "sievescriptdebuggerresulteditor.h"
8 #include <KLocalizedString>
9 #include <KStandardAction>
10 #include <PimCommon/PimUtil>
11 #include <QAction>
12 #include <QMenu>
13 
14 using namespace KSieveUi;
15 
SieveScriptDebuggerResultEditor(QWidget * parent)16 SieveScriptDebuggerResultEditor::SieveScriptDebuggerResultEditor(QWidget *parent)
17     : KPIMTextEdit::PlainTextEditor(parent)
18 {
19 }
20 
~SieveScriptDebuggerResultEditor()21 SieveScriptDebuggerResultEditor::~SieveScriptDebuggerResultEditor()
22 {
23 }
24 
addExtraMenuEntry(QMenu * menu,QPoint pos)25 void SieveScriptDebuggerResultEditor::addExtraMenuEntry(QMenu *menu, QPoint pos)
26 {
27     KPIMTextEdit::PlainTextEditor::addExtraMenuEntry(menu, pos);
28     if (isReadOnly() && !document()->isEmpty()) {
29         auto clearAction = new QAction(i18n("Clear"), menu);
30         connect(clearAction, &QAction::triggered, this, &SieveScriptDebuggerResultEditor::slotClear);
31         menu->addAction(clearAction);
32         menu->addSeparator();
33         QAction *saveAsAction = KStandardAction::saveAs(this, &SieveScriptDebuggerResultEditor::slotSaveAs, this);
34         menu->addAction(saveAsAction);
35     }
36 }
37 
slotSaveAs()38 void SieveScriptDebuggerResultEditor::slotSaveAs()
39 {
40     const QString filter = i18n("Text Files (*.txt);;All Files (*)");
41     PimCommon::Util::saveTextAs(toPlainText(), filter, this);
42 }
43 
slotClear()44 void SieveScriptDebuggerResultEditor::slotClear()
45 {
46     clear();
47 }
48