From e4355eeb486c4081dd7cef81db9ddb60ac6d5aa3 Mon Sep 17 00:00:00 2001 From: BeyondXinXin <78600221+BeyondXinXin@users.noreply.github.com> Date: Sat, 25 Sep 2021 11:25:01 +0800 Subject: [PATCH] * Sets the default search to the currently selected text (#1886) * * Sets the default search to the currently selected text * * Specification code --- src/widgets/markdownviewwindow.cpp | 17 +++++++++++++++++ src/widgets/markdownviewwindow.h | 2 ++ src/widgets/textviewwindow.cpp | 6 ++++++ src/widgets/textviewwindow.h | 2 ++ src/widgets/viewwindow.cpp | 7 ++++++- src/widgets/viewwindow.h | 2 ++ 6 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/widgets/markdownviewwindow.cpp b/src/widgets/markdownviewwindow.cpp index b25b4952..75143451 100644 --- a/src/widgets/markdownviewwindow.cpp +++ b/src/widgets/markdownviewwindow.cpp @@ -1115,6 +1115,23 @@ QPoint MarkdownViewWindow::getFloatingWidgetPosition() return TextViewWindowHelper::getFloatingWidgetPosition(this); } +QString MarkdownViewWindow::selectedText() const +{ + switch (m_mode) { + case ViewWindowMode::FullPreview: + case ViewWindowMode::Invalid: + Q_FALLTHROUGH(); + case ViewWindowMode::Read: + Q_ASSERT(m_viewer); + return m_viewer->selectedText(); + case ViewWindowMode::Edit: + case ViewWindowMode::FocusPreview: + Q_ASSERT(m_editor); + return m_editor->getTextEdit()->selectedText(); + } + return QString(""); +} + void MarkdownViewWindow::handleImageHostChanged(const QString &p_hostName) { m_imageHost = ImageHostMgr::getInst().find(p_hostName); diff --git a/src/widgets/markdownviewwindow.h b/src/widgets/markdownviewwindow.h index 96dc99ff..df5b9cc7 100644 --- a/src/widgets/markdownviewwindow.h +++ b/src/widgets/markdownviewwindow.h @@ -93,6 +93,8 @@ namespace vnotex QPoint getFloatingWidgetPosition() Q_DECL_OVERRIDE; + QString selectedText() const Q_DECL_OVERRIDE; + private: void setupUI(); diff --git a/src/widgets/textviewwindow.cpp b/src/widgets/textviewwindow.cpp index dda20e08..a20bb3e9 100644 --- a/src/widgets/textviewwindow.cpp +++ b/src/widgets/textviewwindow.cpp @@ -291,3 +291,9 @@ QPoint TextViewWindow::getFloatingWidgetPosition() { return TextViewWindowHelper::getFloatingWidgetPosition(this); } + +QString TextViewWindow::selectedText() const +{ + Q_ASSERT(m_editor); + return m_editor->getTextEdit()->selectedText(); +} diff --git a/src/widgets/textviewwindow.h b/src/widgets/textviewwindow.h index dc2efb43..7b241689 100644 --- a/src/widgets/textviewwindow.h +++ b/src/widgets/textviewwindow.h @@ -66,6 +66,8 @@ namespace vnotex QPoint getFloatingWidgetPosition() Q_DECL_OVERRIDE; + QString selectedText() const Q_DECL_OVERRIDE; + private: void setupUI(); diff --git a/src/widgets/viewwindow.cpp b/src/widgets/viewwindow.cpp index ac94d94d..0f7e818d 100644 --- a/src/widgets/viewwindow.cpp +++ b/src/widgets/viewwindow.cpp @@ -655,6 +655,11 @@ void ViewWindow::handleImageHostChanged(const QString &p_hostName) Q_ASSERT(false); } +QString ViewWindow::selectedText() const +{ + return QString(); +} + ViewWindow::TypeAction ViewWindow::toolBarActionToTypeAction(ViewWindowToolBarHelper::Action p_action) { Q_ASSERT(p_action >= ViewWindowToolBarHelper::Action::TypeBold @@ -970,7 +975,7 @@ void ViewWindow::showFindAndReplaceWidget() this, &ViewWindow::handleFindAndReplaceWidgetOpened); } - m_findAndReplace->open(QString()); + m_findAndReplace->open(selectedText()); } void ViewWindow::hideFindAndReplaceWidget() diff --git a/src/widgets/viewwindow.h b/src/widgets/viewwindow.h index 7620cca6..3d97c737 100644 --- a/src/widgets/viewwindow.h +++ b/src/widgets/viewwindow.h @@ -218,6 +218,8 @@ namespace vnotex virtual void zoom(bool p_zoomIn) = 0; + virtual QString selectedText() const; + void showZoomFactor(qreal p_factor); void showZoomDelta(int p_delta);