Call Settings UI Update

This commit is contained in:
Christophe Deschamps 2024-06-18 16:18:16 +02:00
parent 3d5638055f
commit 7b7f0e6ccc
10 changed files with 277 additions and 247 deletions

View file

@ -293,10 +293,6 @@ float Settings::getPlaybackGain() const {
return mPlaybackGain; return mPlaybackGain;
} }
QString Settings::getRingerDevice() const {
return mRingerDevice;
}
QString Settings::getCaptureDevice() const { QString Settings::getCaptureDevice() const {
return mCaptureDevice; return mCaptureDevice;
} }

View file

@ -54,7 +54,6 @@ class Settings : public QObject, public AbstractObject {
Q_PROPERTY(QString captureDevice READ getCaptureDevice WRITE lSetCaptureDevice NOTIFY captureDeviceChanged) Q_PROPERTY(QString captureDevice READ getCaptureDevice WRITE lSetCaptureDevice NOTIFY captureDeviceChanged)
Q_PROPERTY(QString playbackDevice READ getPlaybackDevice WRITE lSetPlaybackDevice NOTIFY playbackDeviceChanged) Q_PROPERTY(QString playbackDevice READ getPlaybackDevice WRITE lSetPlaybackDevice NOTIFY playbackDeviceChanged)
Q_PROPERTY(QString ringerDevice READ getRingerDevice WRITE setRingerDevice NOTIFY ringerDeviceChanged)
Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged) Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged)
Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE lSetVideoDevice NOTIFY videoDeviceChanged) Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE lSetVideoDevice NOTIFY videoDeviceChanged)
@ -110,8 +109,6 @@ public:
QString getPlaybackDevice() const; QString getPlaybackDevice() const;
QString getRingerDevice() const;
QString getVideoDevice() const { QString getVideoDevice() const {
return mVideoDevice; return mVideoDevice;
} }
@ -164,7 +161,6 @@ signals:
void lSetPlaybackDevice(const QString &device); void lSetPlaybackDevice(const QString &device);
void playbackDeviceChanged(const QString &device); void playbackDeviceChanged(const QString &device);
void ringerDeviceChanged(const QString &device);
void lSetVideoDevice(const QString &device); void lSetVideoDevice(const QString &device);
void videoDeviceChanged(); void videoDeviceChanged();
@ -172,7 +168,6 @@ signals:
void lSetCaptureGain(float gain); void lSetCaptureGain(float gain);
void lSetPlaybackGain(float gain); void lSetPlaybackGain(float gain);
void setRingerDevice(const QString &device);
void echoCancellationCalibrationChanged(); void echoCancellationCalibrationChanged();
void micVolumeChanged(float volume); void micVolumeChanged(float volume);
@ -209,7 +204,6 @@ private:
QStringList mPlaybackDevices; QStringList mPlaybackDevices;
QString mCaptureDevice; QString mCaptureDevice;
QString mPlaybackDevice; QString mPlaybackDevice;
QString mRingerDevice;
// Video // Video
QStringList mVideoDevices; QStringList mVideoDevices;

View file

@ -139,7 +139,6 @@ void SettingsModel::accessCallSettings() {
emit playbackDevicesChanged(getPlaybackDevices()); emit playbackDevicesChanged(getPlaybackDevices());
emit playbackDeviceChanged(getPlaybackDevice()); emit playbackDeviceChanged(getPlaybackDevice());
emit captureDeviceChanged(getCaptureDevice()); emit captureDeviceChanged(getCaptureDevice());
emit ringerDeviceChanged(getRingerDevice());
emit playbackGainChanged(getPlaybackGain()); emit playbackGainChanged(getPlaybackGain());
emit captureGainChanged(getCaptureGain()); emit captureGainChanged(getCaptureGain());
@ -278,22 +277,11 @@ void SettingsModel::setPlaybackDevice(const QString &device) {
CoreModel::getInstance()->getCore()->setPlaybackDevice(devId); CoreModel::getInstance()->getCore()->setPlaybackDevice(devId);
CoreModel::getInstance()->getCore()->setOutputAudioDevice(*audioDevice); CoreModel::getInstance()->getCore()->setOutputAudioDevice(*audioDevice);
CoreModel::getInstance()->getCore()->setRingerDevice(devId);
emit playbackDeviceChanged(device); emit playbackDeviceChanged(device);
resetCaptureGraph(); resetCaptureGraph();
} else qWarning() << "Cannot set Playback device. The ID cannot be matched with an existant device : " << device; }else
} qWarning() << "Cannot set Playback device. The ID cannot be matched with an existant device : " << device;
// -----------------------------------------------------------------------------
QString SettingsModel::getRingerDevice() const {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
return Utils::coreStringToAppString(CoreModel::getInstance()->getCore()->getRingerDevice());
}
void SettingsModel::setRingerDevice(const QString &device) {
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
CoreModel::getInstance()->getCore()->setRingerDevice(Utils::appStringToCoreString(device));
emit ringerDeviceChanged(device);
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

View file

@ -88,9 +88,6 @@ public:
QString getPlaybackDevice () const; QString getPlaybackDevice () const;
void setPlaybackDevice (const QString &device); void setPlaybackDevice (const QString &device);
QString getRingerDevice () const;
void setRingerDevice (const QString &device);
QString getRingPath () const; QString getRingPath () const;
void setRingPath (const QString &path); void setRingPath (const QString &path);
@ -143,7 +140,6 @@ signals:
void captureDeviceChanged (const QString &device); void captureDeviceChanged (const QString &device);
void playbackDeviceChanged (const QString &device); void playbackDeviceChanged (const QString &device);
void ringerDeviceChanged (const QString &device);
void ringPathChanged (const QString &path); void ringPathChanged (const QString &path);

View file

@ -6,192 +6,245 @@ import Linphone
import SettingsCpp 1.0 import SettingsCpp 1.0
GenericSettingsLayout { GenericSettingsLayout {
Layout.fillWidth: true component: settings
Layout.fillHeight: true width: parent.width
Component { Component {
id: settings id: settings
ColumnLayout { ColumnLayout {
spacing: 40 * DefaultStyle.dp width: parent.width
SwitchSetting { RowLayout {
titleText: qsTr("Activer la vidéo") ColumnLayout {
propertyName: "videoEnabled" Layout.fillWidth: true
} Item {
SwitchSetting { Layout.preferredWidth: 341 * DefaultStyle.dp
titleText: qsTr("Utiliser l'annulateur d'écho")
subTitleText: qsTr("Évite que de l'écho soit entendu par votre correspondant")
propertyName: "echoCancellationEnabled"
}
SwitchSetting {
titleText: qsTr("Démarrer l'enregistrement des appels automatiquement")
propertyName: "automaticallyRecordCallsEnabled"
}
ColumnLayout {
Layout.fillWidth: true
RowLayout {
EffectImage {
imageSource: AppIcons.videoCamera
colorizationColor: DefaultStyle.main1_500_main
Layout.preferredWidth: 24 * DefaultStyle.dp
Layout.preferredHeight: 24 * DefaultStyle.dp
imageWidth: 24 * DefaultStyle.dp
imageHeight: 24 * DefaultStyle.dp
} }
Text { }
text: qsTr("Caméra") ColumnLayout {
Layout.rightMargin: 25 * DefaultStyle.dp
Layout.topMargin: 36 * DefaultStyle.dp
Layout.leftMargin: 64 * DefaultStyle.dp
Layout.fillWidth: true
spacing: 40 * DefaultStyle.dp
SwitchSetting {
titleText: qsTr("Annulateur d'écho")
subTitleText: qsTr("Évite que de l'écho soit entendu par votre correspondant")
propertyName: "echoCancellationEnabled"
}
SwitchSetting {
Layout.fillWidth: true Layout.fillWidth: true
} titleText: qsTr("Activer lenregistrement automatique des appels")
} subTitleText: qsTr("Enregistrer tous les appels par défaut")
ComboSetting { propertyName: "automaticallyRecordCallsEnabled"
Layout.fillWidth: true
Layout.preferredWidth: parent.width
model: SettingsCpp.videoDevices
propertyName: "videoDevice"
}
}
ColumnLayout {
Layout.fillWidth: true
RowLayout {
Layout.fillWidth: true
EffectImage {
imageSource: AppIcons.speaker
colorizationColor: DefaultStyle.main1_500_main
Layout.preferredWidth: 24 * DefaultStyle.dp
Layout.preferredHeight: 24 * DefaultStyle.dp
imageWidth: 24 * DefaultStyle.dp
imageHeight: 24 * DefaultStyle.dp
}
Text {
text: qsTr("Haut-parleurs")
Layout.fillWidth: true
}
}
ComboSetting {
Layout.fillWidth: true
Layout.preferredWidth: parent.width
model: SettingsCpp.playbackDevices
propertyName: "playbackDevice"
}
Slider {
id: speakerVolume
Layout.fillWidth: true
from: 0.0
to: 1.0
value: SettingsCpp.playbackGain
onMoved: {
SettingsCpp.setPlaybackGain(value)
} }
} }
} }
ColumnLayout { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
RowLayout { Layout.preferredHeight: 1 * DefaultStyle.dp
Layout.fillWidth: true color: DefaultStyle.main2_500main
EffectImage { Layout.topMargin: 38 * DefaultStyle.dp
imageSource: AppIcons.speaker Layout.bottomMargin: 16 * DefaultStyle.dp
colorizationColor: DefaultStyle.main1_500_main
Layout.preferredWidth: 24 * DefaultStyle.dp
Layout.preferredHeight: 24 * DefaultStyle.dp
imageWidth: 24 * DefaultStyle.dp
imageHeight: 24 * DefaultStyle.dp
}
Text {
text: qsTr("Sonnerie")
Layout.fillWidth: true
}
}
ComboSetting {
Layout.fillWidth: true
Layout.preferredWidth: parent.width
model: SettingsCpp.playbackDevices
propertyName: "ringerDevice"
}
} }
ColumnLayout { RowLayout {
Layout.fillWidth: true ColumnLayout {
RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
EffectImage { ColumnLayout {
imageSource: AppIcons.microphone Layout.preferredWidth: 341 * DefaultStyle.dp
colorizationColor: DefaultStyle.main1_500_main Text {
Layout.preferredWidth: 24 * DefaultStyle.dp text: qsTr("Périphériques")
Layout.preferredHeight: 24 * DefaultStyle.dp font: Typography.p2
imageWidth: 24 * DefaultStyle.dp wrapMode: Text.WordWrap
imageHeight: 24 * DefaultStyle.dp color: DefaultStyle.main2_600
} Layout.fillWidth: true
Text { }
text: qsTr("Microphone") Text {
Layout.fillWidth: true text: qsTr("Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture.")
} font: Typography.p1
} wrapMode: Text.WordWrap
ComboSetting { color: DefaultStyle.main2_600
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredWidth: parent.width
model: SettingsCpp.captureDevices
propertyName: "captureDevice"
}
Slider {
id: microVolume
Layout.fillWidth: true
from: 0.0
to: 1.0
value: SettingsCpp.captureGain
onMoved: {
SettingsCpp.setCaptureGain(value)
}
}
Timer {
id: audioTestSliderTimer
running: false
interval: 50
repeat: true
onTriggered: SettingsCpp.updateMicVolume()
}
Slider {
id: audioTestSlider
visible: !SettingsCpp.isInCall
Layout.fillWidth: true
enabled: false
Layout.preferredHeight: 10 * DefaultStyle.dp
background: Rectangle {
x: audioTestSlider.leftPadding
y: audioTestSlider.topPadding + audioTestSlider.availableHeight / 2 - height / 2
implicitWidth: 200 * DefaultStyle.dp
implicitHeight: 10 * DefaultStyle.dp
width: audioTestSlider.availableWidth
height: implicitHeight
radius: 2 * DefaultStyle.dp
color: DefaultStyle.grey_850
Rectangle {
width: audioTestSlider.visualPosition * parent.width
height: parent.height
gradient: Gradient {
orientation: Gradient.Horizontal
GradientStop { position: 0.0; color: DefaultStyle.vue_meter_light_green }
GradientStop { position: 1.0; color: DefaultStyle.vue_meter_dark_green }
}
radius: 2 * DefaultStyle.dp
} }
} }
handle: Item {visible: false} Item {
Layout.fillHeight: true
}
}
ColumnLayout {
Layout.fillWidth: true
spacing: 20 * DefaultStyle.dp
Layout.rightMargin: 44 * DefaultStyle.dp
Layout.topMargin: 20 * DefaultStyle.dp
Layout.leftMargin: 64 * DefaultStyle.dp
ColumnLayout {
Layout.fillWidth: true
spacing: 0
RowLayout {
Layout.fillWidth: true
EffectImage {
imageSource: AppIcons.speaker
colorizationColor: DefaultStyle.main1_500_main
Layout.preferredWidth: 24 * DefaultStyle.dp
Layout.preferredHeight: 24 * DefaultStyle.dp
imageWidth: 24 * DefaultStyle.dp
imageHeight: 24 * DefaultStyle.dp
}
Text {
text: qsTr("Audio")
Layout.leftMargin: 9
font: Typography.p2l
color: DefaultStyle.main2_600
Layout.fillWidth: true
}
}
ComboSetting {
Layout.fillWidth: true
Layout.topMargin: 12 * DefaultStyle.dp
Layout.preferredWidth: parent.width
model: SettingsCpp.playbackDevices
propertyName: "playbackDevice"
}
Slider {
id: speakerVolume
Layout.fillWidth: true
Layout.topMargin: 22 * DefaultStyle.dp
from: 0.0
to: 1.0
value: SettingsCpp.playbackGain
onMoved: {
SettingsCpp.lSetPlaybackGain(value)
}
}
Item {
Layout.fillHeight: true
}
}
ColumnLayout {
Layout.fillWidth: true
spacing: 0
RowLayout {
Layout.fillWidth: true
EffectImage {
imageSource: AppIcons.microphone
colorizationColor: DefaultStyle.main1_500_main
Layout.preferredWidth: 24 * DefaultStyle.dp
Layout.preferredHeight: 24 * DefaultStyle.dp
imageWidth: 24 * DefaultStyle.dp
imageHeight: 24 * DefaultStyle.dp
}
Text {
text: qsTr("Microphone")
font: Typography.p2l
color: DefaultStyle.main2_600
Layout.fillWidth: true
Layout.leftMargin: 9
}
}
ComboSetting {
Layout.fillWidth: true
Layout.topMargin: 12 * DefaultStyle.dp
Layout.bottomMargin: 22 * DefaultStyle.dp
Layout.preferredWidth: parent.width
model: SettingsCpp.captureDevices
propertyName: "captureDevice"
}
Slider {
id: microVolume
Layout.fillWidth: true
Layout.bottomMargin: 19 * DefaultStyle.dp
from: 0.0
to: 1.0
value: SettingsCpp.captureGain
onMoved: {
SettingsCpp.lSetCaptureGain(value)
}
}
Timer {
id: audioTestSliderTimer
running: false
interval: 50
repeat: true
onTriggered: SettingsCpp.updateMicVolume()
}
Slider {
id: audioTestSlider
visible: !SettingsCpp.isInCall
Layout.fillWidth: true
enabled: false
Layout.preferredHeight: 10 * DefaultStyle.dp
background: Rectangle {
x: audioTestSlider.leftPadding
y: audioTestSlider.topPadding + audioTestSlider.availableHeight / 2 - height / 2
implicitWidth: 200 * DefaultStyle.dp
implicitHeight: 10 * DefaultStyle.dp
width: audioTestSlider.availableWidth
height: implicitHeight
radius: 2 * DefaultStyle.dp
color: DefaultStyle.grey_850
Rectangle {
width: audioTestSlider.visualPosition * parent.width
height: parent.height
gradient: Gradient {
orientation: Gradient.Horizontal
GradientStop { position: 0.0; color: DefaultStyle.vue_meter_light_green }
GradientStop { position: 1.0; color: DefaultStyle.vue_meter_dark_green }
}
radius: 2 * DefaultStyle.dp
}
}
handle: Item {visible: false}
}
Item {
Layout.fillHeight: true
}
}
ColumnLayout {
Layout.fillWidth: true
spacing: 0
RowLayout {
EffectImage {
imageSource: AppIcons.videoCamera
colorizationColor: DefaultStyle.main1_500_main
Layout.preferredWidth: 24 * DefaultStyle.dp
Layout.preferredHeight: 24 * DefaultStyle.dp
imageWidth: 24 * DefaultStyle.dp
imageHeight: 24 * DefaultStyle.dp
}
Text {
text: qsTr("Caméra")
font: Typography.p2l
color: DefaultStyle.main2_600
Layout.fillWidth: true
Layout.leftMargin: 9
}
}
ComboSetting {
Layout.fillWidth: true
Layout.topMargin: 12 * DefaultStyle.dp
Layout.preferredWidth: parent.width
model: SettingsCpp.videoDevices
propertyName: "videoDevice"
}
Item {
Layout.fillHeight: true
}
}
Connections {
target: SettingsCpp
onMicVolumeChanged: volume => audioTestSlider.value = volume
}
Component.onCompleted: {
SettingsCpp.accessCallSettings()
audioTestSliderTimer.running = true
}
Component.onDestruction: {
audioTestSliderTimer.running = false
SettingsCpp.closeCallSettings()
}
} }
} }
Connections {
target: SettingsCpp
onMicVolumeChanged: {
audioTestSlider.value = volume
}
}
Component.onCompleted: {
SettingsCpp.accessCallSettings()
audioTestSliderTimer.running = true
}
Component.onDestruction: {
audioTestSliderTimer.running = false
SettingsCpp.closeCallSettings()
}
} }
} }
component: settings
} }

View file

@ -7,42 +7,36 @@ import Linphone
Rectangle { Rectangle {
id: mainItem id: mainItem
Layout.fillWidth: true anchors.fill: parent
Layout.fillHeight: true
color: DefaultStyle.grey_0
property string titleText property string titleText
property var component property var component
property int horizontalMargin: 17 * DefaultStyle.dp color: 'white'
property int verticalMargin: 21 * DefaultStyle.dp
Rectangle {
width: parent.width - 2 * 45 * DefaultStyle.dp
height: parent.height
anchors.centerIn: parent
Control.ScrollView {
anchors.fill: parent
anchors.leftMargin: 55 * DefaultStyle.dp
anchors.topMargin: 85 * DefaultStyle.dp
ColumnLayout { ColumnLayout {
width: parent.width width: parent.width
spacing: 10 * DefaultStyle.dp spacing: 10 * DefaultStyle.dp
Text { Text {
text: titleText text: titleText
font: Typography.h3m font: Typography.h3
Layout.fillWidth: true Layout.fillWidth: true
Layout.leftMargin: 10 * DefaultStyle.dp Layout.topMargin: 20 * DefaultStyle.dp
color: DefaultStyle.main2_600
} }
Rectangle { Rectangle {
Layout.preferredWidth: loader.implicitWidth + 2 * mainItem.horizontalMargin Layout.fillWidth: true
Layout.preferredHeight: loader.implicitHeight + 2 * mainItem.verticalMargin Layout.topMargin: 16 * DefaultStyle.dp
color: DefaultStyle.grey_100 height: 1 * DefaultStyle.dp
radius: 15 * DefaultStyle.dp color: DefaultStyle.main2_500main
Loader { }
id:loader Loader {
anchors.centerIn:parent id:loader
anchors.topMargin: mainItem.verticalMargin Layout.fillWidth: true
anchors.bottomMargin: mainItem.verticalMargin sourceComponent: mainItem.component
anchors.leftMargin: mainItem.horizontalMargin
anchors.rightMargin: mainItem.horizontalMargin
sourceComponent: mainItem.component
}
} }
Item { Item {
Layout.fillHeight: true Layout.fillHeight: true
@ -51,5 +45,3 @@ Rectangle {
} }
} }

View file

@ -6,11 +6,9 @@ import QtQuick.Controls as Control
import Linphone import Linphone
GenericSettingsLayout { GenericSettingsLayout {
Layout.fillWidth: true
Layout.fillHeight: true
Component { Component {
id: settings id: settings
ColumnLayout { Column {
spacing: 40 * DefaultStyle.dp spacing: 40 * DefaultStyle.dp
SwitchSetting { SwitchSetting {
titleText: qsTr("Chiffrer tous les fichiers") titleText: qsTr("Chiffrer tous les fichiers")
@ -18,7 +16,6 @@ GenericSettingsLayout {
propertyName: "vfsEnabled" propertyName: "vfsEnabled"
} }
} }
} }
component: settings component: settings
} }

View file

@ -11,21 +11,21 @@ RowLayout {
property string propertyName property string propertyName
property bool enabled: true property bool enabled: true
spacing : 20 * DefaultStyle.dp spacing : 20 * DefaultStyle.dp
property int textWidth: 286 * DefaultStyle.dp
ColumnLayout { ColumnLayout {
Layout.preferredWidth: textWidth
Text { Text {
text: titleText text: titleText
font: Typography.p2 font: Typography.p2
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
Layout.maximumWidth: textWidth color: DefaultStyle.main2_600
Layout.fillWidth: true
} }
Text { Text {
text: subTitleText text: subTitleText
font: Typography.p1 font: Typography.p1
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
Layout.maximumWidth: textWidth
visible: subTitleText.length > 0 visible: subTitleText.length > 0
color: DefaultStyle.main2_600
Layout.fillWidth: true
} }
} }
SwitchButton { SwitchButton {

View file

@ -17,14 +17,14 @@ AbstractMainPage {
} }
property var settingsFamilies: [ property var settingsFamilies: [
{title: "Sécurité", layout: "SecuritySettingsLayout"}, {title: qsTr("Appels"), layout: "CallSettingsLayout"},
{title: "Appels", layout: "CallSettingsLayout"}, //{title: qsTr("Sécurité"), layout: "SecuritySettingsLayout"},
{title: "Conversations", layout: "ChatSettingsLayout"}, {title: qsTr("Conversations"), layout: "ChatSettingsLayout"},
{title: "Contacts", layout: "ContactSettingsLayout"}, {title: qsTr("Contacts"), layout: "ContactSettingsLayout"},
{title: "Réunions", layout: "MeetingsSettingsLayout"}, {title: qsTr("Réunions"), layout: "MeetingsSettingsLayout"},
{title: "Réseau", layout: "NetworkSettingsLayout"}, {title: qsTr("Affichage"), layout: "DisplaySettingsLayout"},
{title: "Affichage", layout: "DisplaySettingsLayout"}, {title: qsTr("Réseau"), layout: "NetworkSettingsLayout"},
{title: "Paramètres avancés", layout: "AdvancedSettingsLayout"} {title: qsTr("Paramètres avancés"), layout: "AdvancedSettingsLayout"}
] ]
leftPanelContent: ColumnLayout { leftPanelContent: ColumnLayout {
@ -53,7 +53,7 @@ AbstractMainPage {
Text { Text {
text: qsTr("Paramètres") text: qsTr("Paramètres")
color: DefaultStyle.main2_700 color: DefaultStyle.main2_700
font: Typography.h2 font: Typography.h3
} }
Item { Item {
Layout.fillWidth: true Layout.fillWidth: true
@ -70,7 +70,7 @@ AbstractMainPage {
property int selectedIndex: 0 property int selectedIndex: 0
delegate: SettingsFamily { delegate: SettingsFamily {
titleText:qsTr(modelData.title) titleText: modelData.title
isSelected: settingsFamiliesList.selectedIndex == index isSelected: settingsFamiliesList.selectedIndex == index
onSelected: { onSelected: {
settingsFamiliesList.selectedIndex = index settingsFamiliesList.selectedIndex = index

View file

@ -10,13 +10,20 @@ QtObject {
weight: 800 * DefaultStyle.dp weight: 800 * DefaultStyle.dp
}) })
// Title/H3M - Bloc title // Title/H3M - Bloc title medium
property font h3m: Qt.font( { property font h3m: Qt.font( {
family: DefaultStyle.defaultFont, family: DefaultStyle.defaultFont,
pixelSize: 16 * DefaultStyle.dp, pixelSize: 16 * DefaultStyle.dp,
weight: 800 * DefaultStyle.dp weight: 800 * DefaultStyle.dp
}) })
// Title/H3 - Bloc title
property font h3: Qt.font( {
family: DefaultStyle.defaultFont,
pixelSize: 22 * DefaultStyle.dp,
weight: 800 * DefaultStyle.dp
})
// Title/H2 - Large bloc title // Title/H2 - Large bloc title
property font h2: Qt.font( { property font h2: Qt.font( {
family: DefaultStyle.defaultFont, family: DefaultStyle.defaultFont,
@ -31,6 +38,13 @@ QtObject {
weight: 700 * DefaultStyle.dp weight: 700 * DefaultStyle.dp
}) })
// Text/P2 - Large Bold, reduced paratraph text
property font p2l: Qt.font( {
family: DefaultStyle.defaultFont,
pixelSize: 14 * DefaultStyle.dp,
weight: 700 * DefaultStyle.dp
})
// Text/P1 - Paratraph text // Text/P1 - Paratraph text
property font p1: Qt.font( { property font p1: Qt.font( {
family: DefaultStyle.defaultFont, family: DefaultStyle.defaultFont,