Commit 53f18731 authored by Laurent Montel's avatar Laurent Montel 😁
Browse files

Add support for building without texttospeech as for the moment we don't

have it in qt6
parent a9f119df
Pipeline #114609 passed with stage
in 2 minutes and 24 seconds
......@@ -76,7 +76,15 @@ add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02)
add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055A00)
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS TextToSpeech)
find_package(Qt5TextToSpeech ${QT_REQUIRED_VERSION} CONFIG)
set_package_properties(Qt5TextToSpeech PROPERTIES DESCRIPTION
"Add support for texttospeed"
TYPE OPTIONAL
)
if(TARGET Qt5::TextToSpeech)
set(HAVE_TEXT_TO_SPEECH_SUPPORT TRUE)
add_definitions(-DHAVE_TEXT_TO_SPEECH_SUPPORT)
endif()
if(BUILD_TESTING)
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS Test)
......
......@@ -53,7 +53,7 @@ target_sources(KF5PimTextEdit PRIVATE
composer-ng/richtextcomposeremailquotehighlighter.h
composer-ng/richtextcomposerwidget.h
)
if (HAVE_TEXT_TO_SPEECH_SUPPORT)
target_sources(KF5PimTextEdit PRIVATE
texttospeech/texttospeech.cpp
texttospeech/texttospeechwidget.cpp
......@@ -76,6 +76,7 @@ target_sources(KF5PimTextEdit PRIVATE
texttospeech/texttospeechlanguagecombobox.h
texttospeech/texttospeechactions.h
)
endif()
target_sources(KF5PimTextEdit PRIVATE
grantleebuilder/plaintextmarkupbuilder.cpp
......@@ -168,7 +169,12 @@ target_link_libraries(KF5PimTextEdit
KF5::SyntaxHighlighting
Qt::TextToSpeech
)
if (HAVE_TEXT_TO_SPEECH_SUPPORT)
target_link_libraries(KF5PimTextEdit
PRIVATE
Qt::TextToSpeech
)
endif()
set_target_properties(KF5PimTextEdit PROPERTIES
VERSION ${KPIMTEXTEDIT_VERSION}
SOVERSION ${KPIMTEXTEDIT_SOVERSION}
......@@ -240,7 +246,7 @@ ecm_generate_headers(KPimTextEdit_CamelCasetexteditor_commonwidget_HEADERS
)
if (HAVE_TEXT_TO_SPEECH_SUPPORT)
ecm_generate_headers(KPimTextEdit_CamelCasetexttospeechs_HEADERS
HEADER_NAMES
TextToSpeech
......@@ -252,7 +258,7 @@ ecm_generate_headers(KPimTextEdit_CamelCasetexttospeechs_HEADERS
PREFIX KPIMTextEdit
RELATIVE texttospeech
)
endif()
ecm_generate_headers(KPimTextEdit_Camelcasecomposerng_HEADERS
HEADER_NAMES
RichTextComposer
......@@ -269,11 +275,22 @@ ecm_generate_headers(KPimTextEdit_Camelcasecomposerng_HEADERS
########### install files ###############
if (HAVE_TEXT_TO_SPEECH_SUPPORT)
install(FILES
${KPimTextEdit_texttospeechs_HEADERS}
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KPIMTextEdit/kpimtextedit
COMPONENT Devel
)
install(FILES
${KPimTextEdit_CamelCasetexttospeechs_HEADERS}
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KPIMTextEdit/KPIMTextEdit/
COMPONENT Devel
)
endif()
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/kpimtextedit_export.h
${kpimtextedit_HEADERS}
${KPimTextEdit_texttospeechs_HEADERS}
${KPimTextEdit_richtexteditor_HEADERS}
${KPimTextEdit_texteditor_commonwidget_HEADERS}
${KPimTextEdit_plaintexteditor_HEADERS}
......@@ -288,7 +305,6 @@ install(FILES
${KPimTextEdit_CamelCase_HEADERS}
${KPimTextEdit_CamelCasetextrichtexteditor_HEADERS}
${KPimTextEdit_CamelCaseplaintexteditor_HEADERS}
${KPimTextEdit_CamelCasetexttospeechs_HEADERS}
${KPimTextEdit_CamelCasetexteditor_commonwidget_HEADERS}
${KPimTextEdit_Camelcasecomposerng_HEADERS}
${KPimTextEdit_CamelCaseemoticon_HEADERS}
......@@ -306,8 +322,10 @@ if (BUILD_TESTING)
add_subdirectory(texteditor/commonwidget/autotests)
add_subdirectory(texteditor/plaintexteditor/tests)
add_subdirectory(texteditor/richtexteditor/tests)
add_subdirectory(texttospeech/autotests)
add_subdirectory(texttospeech/tests)
if (HAVE_TEXT_TO_SPEECH_SUPPORT)
add_subdirectory(texttospeech/autotests)
add_subdirectory(texttospeech/tests)
endif()
add_subdirectory(composer-ng/autotests)
add_subdirectory(composer-ng/tests)
add_subdirectory(grantleebuilder/autotests)
......
......@@ -18,7 +18,9 @@
#include <QActionGroup>
#include <QIcon>
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
#include "texttospeech/texttospeech.h"
#endif
#include <Sonnet/Dialog>
#include <sonnet/backgroundchecker.h>
......@@ -181,6 +183,7 @@ void PlainTextEditor::contextMenuEvent(QContextMenuEvent *event)
}
}
if (d->supportFeatures & TextToSpeech) {
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
if (KPIMTextEdit::TextToSpeech::self()->isReady()) {
if (!emptyDocument) {
QAction *speakAction = popup->addAction(i18n("Speak Text"));
......@@ -188,6 +191,7 @@ void PlainTextEditor::contextMenuEvent(QContextMenuEvent *event)
connect(speakAction, &QAction::triggered, this, &PlainTextEditor::slotSpeakText);
}
}
#endif
}
if (webShortcutSupport() && textCursor().hasSelection()) {
popup->addSeparator();
......
......@@ -8,8 +8,9 @@
#include "plaintexteditfindbar.h"
#include "plaintexteditor.h"
#include "slidecontainer.h"
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
#include "texttospeech/texttospeechwidget.h"
#endif
#include <QTextCursor>
#include <QVBoxLayout>
......@@ -21,7 +22,9 @@ public:
KPIMTextEdit::PlainTextEditFindBar *mFindBar = nullptr;
PlainTextEditor *mEditor = nullptr;
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
KPIMTextEdit::TextToSpeechWidget *mTextToSpeechWidget = nullptr;
#endif
KPIMTextEdit::SlideContainer *mSliderContainer = nullptr;
};
......@@ -75,16 +78,19 @@ void PlainTextEditorWidget::init(PlainTextEditor *customEditor)
{
auto lay = new QVBoxLayout(this);
lay->setContentsMargins({});
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
d->mTextToSpeechWidget = new KPIMTextEdit::TextToSpeechWidget(this);
lay->addWidget(d->mTextToSpeechWidget);
#endif
if (customEditor) {
d->mEditor = customEditor;
} else {
d->mEditor = new PlainTextEditor;
}
lay->addWidget(d->mEditor);
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
connect(d->mEditor, &PlainTextEditor::say, d->mTextToSpeechWidget, &KPIMTextEdit::TextToSpeechWidget::say);
#endif
d->mSliderContainer = new KPIMTextEdit::SlideContainer(this);
d->mFindBar = new KPIMTextEdit::PlainTextEditFindBar(d->mEditor, this);
......
......@@ -26,7 +26,9 @@
#include <sonnet/backgroundchecker.h>
#include <sonnet/spellcheckdecorator.h>
#include <sonnet/speller.h>
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
#include <texttospeech/texttospeech.h>
#endif
#include <QApplication>
#include <QClipboard>
......@@ -247,7 +249,7 @@ QMenu *RichTextEditor::mousePopupMenu(QPoint pos)
allowTabAction->setChecked(!tabChangesFocus());
connect(allowTabAction, &QAction::triggered, this, &RichTextEditor::slotAllowTab);
}
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
if (KPIMTextEdit::TextToSpeech::self()->isReady()) {
if (!emptyDocument) {
QAction *speakAction = popup->addAction(i18n("Speak Text"));
......@@ -255,6 +257,7 @@ QMenu *RichTextEditor::mousePopupMenu(QPoint pos)
connect(speakAction, &QAction::triggered, this, &RichTextEditor::slotSpeakText);
}
}
#endif
if (webShortcutSupport() && textCursor().hasSelection()) {
popup->addSeparator();
const QString selectedText = textCursor().selectedText();
......
......@@ -10,8 +10,9 @@
#include <QTextCursor>
#include <QVBoxLayout>
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
#include <texttospeech/texttospeechwidget.h>
#endif
#include "slidecontainer.h"
using namespace KPIMTextEdit;
......@@ -23,7 +24,9 @@ public:
KPIMTextEdit::RichTextEditFindBar *mFindBar = nullptr;
RichTextEditor *mEditor = nullptr;
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
KPIMTextEdit::TextToSpeechWidget *mTextToSpeechWidget = nullptr;
#endif
KPIMTextEdit::SlideContainer *mSliderContainer = nullptr;
};
......@@ -97,14 +100,18 @@ void RichTextEditorWidget::init(RichTextEditor *customEditor)
{
auto lay = new QVBoxLayout(this);
lay->setContentsMargins({});
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
d->mTextToSpeechWidget = new KPIMTextEdit::TextToSpeechWidget(this);
lay->addWidget(d->mTextToSpeechWidget);
#endif
if (customEditor) {
d->mEditor = customEditor;
} else {
d->mEditor = new RichTextEditor;
}
#ifdef HAVE_TEXT_TO_SPEECH_SUPPORT
connect(d->mEditor, &RichTextEditor::say, d->mTextToSpeechWidget, &KPIMTextEdit::TextToSpeechWidget::say);
#endif
lay->addWidget(d->mEditor);
d->mSliderContainer = new KPIMTextEdit::SlideContainer(this);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment