Add UI settings : allow to change text messages font and size

This commit is contained in:
Julien Wadel 2021-09-27 15:04:46 +02:00
parent 595b844164
commit 0c31da57af
23 changed files with 761 additions and 456 deletions

View file

@ -2362,6 +2362,21 @@ Klik her: <a href="%1">%1</a>
<source>autoStartLabel</source>
<translation>Autostart applikation</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2362,6 +2362,21 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Anwendung automatisch starten</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2385,6 +2385,21 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Autostart app</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation>Fonts</translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation>Text Messages</translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation>Select a new font</translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2362,6 +2362,21 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<source>autoStartLabel</source>
<translation>Auto-iniciar aplicación</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2362,6 +2362,21 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Démarrer auto. l&apos;app</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2356,6 +2356,21 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Alkalmazás önműködő indítása</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2362,6 +2362,21 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Autoavvio dell&apos;app</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2352,6 +2352,21 @@ Ephemeral message is only supported in conference based chat room!&apos;</extrac
<source>autoStartLabel</source>
<translation></translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2372,6 +2372,21 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Automatinio paleidimo programa</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2362,6 +2362,21 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<source>autoStartLabel</source>
<translation>Aplicação Autostart</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2372,6 +2372,21 @@ Ephemeral message is only supported in conference based chat room!&apos;</extrac
<source>autoStartLabel</source>
<translation>Автозапуск</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2362,6 +2362,21 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Autostarta appen</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2352,6 +2352,21 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>autoStartLabel</source>
<translation>Uygulamayı kendiliğinden başlat</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2372,6 +2372,21 @@ Ephemeral message is only supported in conference based chat room!&apos;</extrac
<source>autoStartLabel</source>
<translation>Самозапуск</translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -2352,6 +2352,21 @@ Ephemeral message is only supported in conference based chat room!&apos;</extrac
<source>autoStartLabel</source>
<translation></translation>
</message>
<message>
<source>fontsTitle</source>
<extracomment>&apos;Fonts&apos; : title of fonts section in settings</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsTextChange</source>
<extracomment>&apos;Text Messages&apos; : Label for changing text message fonts</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>fontsPopupTitle</source>
<extracomment>&apos;Select a new font&apos; : Popup title for choosing new fonts</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>

View file

@ -43,14 +43,14 @@ class Notifier;
class App : public SingleApplication {
Q_OBJECT;
Q_OBJECT
Q_PROPERTY(QString configLocale READ getConfigLocale WRITE setConfigLocale NOTIFY configLocaleChanged);
Q_PROPERTY(QString locale READ getLocale CONSTANT);
Q_PROPERTY(QVariantList availableLocales READ getAvailableLocales CONSTANT);
Q_PROPERTY(QString qtVersion READ getQtVersion CONSTANT);
Q_PROPERTY(QString configLocale READ getConfigLocale WRITE setConfigLocale NOTIFY configLocaleChanged)
Q_PROPERTY(QString locale READ getLocale CONSTANT)
Q_PROPERTY(QVariantList availableLocales READ getAvailableLocales CONSTANT)
Q_PROPERTY(QString qtVersion READ getQtVersion CONSTANT)
Q_PROPERTY(bool autoStart READ getAutoStart WRITE setAutoStart NOTIFY autoStartChanged);
Q_PROPERTY(bool autoStart READ getAutoStart WRITE setAutoStart NOTIFY autoStartChanged)
public:
App (int &argc, char *argv[]);
@ -113,7 +113,7 @@ public:
Q_INVOKABLE QQuickWindow *getSettingsWindow () const;
Q_INVOKABLE static void smartShowWindow (QQuickWindow *window);
public slots:
void stateChanged(Qt::ApplicationState);
@ -123,7 +123,7 @@ signals:
void autoStartChanged (bool enabled);
void opened (bool status);
private:
void createParser ();

View file

@ -26,6 +26,7 @@
#include <cstdlib>
#include <cmath>
#include "app/App.hpp"
#include "app/logger/Logger.hpp"
#include "app/paths/Paths.hpp"
#include "components/core/CoreManager.hpp"
@ -1132,6 +1133,27 @@ void SettingsModel::configureRlsUri (const shared_ptr<const linphone::ProxyConfi
// UI.
// =============================================================================
QFont SettingsModel::getTextMessageFont() const{
QString family = Utils::coreStringToAppString(mConfig->getString(UiSection, "text_message_font", Utils::appStringToCoreString(App::getInstance()->font().family())));
int pointSize = getTextMessageFontSize();
return QFont(family,pointSize);
}
void SettingsModel::setTextMessageFont(const QFont& font){
mConfig->setString(UiSection, "text_message_font", Utils::appStringToCoreString(font.family()));
setTextMessageFontSize(font.pointSize());
emit textMessageFontChanged(font);
}
int SettingsModel::getTextMessageFontSize() const{
return mConfig->getInt(UiSection, "text_message_font_size", 10);
}
void SettingsModel::setTextMessageFontSize(const int& size){
mConfig->setInt(UiSection, "text_message_font_size", size);
emit textMessageFontSizeChanged(size);
}
QString SettingsModel::getSavedScreenshotsFolder () const {
return QDir::cleanPath(
Utils::coreStringToAppString(

View file

@ -25,6 +25,7 @@
#include <utils/MediastreamerUtils.hpp>
#include <QObject>
#include <QVariantMap>
#include <QFont>
#include "components/core/CoreHandlers.hpp"
#include "components/contacts/ContactsImporterModel.hpp"
@ -32,295 +33,298 @@
// =============================================================================
class SettingsModel : public QObject {
Q_OBJECT
Q_OBJECT
// ===========================================================================
// PROPERTIES.
// ===========================================================================
// Assistant. ----------------------------------------------------------------
Q_PROPERTY(bool createAppSipAccountEnabled READ getCreateAppSipAccountEnabled WRITE setCreateAppSipAccountEnabled NOTIFY createAppSipAccountEnabledChanged)
Q_PROPERTY(bool fetchRemoteConfigurationEnabled READ getFetchRemoteConfigurationEnabled WRITE setFetchRemoteConfigurationEnabled NOTIFY fetchRemoteConfigurationEnabledChanged)
Q_PROPERTY(bool useAppSipAccountEnabled READ getUseAppSipAccountEnabled WRITE setUseAppSipAccountEnabled NOTIFY useAppSipAccountEnabledChanged)
Q_PROPERTY(bool useOtherSipAccountEnabled READ getUseOtherSipAccountEnabled WRITE setUseOtherSipAccountEnabled NOTIFY useOtherSipAccountEnabledChanged)
Q_PROPERTY(bool assistantSupportsPhoneNumbers READ getAssistantSupportsPhoneNumbers WRITE setAssistantSupportsPhoneNumbers NOTIFY assistantSupportsPhoneNumbersChanged)
Q_PROPERTY(bool createAppSipAccountEnabled READ getCreateAppSipAccountEnabled WRITE setCreateAppSipAccountEnabled NOTIFY createAppSipAccountEnabledChanged)
Q_PROPERTY(bool fetchRemoteConfigurationEnabled READ getFetchRemoteConfigurationEnabled WRITE setFetchRemoteConfigurationEnabled NOTIFY fetchRemoteConfigurationEnabledChanged)
Q_PROPERTY(bool useAppSipAccountEnabled READ getUseAppSipAccountEnabled WRITE setUseAppSipAccountEnabled NOTIFY useAppSipAccountEnabledChanged)
Q_PROPERTY(bool useOtherSipAccountEnabled READ getUseOtherSipAccountEnabled WRITE setUseOtherSipAccountEnabled NOTIFY useOtherSipAccountEnabledChanged)
Q_PROPERTY(bool assistantSupportsPhoneNumbers READ getAssistantSupportsPhoneNumbers WRITE setAssistantSupportsPhoneNumbers NOTIFY assistantSupportsPhoneNumbersChanged)
// Audio. --------------------------------------------------------------------
Q_PROPERTY(bool captureGraphRunning READ getCaptureGraphRunning NOTIFY captureGraphRunningChanged)
Q_PROPERTY(QStringList captureDevices READ getCaptureDevices NOTIFY captureDevicesChanged)
Q_PROPERTY(QStringList playbackDevices READ getPlaybackDevices NOTIFY playbackDevicesChanged)
Q_PROPERTY(float playbackGain READ getPlaybackGain WRITE setPlaybackGain NOTIFY playbackGainChanged)
Q_PROPERTY(float captureGain READ getCaptureGain WRITE setCaptureGain NOTIFY captureGainChanged)
Q_PROPERTY(QString captureDevice READ getCaptureDevice WRITE setCaptureDevice NOTIFY captureDeviceChanged)
Q_PROPERTY(QString playbackDevice READ getPlaybackDevice WRITE setPlaybackDevice NOTIFY playbackDeviceChanged)
Q_PROPERTY(QString ringerDevice READ getRingerDevice WRITE setRingerDevice NOTIFY ringerDeviceChanged)
Q_PROPERTY(QString ringPath READ getRingPath WRITE setRingPath NOTIFY ringPathChanged)
Q_PROPERTY(bool echoCancellationEnabled READ getEchoCancellationEnabled WRITE setEchoCancellationEnabled NOTIFY echoCancellationEnabledChanged)
Q_PROPERTY(bool showAudioCodecs READ getShowAudioCodecs WRITE setShowAudioCodecs NOTIFY showAudioCodecsChanged)
Q_PROPERTY(bool captureGraphRunning READ getCaptureGraphRunning NOTIFY captureGraphRunningChanged)
Q_PROPERTY(QStringList captureDevices READ getCaptureDevices NOTIFY captureDevicesChanged)
Q_PROPERTY(QStringList playbackDevices READ getPlaybackDevices NOTIFY playbackDevicesChanged)
Q_PROPERTY(float playbackGain READ getPlaybackGain WRITE setPlaybackGain NOTIFY playbackGainChanged)
Q_PROPERTY(float captureGain READ getCaptureGain WRITE setCaptureGain NOTIFY captureGainChanged)
Q_PROPERTY(QString captureDevice READ getCaptureDevice WRITE setCaptureDevice NOTIFY captureDeviceChanged)
Q_PROPERTY(QString playbackDevice READ getPlaybackDevice WRITE setPlaybackDevice NOTIFY playbackDeviceChanged)
Q_PROPERTY(QString ringerDevice READ getRingerDevice WRITE setRingerDevice NOTIFY ringerDeviceChanged)
Q_PROPERTY(QString ringPath READ getRingPath WRITE setRingPath NOTIFY ringPathChanged)
Q_PROPERTY(bool echoCancellationEnabled READ getEchoCancellationEnabled WRITE setEchoCancellationEnabled NOTIFY echoCancellationEnabledChanged)
Q_PROPERTY(bool showAudioCodecs READ getShowAudioCodecs WRITE setShowAudioCodecs NOTIFY showAudioCodecsChanged)
// Video. --------------------------------------------------------------------
Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged)
Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged)
Q_PROPERTY(QString videoPreset READ getVideoPreset WRITE setVideoPreset NOTIFY videoPresetChanged)
Q_PROPERTY(int videoFramerate READ getVideoFramerate WRITE setVideoFramerate NOTIFY videoFramerateChanged)
Q_PROPERTY(QVariantList supportedVideoDefinitions READ getSupportedVideoDefinitions CONSTANT)
Q_PROPERTY(QVariantMap videoDefinition READ getVideoDefinition WRITE setVideoDefinition NOTIFY videoDefinitionChanged)
Q_PROPERTY(bool videoSupported READ getVideoSupported CONSTANT)
Q_PROPERTY(bool showVideoCodecs READ getShowVideoCodecs WRITE setShowVideoCodecs NOTIFY showVideoCodecsChanged)
Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged)
Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged)
Q_PROPERTY(QString videoPreset READ getVideoPreset WRITE setVideoPreset NOTIFY videoPresetChanged)
Q_PROPERTY(int videoFramerate READ getVideoFramerate WRITE setVideoFramerate NOTIFY videoFramerateChanged)
Q_PROPERTY(QVariantList supportedVideoDefinitions READ getSupportedVideoDefinitions CONSTANT)
Q_PROPERTY(QVariantMap videoDefinition READ getVideoDefinition WRITE setVideoDefinition NOTIFY videoDefinitionChanged)
Q_PROPERTY(bool videoSupported READ getVideoSupported CONSTANT)
Q_PROPERTY(bool showVideoCodecs READ getShowVideoCodecs WRITE setShowVideoCodecs NOTIFY showVideoCodecsChanged)
// Chat & calls. -------------------------------------------------------------
Q_PROPERTY(bool autoAnswerStatus READ getAutoAnswerStatus WRITE setAutoAnswerStatus NOTIFY autoAnswerStatusChanged)
Q_PROPERTY(bool autoAnswerVideoStatus READ getAutoAnswerVideoStatus WRITE setAutoAnswerVideoStatus NOTIFY autoAnswerVideoStatusChanged)
Q_PROPERTY(int autoAnswerDelay READ getAutoAnswerDelay WRITE setAutoAnswerDelay NOTIFY autoAnswerDelayChanged)
Q_PROPERTY(bool showTelKeypadAutomatically READ getShowTelKeypadAutomatically WRITE setShowTelKeypadAutomatically NOTIFY showTelKeypadAutomaticallyChanged)
Q_PROPERTY(bool keepCallsWindowInBackground READ getKeepCallsWindowInBackground WRITE setKeepCallsWindowInBackground NOTIFY keepCallsWindowInBackgroundChanged)
Q_PROPERTY(bool outgoingCallsEnabled READ getOutgoingCallsEnabled WRITE setOutgoingCallsEnabled NOTIFY outgoingCallsEnabledChanged)
Q_PROPERTY(bool callRecorderEnabled READ getCallRecorderEnabled WRITE setCallRecorderEnabled NOTIFY callRecorderEnabledChanged)
Q_PROPERTY(bool automaticallyRecordCalls READ getAutomaticallyRecordCalls WRITE setAutomaticallyRecordCalls NOTIFY automaticallyRecordCallsChanged)
Q_PROPERTY(bool callPauseEnabled READ getCallPauseEnabled WRITE setCallPauseEnabled NOTIFY callPauseEnabledChanged)
Q_PROPERTY(bool muteMicrophoneEnabled READ getMuteMicrophoneEnabled WRITE setMuteMicrophoneEnabled NOTIFY muteMicrophoneEnabledChanged)
Q_PROPERTY(bool chatEnabled READ getChatEnabled WRITE setChatEnabled NOTIFY chatEnabledChanged)
Q_PROPERTY(bool hideEmptyChatRooms READ getHideEmptyChatRooms WRITE setHideEmptyChatRooms NOTIFY hideEmptyChatRoomsChanged)
Q_PROPERTY(bool waitRegistrationForCall READ getWaitRegistrationForCall WRITE setWaitRegistrationForCall NOTIFY waitRegistrationForCallChanged)// Allow call only if the current proxy has been registered
Q_PROPERTY(bool conferenceEnabled READ getConferenceEnabled WRITE setConferenceEnabled NOTIFY conferenceEnabledChanged)
Q_PROPERTY(bool chatNotificationSoundEnabled READ getChatNotificationSoundEnabled WRITE setChatNotificationSoundEnabled NOTIFY chatNotificationSoundEnabledChanged)
Q_PROPERTY(QString chatNotificationSoundPath READ getChatNotificationSoundPath WRITE setChatNotificationSoundPath NOTIFY chatNotificationSoundPathChanged)
Q_PROPERTY(QString fileTransferUrl READ getFileTransferUrl WRITE setFileTransferUrl NOTIFY fileTransferUrlChanged)
Q_PROPERTY(bool limeIsSupported READ getLimeIsSupported CONSTANT)
Q_PROPERTY(QVariantList supportedMediaEncryptions READ getSupportedMediaEncryptions CONSTANT)
Q_PROPERTY(MediaEncryption mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged)
Q_PROPERTY(bool mediaEncryptionMandatory READ mandatoryMediaEncryptionEnabled WRITE enableMandatoryMediaEncryption NOTIFY mediaEncryptionChanged)
Q_PROPERTY(bool limeState READ getLimeState WRITE setLimeState NOTIFY limeStateChanged)
Q_PROPERTY(bool contactsEnabled READ getContactsEnabled WRITE setContactsEnabled NOTIFY contactsEnabledChanged)
Q_PROPERTY(bool autoAnswerStatus READ getAutoAnswerStatus WRITE setAutoAnswerStatus NOTIFY autoAnswerStatusChanged)
Q_PROPERTY(bool autoAnswerVideoStatus READ getAutoAnswerVideoStatus WRITE setAutoAnswerVideoStatus NOTIFY autoAnswerVideoStatusChanged)
Q_PROPERTY(int autoAnswerDelay READ getAutoAnswerDelay WRITE setAutoAnswerDelay NOTIFY autoAnswerDelayChanged)
Q_PROPERTY(bool showTelKeypadAutomatically READ getShowTelKeypadAutomatically WRITE setShowTelKeypadAutomatically NOTIFY showTelKeypadAutomaticallyChanged)
Q_PROPERTY(bool keepCallsWindowInBackground READ getKeepCallsWindowInBackground WRITE setKeepCallsWindowInBackground NOTIFY keepCallsWindowInBackgroundChanged)
Q_PROPERTY(bool outgoingCallsEnabled READ getOutgoingCallsEnabled WRITE setOutgoingCallsEnabled NOTIFY outgoingCallsEnabledChanged)
Q_PROPERTY(bool callRecorderEnabled READ getCallRecorderEnabled WRITE setCallRecorderEnabled NOTIFY callRecorderEnabledChanged)
Q_PROPERTY(bool automaticallyRecordCalls READ getAutomaticallyRecordCalls WRITE setAutomaticallyRecordCalls NOTIFY automaticallyRecordCallsChanged)
Q_PROPERTY(bool callPauseEnabled READ getCallPauseEnabled WRITE setCallPauseEnabled NOTIFY callPauseEnabledChanged)
Q_PROPERTY(bool muteMicrophoneEnabled READ getMuteMicrophoneEnabled WRITE setMuteMicrophoneEnabled NOTIFY muteMicrophoneEnabledChanged)
Q_PROPERTY(bool chatEnabled READ getChatEnabled WRITE setChatEnabled NOTIFY chatEnabledChanged)
Q_PROPERTY(bool hideEmptyChatRooms READ getHideEmptyChatRooms WRITE setHideEmptyChatRooms NOTIFY hideEmptyChatRoomsChanged)
Q_PROPERTY(bool waitRegistrationForCall READ getWaitRegistrationForCall WRITE setWaitRegistrationForCall NOTIFY waitRegistrationForCallChanged)// Allow call only if the current proxy has been registered
Q_PROPERTY(bool conferenceEnabled READ getConferenceEnabled WRITE setConferenceEnabled NOTIFY conferenceEnabledChanged)
Q_PROPERTY(bool chatNotificationSoundEnabled READ getChatNotificationSoundEnabled WRITE setChatNotificationSoundEnabled NOTIFY chatNotificationSoundEnabledChanged)
Q_PROPERTY(QString chatNotificationSoundPath READ getChatNotificationSoundPath WRITE setChatNotificationSoundPath NOTIFY chatNotificationSoundPathChanged)
Q_PROPERTY(QString fileTransferUrl READ getFileTransferUrl WRITE setFileTransferUrl NOTIFY fileTransferUrlChanged)
Q_PROPERTY(bool limeIsSupported READ getLimeIsSupported CONSTANT)
Q_PROPERTY(QVariantList supportedMediaEncryptions READ getSupportedMediaEncryptions CONSTANT)
Q_PROPERTY(MediaEncryption mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged)
Q_PROPERTY(bool mediaEncryptionMandatory READ mandatoryMediaEncryptionEnabled WRITE enableMandatoryMediaEncryption NOTIFY mediaEncryptionChanged)
Q_PROPERTY(bool limeState READ getLimeState WRITE setLimeState NOTIFY limeStateChanged)
Q_PROPERTY(bool contactsEnabled READ getContactsEnabled WRITE setContactsEnabled NOTIFY contactsEnabledChanged)
// Network. ------------------------------------------------------------------
Q_PROPERTY(bool showNetworkSettings READ getShowNetworkSettings WRITE setShowNetworkSettings NOTIFY showNetworkSettingsChanged)
Q_PROPERTY(bool useSipInfoForDtmfs READ getUseSipInfoForDtmfs WRITE setUseSipInfoForDtmfs NOTIFY dtmfsProtocolChanged)
Q_PROPERTY(bool useRfc2833ForDtmfs READ getUseRfc2833ForDtmfs WRITE setUseRfc2833ForDtmfs NOTIFY dtmfsProtocolChanged)
Q_PROPERTY(bool ipv6Enabled READ getIpv6Enabled WRITE setIpv6Enabled NOTIFY ipv6EnabledChanged)
Q_PROPERTY(int downloadBandwidth READ getDownloadBandwidth WRITE setDownloadBandwidth NOTIFY downloadBandWidthChanged)
Q_PROPERTY(int uploadBandwidth READ getUploadBandwidth WRITE setUploadBandwidth NOTIFY uploadBandWidthChanged)
Q_PROPERTY(bool showNetworkSettings READ getShowNetworkSettings WRITE setShowNetworkSettings NOTIFY showNetworkSettingsChanged)
Q_PROPERTY(bool useSipInfoForDtmfs READ getUseSipInfoForDtmfs WRITE setUseSipInfoForDtmfs NOTIFY dtmfsProtocolChanged)
Q_PROPERTY(bool useRfc2833ForDtmfs READ getUseRfc2833ForDtmfs WRITE setUseRfc2833ForDtmfs NOTIFY dtmfsProtocolChanged)
Q_PROPERTY(bool ipv6Enabled READ getIpv6Enabled WRITE setIpv6Enabled NOTIFY ipv6EnabledChanged)
Q_PROPERTY(int downloadBandwidth READ getDownloadBandwidth WRITE setDownloadBandwidth NOTIFY downloadBandWidthChanged)
Q_PROPERTY(int uploadBandwidth READ getUploadBandwidth WRITE setUploadBandwidth NOTIFY uploadBandWidthChanged)
Q_PROPERTY(
bool adaptiveRateControlEnabled
READ getAdaptiveRateControlEnabled
WRITE setAdaptiveRateControlEnabled
NOTIFY adaptiveRateControlEnabledChanged
)
Q_PROPERTY(int tcpPort READ getTcpPort WRITE setTcpPort NOTIFY tcpPortChanged)
Q_PROPERTY(int udpPort READ getUdpPort WRITE setUdpPort NOTIFY udpPortChanged)
Q_PROPERTY(QList<int> audioPortRange READ getAudioPortRange WRITE setAudioPortRange NOTIFY audioPortRangeChanged)
Q_PROPERTY(QList<int> videoPortRange READ getVideoPortRange WRITE setVideoPortRange NOTIFY videoPortRangeChanged)
Q_PROPERTY(bool iceEnabled READ getIceEnabled WRITE setIceEnabled NOTIFY iceEnabledChanged)
Q_PROPERTY(bool turnEnabled READ getTurnEnabled WRITE setTurnEnabled NOTIFY turnEnabledChanged)
Q_PROPERTY(QString stunServer READ getStunServer WRITE setStunServer NOTIFY stunServerChanged)
Q_PROPERTY(QString turnUser READ getTurnUser WRITE setTurnUser NOTIFY turnUserChanged)
Q_PROPERTY(QString turnPassword READ getTurnPassword WRITE setTurnPassword NOTIFY turnPasswordChanged)
Q_PROPERTY(int dscpSip READ getDscpSip WRITE setDscpSip NOTIFY dscpSipChanged)
Q_PROPERTY(int dscpAudio READ getDscpAudio WRITE setDscpAudio NOTIFY dscpAudioChanged)
Q_PROPERTY(int dscpVideo READ getDscpVideo WRITE setDscpVideo NOTIFY dscpVideoChanged)
Q_PROPERTY(bool rlsUriEnabled READ getRlsUriEnabled WRITE setRlsUriEnabled NOTIFY rlsUriEnabledChanged)
bool adaptiveRateControlEnabled
READ getAdaptiveRateControlEnabled
WRITE setAdaptiveRateControlEnabled
NOTIFY adaptiveRateControlEnabledChanged
)
Q_PROPERTY(int tcpPort READ getTcpPort WRITE setTcpPort NOTIFY tcpPortChanged)
Q_PROPERTY(int udpPort READ getUdpPort WRITE setUdpPort NOTIFY udpPortChanged)
Q_PROPERTY(QList<int> audioPortRange READ getAudioPortRange WRITE setAudioPortRange NOTIFY audioPortRangeChanged)
Q_PROPERTY(QList<int> videoPortRange READ getVideoPortRange WRITE setVideoPortRange NOTIFY videoPortRangeChanged)
Q_PROPERTY(bool iceEnabled READ getIceEnabled WRITE setIceEnabled NOTIFY iceEnabledChanged)
Q_PROPERTY(bool turnEnabled READ getTurnEnabled WRITE setTurnEnabled NOTIFY turnEnabledChanged)
Q_PROPERTY(QString stunServer READ getStunServer WRITE setStunServer NOTIFY stunServerChanged)
Q_PROPERTY(QString turnUser READ getTurnUser WRITE setTurnUser NOTIFY turnUserChanged)
Q_PROPERTY(QString turnPassword READ getTurnPassword WRITE setTurnPassword NOTIFY turnPasswordChanged)
Q_PROPERTY(int dscpSip READ getDscpSip WRITE setDscpSip NOTIFY dscpSipChanged)
Q_PROPERTY(int dscpAudio READ getDscpAudio WRITE setDscpAudio NOTIFY dscpAudioChanged)
Q_PROPERTY(int dscpVideo READ getDscpVideo WRITE setDscpVideo NOTIFY dscpVideoChanged)
Q_PROPERTY(bool rlsUriEnabled READ getRlsUriEnabled WRITE setRlsUriEnabled NOTIFY rlsUriEnabledChanged)
// UI. -----------------------------------------------------------------------
Q_PROPERTY(QString remoteProvisioning READ getRemoteProvisioning WRITE setRemoteProvisioning NOTIFY remoteProvisioningChanged)
Q_PROPERTY(QString savedScreenshotsFolder READ getSavedScreenshotsFolder WRITE setSavedScreenshotsFolder NOTIFY savedScreenshotsFolderChanged)
Q_PROPERTY(QString savedCallsFolder READ getSavedCallsFolder WRITE setSavedCallsFolder NOTIFY savedCallsFolderChanged)
Q_PROPERTY(QString downloadFolder READ getDownloadFolder WRITE setDownloadFolder NOTIFY downloadFolderChanged)
Q_PROPERTY(bool exitOnClose READ getExitOnClose WRITE setExitOnClose NOTIFY exitOnCloseChanged)
Q_PROPERTY(QFont textMessageFont READ getTextMessageFont WRITE setTextMessageFont NOTIFY textMessageFontChanged)
Q_PROPERTY(int textMessageFontSize READ getTextMessageFontSize WRITE setTextMessageFontSize NOTIFY textMessageFontSizeChanged)
Q_PROPERTY(QString remoteProvisioning READ getRemoteProvisioning WRITE setRemoteProvisioning NOTIFY remoteProvisioningChanged)
Q_PROPERTY(QString savedScreenshotsFolder READ getSavedScreenshotsFolder WRITE setSavedScreenshotsFolder NOTIFY savedScreenshotsFolderChanged)
Q_PROPERTY(QString savedCallsFolder READ getSavedCallsFolder WRITE setSavedCallsFolder NOTIFY savedCallsFolderChanged)
Q_PROPERTY(QString downloadFolder READ getDownloadFolder WRITE setDownloadFolder NOTIFY downloadFolderChanged)
Q_PROPERTY(bool exitOnClose READ getExitOnClose WRITE setExitOnClose NOTIFY exitOnCloseChanged)
Q_PROPERTY(bool showLocalSipAccount READ getShowLocalSipAccount CONSTANT)
Q_PROPERTY(bool showStartChatButton READ getShowStartChatButton CONSTANT)
Q_PROPERTY(bool showStartVideoCallButton READ getShowStartVideoCallButton CONSTANT)
// Advanced. -----------------------------------------------------------------
Q_PROPERTY(QString logsFolder READ getLogsFolder WRITE setLogsFolder NOTIFY logsFolderChanged)
Q_PROPERTY(QString logsUploadUrl READ getLogsUploadUrl WRITE setLogsUploadUrl NOTIFY logsUploadUrlChanged)
Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged)
Q_PROPERTY(QString logsEmail READ getLogsEmail WRITE setLogsEmail NOTIFY logsEmailChanged)
Q_PROPERTY(bool developerSettingsEnabled READ getDeveloperSettingsEnabled WRITE setDeveloperSettingsEnabled NOTIFY developerSettingsEnabledChanged)
Q_PROPERTY(bool isInCall READ getIsInCall NOTIFY isInCallChanged)
Q_PROPERTY(QString logsFolder READ getLogsFolder WRITE setLogsFolder NOTIFY logsFolderChanged)
Q_PROPERTY(QString logsUploadUrl READ getLogsUploadUrl WRITE setLogsUploadUrl NOTIFY logsUploadUrlChanged)
Q_PROPERTY(bool logsEnabled READ getLogsEnabled WRITE setLogsEnabled NOTIFY logsEnabledChanged)
Q_PROPERTY(QString logsEmail READ getLogsEmail WRITE setLogsEmail NOTIFY logsEmailChanged)
Q_PROPERTY(bool developerSettingsEnabled READ getDeveloperSettingsEnabled WRITE setDeveloperSettingsEnabled NOTIFY developerSettingsEnabledChanged)
Q_PROPERTY(bool isInCall READ getIsInCall NOTIFY isInCallChanged)
public:
enum MediaEncryption {
MediaEncryptionNone = int(linphone::MediaEncryption::None),
MediaEncryptionDtls = int(linphone::MediaEncryption::DTLS),
MediaEncryptionSrtp = int(linphone::MediaEncryption::SRTP),
MediaEncryptionZrtp = int(linphone::MediaEncryption::ZRTP)
MediaEncryptionNone = int(linphone::MediaEncryption::None),
MediaEncryptionDtls = int(linphone::MediaEncryption::DTLS),
MediaEncryptionSrtp = int(linphone::MediaEncryption::SRTP),
MediaEncryptionZrtp = int(linphone::MediaEncryption::ZRTP)
};
Q_ENUM(MediaEncryption)
Q_ENUM(MediaEncryption)
SettingsModel (QObject *parent = Q_NULLPTR);
virtual ~SettingsModel ();
virtual ~SettingsModel ();
// ===========================================================================
// METHODS.
// ===========================================================================
Q_INVOKABLE void onSettingsTabChanged(int idx);
Q_INVOKABLE void settingsWindowClosing(void);
// Assistant. ----------------------------------------------------------------
bool getCreateAppSipAccountEnabled () const;
void setCreateAppSipAccountEnabled (bool status);
bool getFetchRemoteConfigurationEnabled () const;
void setFetchRemoteConfigurationEnabled (bool status);
bool getUseAppSipAccountEnabled () const;
void setUseAppSipAccountEnabled (bool status);
bool getUseOtherSipAccountEnabled () const;
void setUseOtherSipAccountEnabled (bool status);
bool getAssistantSupportsPhoneNumbers () const;
void setAssistantSupportsPhoneNumbers (bool status);
// Audio. --------------------------------------------------------------------
void createCaptureGraph();
bool getCaptureGraphRunning();
void accessAudioSettings();
void closeAudioSettings();
Q_INVOKABLE float getMicVolume();
float getPlaybackGain() const;
void setPlaybackGain(float gain);
float getCaptureGain() const;
void setCaptureGain(float gain);
QStringList getCaptureDevices () const;
QStringList getPlaybackDevices () const;
QString getCaptureDevice () const;
void setCaptureDevice (const QString &device);
QString getPlaybackDevice () const;
void setPlaybackDevice (const QString &device);
QString getRingerDevice () const;
void setRingerDevice (const QString &device);
QString getRingPath () const;
void setRingPath (const QString &path);
bool getEchoCancellationEnabled () const;
void setEchoCancellationEnabled (bool status);
Q_INVOKABLE void startEchoCancellerCalibration();
bool getShowAudioCodecs () const;
void setShowAudioCodecs (bool status);
// Video. --------------------------------------------------------------------
//Called from qml when accessing audio settings panel
Q_INVOKABLE void accessVideoSettings();
QStringList getVideoDevices () const;
QString getVideoDevice () const;
void setVideoDevice (const QString &device);
QString getVideoPreset () const;
void setVideoPreset (const QString &preset);
int getVideoFramerate () const;
void setVideoFramerate (int framerate);
QVariantList getSupportedVideoDefinitions () const;
QVariantMap getVideoDefinition () const;
void setVideoDefinition (const QVariantMap &definition);
bool getVideoSupported () const;
bool getShowVideoCodecs () const;
void setShowVideoCodecs (bool status);
// Chat & calls. -------------------------------------------------------------
bool getAutoAnswerStatus () const;
void setAutoAnswerStatus (bool status);
bool getAutoAnswerVideoStatus () const;
void setAutoAnswerVideoStatus (bool status);
int getAutoAnswerDelay () const;
void setAutoAnswerDelay (int delay);
bool getShowTelKeypadAutomatically () const;
void setShowTelKeypadAutomatically (bool status);
bool getKeepCallsWindowInBackground () const;
void setKeepCallsWindowInBackground (bool status);
bool getOutgoingCallsEnabled () const;
void setOutgoingCallsEnabled (bool status);
bool getCallRecorderEnabled () const;
void setCallRecorderEnabled (bool status);
bool getAutomaticallyRecordCalls () const;
void setAutomaticallyRecordCalls (bool status);
bool getCallPauseEnabled () const;
void setCallPauseEnabled (bool status);
bool getMuteMicrophoneEnabled () const;
void setMuteMicrophoneEnabled (bool status);
bool getChatEnabled () const;
void setChatEnabled (bool status);
@ -329,298 +333,307 @@ public:
bool getWaitRegistrationForCall() const;
void setWaitRegistrationForCall(const bool& data);
bool getConferenceEnabled () const;
void setConferenceEnabled (bool status);
bool getChatNotificationSoundEnabled () const;
void setChatNotificationSoundEnabled (bool status);
QString getChatNotificationSoundPath () const;
void setChatNotificationSoundPath (const QString &path);
QString getFileTransferUrl () const;
void setFileTransferUrl (const QString &url);
bool getLimeIsSupported () const;
QVariantList getSupportedMediaEncryptions () const;
MediaEncryption getMediaEncryption () const;
void setMediaEncryption (MediaEncryption encryption);
bool mandatoryMediaEncryptionEnabled () const;
void enableMandatoryMediaEncryption(bool mandatory);
bool getLimeState () const;
void setLimeState (const bool& state);
bool getContactsEnabled () const;
void setContactsEnabled (bool status);
// Network. ------------------------------------------------------------------
bool getShowNetworkSettings () const;
void setShowNetworkSettings (bool status);
bool getUseSipInfoForDtmfs () const;
void setUseSipInfoForDtmfs (bool status);
bool getUseRfc2833ForDtmfs () const;
void setUseRfc2833ForDtmfs (bool status);
bool getIpv6Enabled () const;
void setIpv6Enabled (bool status);
int getDownloadBandwidth () const;
void setDownloadBandwidth (int bandwidth);
int getUploadBandwidth () const;
void setUploadBandwidth (int bandwidth);
bool getAdaptiveRateControlEnabled () const;
void setAdaptiveRateControlEnabled (bool status);
int getTcpPort () const;
void setTcpPort (int port);
int getUdpPort () const;
void setUdpPort (int port);
QList<int> getAudioPortRange () const;
void setAudioPortRange (const QList<int> &range);
QList<int> getVideoPortRange () const;
void setVideoPortRange (const QList<int> &range);
bool getIceEnabled () const;
void setIceEnabled (bool status);
bool getTurnEnabled () const;
void setTurnEnabled (bool status);
QString getStunServer () const;
void setStunServer (const QString &stunServer);
QString getTurnUser () const;
void setTurnUser (const QString &user);
QString getTurnPassword () const;
void setTurnPassword (const QString &password);
int getDscpSip () const;
void setDscpSip (int dscp);
int getDscpAudio () const;
void setDscpAudio (int dscp);
int getDscpVideo () const;
void setDscpVideo (int dscp);
bool getRlsUriEnabled () const;
void setRlsUriEnabled (bool status);
void configureRlsUri ();
void configureRlsUri (const std::shared_ptr<const linphone::ProxyConfig> &proxyConfig);
// UI. -----------------------------------------------------------------------
QFont getTextMessageFont() const;
void setTextMessageFont(const QFont& font);
int getTextMessageFontSize() const;
void setTextMessageFontSize(const int& size);
QString getSavedScreenshotsFolder () const;
void setSavedScreenshotsFolder (const QString &folder);
QString getSavedCallsFolder () const;
void setSavedCallsFolder (const QString &folder);
QString getDownloadFolder () const;
void setDownloadFolder (const QString &folder);
QString getRemoteProvisioning () const;
void setRemoteProvisioning (const QString &remoteProvisioning);
bool getExitOnClose () const;
void setExitOnClose (bool value);
Q_INVOKABLE bool getShowLocalSipAccount () const;
Q_INVOKABLE bool getShowStartChatButton () const;
Q_INVOKABLE bool getShowStartVideoCallButton () const;
// Advanced. ---------------------------------------------------------------------------
void accessAdvancedSettings();
QString getLogsFolder () const;
void setLogsFolder (const QString &folder);
QString getLogsUploadUrl () const;
void setLogsUploadUrl (const QString &url);
bool getLogsEnabled () const;
void setLogsEnabled (bool status);
QString getLogsEmail () const;
void setLogsEmail (const QString &email);
// ---------------------------------------------------------------------------
static QString getLogsFolder (const std::shared_ptr<linphone::Config> &config);
static bool getLogsEnabled (const std::shared_ptr<linphone::Config> &config);
// ---------------------------------------------------------------------------
bool getDeveloperSettingsEnabled () const;
void setDeveloperSettingsEnabled (bool status);
void handleCallCreated(const std::shared_ptr<linphone::Call> &call);
void handleCallStateChanged(const std::shared_ptr<linphone::Call> &call, linphone::Call::State state);
void handleEcCalibrationResult(linphone::EcCalibratorStatus status, int delayMs);
bool getIsInCall() const;
static const std::string UiSection;
static const std::string ContactsSection;
// ===========================================================================
// SIGNALS.
// ===========================================================================
signals:
// Assistant. ----------------------------------------------------------------
void createAppSipAccountEnabledChanged (bool status);
void fetchRemoteConfigurationEnabledChanged (bool status);
void useAppSipAccountEnabledChanged (bool status);
void useOtherSipAccountEnabledChanged (bool status);
void assistantSupportsPhoneNumbersChanged (bool status);
// Audio. --------------------------------------------------------------------
void captureGraphRunningChanged(bool running);
void playbackGainChanged(float gain);
void captureGainChanged(float gain);
void captureDevicesChanged (const QStringList &devices);
void playbackDevicesChanged (const QStringList &devices);
void captureDeviceChanged (const QString &device);
void playbackDeviceChanged (const QString &device);
void ringerDeviceChanged (const QString &device);
void ringPathChanged (const QString &path);
void echoCancellationEnabledChanged (bool status);
void echoCancellationStatus(int status, int msDelay);
void showAudioCodecsChanged (bool status);
// Video. --------------------------------------------------------------------
void videoDevicesChanged (const QStringList &devices);
void videoDeviceChanged (const QString &device);
void videoPresetChanged (const QString &preset);
void videoFramerateChanged (int framerate);
void videoDefinitionChanged (const QVariantMap &definition);
void showVideoCodecsChanged (bool status);
// Chat & calls. -------------------------------------------------------------
void autoAnswerStatusChanged (bool status);
void autoAnswerVideoStatusChanged (bool status);
void autoAnswerDelayChanged (int delay);
void showTelKeypadAutomaticallyChanged (bool status);
void keepCallsWindowInBackgroundChanged (bool status);
void outgoingCallsEnabledChanged (bool status);
void callRecorderEnabledChanged (bool status);
void automaticallyRecordCallsChanged (bool status);
void callPauseEnabledChanged (bool status);
void muteMicrophoneEnabledChanged (bool status);
void chatEnabledChanged (bool status);
void hideEmptyChatRoomsChanged (bool status);
void waitRegistrationForCallChanged (bool status);
void conferenceEnabledChanged (bool status);
void chatNotificationSoundEnabledChanged (bool status);
void chatNotificationSoundPathChanged (const QString &path);
void fileTransferUrlChanged (const QString &url);
void mediaEncryptionChanged (MediaEncryption encryption);
void limeStateChanged (bool state);
void contactsEnabledChanged (bool status);
// Network. ------------------------------------------------------------------
void showNetworkSettingsChanged (bool status);
void dtmfsProtocolChanged ();
void ipv6EnabledChanged (bool status);
void downloadBandWidthChanged (int bandwidth);
void uploadBandWidthChanged (int bandwidth);
bool adaptiveRateControlEnabledChanged (bool status);
void tcpPortChanged (int port);
void udpPortChanged (int port);
void audioPortRangeChanged (int a, int b);
void videoPortRangeChanged (int a, int b);
void iceEnabledChanged (bool status);
void turnEnabledChanged (bool status);
void stunServerChanged (const QString &server);
void turnUserChanged (const QString &user);
void turnPasswordChanged (const QString &password);
void dscpSipChanged (int dscp);
void dscpAudioChanged (int dscp);
void dscpVideoChanged (int dscp);
void rlsUriEnabledChanged (bool status);
// UI. -----------------------------------------------------------------------
void textMessageFontChanged(const QFont& font);
void textMessageFontSizeChanged(const int& size);
void savedScreenshotsFolderChanged (const QString &folder);
void savedCallsFolderChanged (const QString &folder);
void downloadFolderChanged (const QString &folder);
void remoteProvisioningChanged (const QString &remoteProvisioning);
void remoteProvisioningNotChanged (const QString &remoteProvisioning);
void exitOnCloseChanged (bool value);
// Advanced. -----------------------------------------------------------------
void logsFolderChanged (const QString &folder);
void logsUploadUrlChanged (const QString &url);
void logsEnabledChanged (bool status);
void logsEmailChanged (const QString &email);
void contactImporterChanged();
bool developerSettingsEnabledChanged (bool status);
bool isInCallChanged(bool);
private:
int mCurrentSettingsTab = 0;
MediastreamerUtils::SimpleCaptureGraph *mSimpleCaptureGraph = nullptr;
std::shared_ptr<linphone::Config> mConfig;
};

View file

@ -63,6 +63,5 @@ RowLayout {
backgroundColor: ChatStyle.entry.message.incoming.backgroundColor
color: ChatStyle.entry.message.incoming.text.color
pointSize: ChatStyle.entry.message.incoming.text.pointSize
}
}

View file

@ -84,6 +84,7 @@ Item {
TextEdit {
id: message
property string lastTextSelected : ''
property font customFont : SettingsModel.textMessageFont
anchors {
left: container.left
@ -94,6 +95,8 @@ Item {
padding: ChatStyle.entry.message.padding
readOnly: true
selectByMouse: true
font.family: customFont.family
font.pointSize: Units.dp * customFont.pointSize
text: Utils.encodeTextToQmlRichFormat($chatEntry.content, {
imagesHeight: ChatStyle.entry.message.images.height,
imagesWidth: ChatStyle.entry.message.images.width

View file

@ -24,7 +24,6 @@ Item {
}
backgroundColor: ChatStyle.entry.message.outgoing.backgroundColor
color: ChatStyle.entry.message.outgoing.text.color
pointSize: ChatStyle.entry.message.outgoing.text.pointSize
width: parent.width
Row {

View file

@ -116,7 +116,6 @@ QtObject {
property QtObject text: QtObject {
property color color: ColorsList.add("Chat_incoming_text", "d").color
property int pointSize: Units.dp * 10
}
}
@ -128,7 +127,6 @@ QtObject {
property QtObject text: QtObject {
property color color: ColorsList.add("Chat_outgoing_text", "d").color
property int pointSize: Units.dp * 10
}
}
}

View file

@ -1,162 +1,208 @@
import QtQuick 2.7
import QtQuick.Dialogs 1.3
import QtQuick.Layouts 1.3
import Common 1.0
import Linphone 1.0
import Utils 1.0
import UtilsCpp 1.0
import App.Styles 1.0
import Linphone.Styles 1.0
import Common.Styles 1.0
import 'SettingsUi.js' as Logic
// =============================================================================
TabContainer {
Column {
spacing: SettingsWindowStyle.forms.spacing
width: parent.width
// -------------------------------------------------------------------------
// Languages.
// -------------------------------------------------------------------------
Form {
title: qsTr('languagesTitle')
width: parent.width
FormLine {
FormGroup {
label: qsTr('languagesLabel')
ComboBox {
textRole: 'key'
Component.onCompleted: {
var locales = Logic.getAvailableLocales()
model = locales
var locale = App.configLocale
if (!locale.length) {
currentIndex = 0
return
}
var value = Qt.locale(locale).name
currentIndex = Number(Utils.findIndex(locales, function (locale) {
return locale.value === value
}))
}
onActivated: Logic.setLocale(model[index].value)
}
}
}
}
// -------------------------------------------------------------------------
// Paths.
// -------------------------------------------------------------------------
Form {
title: qsTr('pathsTitle')
visible: SettingsModel.videoSupported ||
SettingsModel.callRecorderEnabled ||
SettingsModel.chatEnabled ||
SettingsModel.developerSettingsEnabled
width: parent.width
FormLine {
visible: SettingsModel.videoSupported
FormGroup {
label: qsTr('savedScreenshotsLabel')
FileChooserButton {
selectedFile: SettingsModel.savedScreenshotsFolder
selectFolder: true
onAccepted: SettingsModel.savedScreenshotsFolder = selectedFile
}
}
}
FormLine {
visible: SettingsModel.callRecorderEnabled || SettingsModel.developerSettingsEnabled
FormGroup {
label: qsTr('savedCallsLabel')
FileChooserButton {
selectedFile: SettingsModel.savedCallsFolder
selectFolder: true
onAccepted: SettingsModel.savedCallsFolder = selectedFile
}
}
}
FormLine {
visible: SettingsModel.chatEnabled || SettingsModel.developerSettingsEnabled
FormGroup {
label: qsTr('downloadLabel')
FileChooserButton {
selectedFile: SettingsModel.downloadFolder
selectFolder: true
onAccepted: SettingsModel.downloadFolder = selectedFile
}
}
}
}
// -------------------------------------------------------------------------
// Data.
// -------------------------------------------------------------------------
Form {
title: qsTr('dataTitle')
visible: SettingsModel.contactsEnabled || SettingsModel.developerSettingsEnabled
width: parent.width
}
TextButtonB {
anchors.right: parent.right
text: qsTr('cleanAvatars')
visible: SettingsModel.contactsEnabled || SettingsModel.developerSettingsEnabled
onClicked: Logic.cleanAvatars()
}
// -------------------------------------------------------------------------
// Other.
// -------------------------------------------------------------------------
Form {
title: qsTr('otherTitle')
width: parent.width
FormLine {
FormGroup {
label: qsTr('exitOnCloseLabel')
Switch {
checked: SettingsModel.exitOnClose
onClicked: SettingsModel.exitOnClose = !checked
}
}
FormGroup {
label: qsTr('autoStartLabel')
Switch {
checked: App.autoStart
onClicked: App.autoStart = !checked
}
}
}
}
}
Column {
spacing: SettingsWindowStyle.forms.spacing
width: parent.width
// -------------------------------------------------------------------------
// Languages.
// -------------------------------------------------------------------------
Form {
title: qsTr('languagesTitle')
width: parent.width
FormLine {
FormGroup {
label: qsTr('languagesLabel')
ComboBox {
textRole: 'key'
Component.onCompleted: {
var locales = Logic.getAvailableLocales()
model = locales
var locale = App.configLocale
if (!locale.length) {
currentIndex = 0
return
}
var value = Qt.locale(locale).name
currentIndex = Number(Utils.findIndex(locales, function (locale) {
return locale.value === value
}))
}
onActivated: Logic.setLocale(model[index].value)
}
}
}
Form {
//: 'Fonts' : title of fonts section in settings
title: qsTr('fontsTitle')
width: parent.width
FormLine {
FormGroup {
//: 'Text Messages' : Label for changing text message fonts
label: qsTr('fontsTextChange')
RowLayout{
ActionButton {
icon: 'options'
iconSize: 25
onClicked: fontDialog.visible = true
Layout.preferredWidth: 25
FontDialog {
id: fontDialog
//: 'Select a new font' : Popup title for choosing new fonts
title: qsTr('fontsPopupTitle')
visible:false
font: SettingsModel.textMessageFont
onAccepted: {
SettingsModel.textMessageFont = fontDialog.font
}
onRejected: {
}
}
}
Text{
Layout.leftMargin: 18
Layout.fillWidth: true
text: SettingsModel.textMessageFont.family +", "+SettingsModel.textMessageFont.pointSize
font {
bold: true
pointSize: FormTableStyle.entry.text.pointSize
}
}
}
}
}
}
}
// -------------------------------------------------------------------------
// Paths.
// -------------------------------------------------------------------------
Form {
title: qsTr('pathsTitle')
visible: SettingsModel.videoSupported ||
SettingsModel.callRecorderEnabled ||
SettingsModel.chatEnabled ||
SettingsModel.developerSettingsEnabled
width: parent.width
FormLine {
visible: SettingsModel.videoSupported
FormGroup {
label: qsTr('savedScreenshotsLabel')
FileChooserButton {
selectedFile: SettingsModel.savedScreenshotsFolder
selectFolder: true
onAccepted: SettingsModel.savedScreenshotsFolder = selectedFile
}
}
}
FormLine {
visible: SettingsModel.callRecorderEnabled || SettingsModel.developerSettingsEnabled
FormGroup {
label: qsTr('savedCallsLabel')
FileChooserButton {
selectedFile: SettingsModel.savedCallsFolder
selectFolder: true
onAccepted: SettingsModel.savedCallsFolder = selectedFile
}
}
}
FormLine {
visible: SettingsModel.chatEnabled || SettingsModel.developerSettingsEnabled
FormGroup {
label: qsTr('downloadLabel')
FileChooserButton {
selectedFile: SettingsModel.downloadFolder
selectFolder: true
onAccepted: SettingsModel.downloadFolder = selectedFile
}
}
}
}
// -------------------------------------------------------------------------
// Data.
// -------------------------------------------------------------------------
Form {
title: qsTr('dataTitle')
visible: SettingsModel.contactsEnabled || SettingsModel.developerSettingsEnabled
width: parent.width
}
TextButtonB {
anchors.right: parent.right
text: qsTr('cleanAvatars')
visible: SettingsModel.contactsEnabled || SettingsModel.developerSettingsEnabled
onClicked: Logic.cleanAvatars()
}
// -------------------------------------------------------------------------
// Other.
// -------------------------------------------------------------------------
Form {
title: qsTr('otherTitle')
width: parent.width
FormLine {
FormGroup {
label: qsTr('exitOnCloseLabel')
Switch {
checked: SettingsModel.exitOnClose
onClicked: SettingsModel.exitOnClose = !checked
}
}
FormGroup {
label: qsTr('autoStartLabel')
Switch {
checked: App.autoStart
onClicked: App.autoStart = !checked
}
}
}
}
}
}