From e5667ff2c9457754790908cb2bb0f6616096fa3e Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 31 May 2017 11:20:57 +0200 Subject: [PATCH] feat(ui/modules/Linphone/Chat/Message): disable `play me` action if text to speech not available --- .../components/text-to-speech/TextToSpeech.cpp | 8 ++++++++ .../components/text-to-speech/TextToSpeech.hpp | 4 ++++ .../ui/modules/Common/Menus/MenuItem.qml | 15 ++++++++++++--- .../modules/Common/Styles/Menus/MenuItemStyle.qml | 6 +++++- .../ui/modules/Linphone/Chat/Message.qml | 2 ++ 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/linphone-desktop/src/components/text-to-speech/TextToSpeech.cpp b/linphone-desktop/src/components/text-to-speech/TextToSpeech.cpp index 709b752ad..c5424a0af 100644 --- a/linphone-desktop/src/components/text-to-speech/TextToSpeech.cpp +++ b/linphone-desktop/src/components/text-to-speech/TextToSpeech.cpp @@ -37,9 +37,17 @@ mQtTextToSpeech->say(text); } + bool TextToSpeech::available () const { + return true; + } + #else TextToSpeech::TextToSpeech (QObject *parent) : QObject(parent) {} void TextToSpeech::say (const QString &) {} + bool TextToSpeech::available () const { + return false; + } + #endif // ifdef TEXTTOSPEECH_ENABLED diff --git a/linphone-desktop/src/components/text-to-speech/TextToSpeech.hpp b/linphone-desktop/src/components/text-to-speech/TextToSpeech.hpp index 287af1aa7..523945ee0 100644 --- a/linphone-desktop/src/components/text-to-speech/TextToSpeech.hpp +++ b/linphone-desktop/src/components/text-to-speech/TextToSpeech.hpp @@ -32,6 +32,8 @@ class QTextToSpeech; class TextToSpeech : public QObject { Q_OBJECT; + Q_PROPERTY(bool available READ available CONSTANT); + public: TextToSpeech (QObject *parent = Q_NULLPTR); ~TextToSpeech () = default; @@ -39,6 +41,8 @@ public: Q_INVOKABLE void say (const QString &text); private: + bool available () const; + QTextToSpeech *mQtTextToSpeech = nullptr; }; diff --git a/linphone-desktop/ui/modules/Common/Menus/MenuItem.qml b/linphone-desktop/ui/modules/Common/Menus/MenuItem.qml index 17693d0bf..e0946d21f 100644 --- a/linphone-desktop/ui/modules/Common/Menus/MenuItem.qml +++ b/linphone-desktop/ui/modules/Common/Menus/MenuItem.qml @@ -18,11 +18,19 @@ MenuItem { ) implicitHeight: MenuItemStyle.background.height } + contentItem: Text { - color: MenuItemStyle.text.color + color: button.enabled + ? MenuItemStyle.text.color.enabled + : MenuItemStyle.text.color.disabled + elide: Text.ElideRight - font.bold: true - font.pointSize: MenuItemStyle.text.fontSize + + font { + bold: true + pointSize: MenuItemStyle.text.fontSize + } + text: button.text leftPadding: MenuItemStyle.leftPadding @@ -30,5 +38,6 @@ MenuItem { verticalAlignment: Text.AlignVCenter } + hoverEnabled: true } diff --git a/linphone-desktop/ui/modules/Common/Styles/Menus/MenuItemStyle.qml b/linphone-desktop/ui/modules/Common/Styles/Menus/MenuItemStyle.qml index ac648703a..aae4aac40 100644 --- a/linphone-desktop/ui/modules/Common/Styles/Menus/MenuItemStyle.qml +++ b/linphone-desktop/ui/modules/Common/Styles/Menus/MenuItemStyle.qml @@ -20,7 +20,11 @@ QtObject { } property QtObject text: QtObject { - property color color: Colors.j property int fontSize: 10 + + property QtObject color: QtObject { + property color enabled: Colors.j + property color disabled: Colors.l50 + } } } diff --git a/linphone-desktop/ui/modules/Linphone/Chat/Message.qml b/linphone-desktop/ui/modules/Linphone/Chat/Message.qml index 4c02b347f..f16d10a4a 100644 --- a/linphone-desktop/ui/modules/Linphone/Chat/Message.qml +++ b/linphone-desktop/ui/modules/Linphone/Chat/Message.qml @@ -76,7 +76,9 @@ Item { } MenuItem { + enabled: TextToSpeech.available text: qsTr('menuPlayMe') + onTriggered: TextToSpeech.say($chatEntry.content) } }