7#include "sievetexteditwidget.h"
8#include "editor/sievetextedit.h"
11#include <TextAddonsWidgets/SlideContainer>
12#include <TextCustomEditor/PlainTextEditFindBar>
13using namespace KSieveUi;
15class KSieveUi::SieveTextEditWidgetPrivate
18 SieveTextEditWidgetPrivate() =
default;
20 KSieveUi::SieveTextEdit *mTextEdit =
nullptr;
21 TextAddonsWidgets::SlideContainer *mSliderContainer =
nullptr;
22 TextCustomEditor::PlainTextEditFindBar *mFindBar =
nullptr;
27 , d(new KSieveUi::SieveTextEditWidgetPrivate)
32SieveTextEditWidget::SieveTextEditWidget(
QWidget *parent)
34 , d(new KSieveUi::SieveTextEditWidgetPrivate)
39SieveTextEditWidget::~SieveTextEditWidget() =
default;
43 auto mainLayout =
new QVBoxLayout(
this);
44 mainLayout->setContentsMargins({});
46 d->mTextEdit = custom;
48 d->mTextEdit =
new KSieveUi::SieveTextEdit;
50 d->mTextEdit->setObjectName(QLatin1StringView(
"textedit"));
51 d->mTextEdit->setShowHelpMenu(
false);
52 mainLayout->addWidget(d->mTextEdit);
54 d->mSliderContainer =
new TextAddonsWidgets::SlideContainer(
this);
55 d->mSliderContainer->setObjectName(QLatin1StringView(
"slidercontainer"));
56 d->mFindBar =
new TextCustomEditor::PlainTextEditFindBar(d->mTextEdit,
this);
57 d->mFindBar->setObjectName(QLatin1StringView(
"findbar"));
58 d->mFindBar->setHideWhenClose(
false);
60 d->mSliderContainer->setContent(d->mFindBar);
61 mainLayout->addWidget(d->mSliderContainer);
62 connect(d->mTextEdit, &SieveTextEdit::findText,
this, &SieveTextEditWidget::slotFind);
63 connect(d->mTextEdit, &SieveTextEdit::replaceText,
this, &SieveTextEditWidget::slotReplace);
66void SieveTextEditWidget::setReadOnly(
bool readOnly)
68 d->mTextEdit->setReadOnly(readOnly);
71void SieveTextEditWidget::slotReplace()
73 if (d->mTextEdit->textCursor().hasSelection()) {
74 d->mFindBar->setText(d->mTextEdit->textCursor().selectedText());
76 d->mFindBar->showReplace();
77 d->mSliderContainer->slideIn();
78 d->mFindBar->focusAndSetCursor();
81void SieveTextEditWidget::slotFind()
83 if (d->mTextEdit->textCursor().hasSelection()) {
84 d->mFindBar->setText(d->mTextEdit->textCursor().selectedText());
87 d->mFindBar->showFind();
88 d->mSliderContainer->slideIn();
89 d->mFindBar->focusAndSetCursor();
97#include "moc_sievetexteditwidget.cpp"
void initialize(StandardShortcut id)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)