mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-04-17 20:08:28 +00:00
UI fixes:
fix initials function fix translation and text weight warnings fix meeting detail layout fix crash when adding invalid participant to conference cancel button on conference update loading popup
This commit is contained in:
parent
1d2eefe729
commit
a9c7e1f8cc
6 changed files with 266 additions and 256 deletions
|
|
@ -181,7 +181,6 @@ win64-ninja-vs2022-scheduled-windows:
|
||||||
rules:
|
rules:
|
||||||
- !reference [.rules-merge-request-manual, rules]
|
- !reference [.rules-merge-request-manual, rules]
|
||||||
- if: $NIGHTLY_RELEASE
|
- if: $NIGHTLY_RELEASE
|
||||||
- if: $NIGHTLY_MASTER
|
|
||||||
- if: $PACKAGE_WINDOWS
|
- if: $PACKAGE_WINDOWS
|
||||||
variables:
|
variables:
|
||||||
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=OFF -DENABLE_BUGSPLAT_SYMBOLS_UPLOAD=ON -DBUGSPLAT_CLIENT_ID=$BUGSPLAT_CLIENT_ID -DBUGSPLAT_CLIENT_SECRET=$BUGSPLAT_CLIENT_SECRET -DBUGSPLAT_DATABASE=$BUGSPLAT_DATABASE
|
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=OFF -DENABLE_BUGSPLAT_SYMBOLS_UPLOAD=ON -DBUGSPLAT_CLIENT_ID=$BUGSPLAT_CLIENT_ID -DBUGSPLAT_CLIENT_SECRET=$BUGSPLAT_CLIENT_SECRET -DBUGSPLAT_DATABASE=$BUGSPLAT_DATABASE
|
||||||
|
|
|
||||||
|
|
@ -551,9 +551,11 @@ void ConferenceInfoCore::writeIntoModel(std::shared_ptr<ConferenceInfoModel> mod
|
||||||
auto map = p.toMap();
|
auto map = p.toMap();
|
||||||
auto address = map["address"].toString();
|
auto address = map["address"].toString();
|
||||||
auto linAddr = ToolModel::interpretUrl(address);
|
auto linAddr = ToolModel::interpretUrl(address);
|
||||||
|
if (linAddr) {
|
||||||
auto infos = linphone::Factory::get()->createParticipantInfo(linAddr);
|
auto infos = linphone::Factory::get()->createParticipantInfo(linAddr);
|
||||||
participantInfos.push_back(infos);
|
participantInfos.push_back(infos);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
model->setParticipantInfos(participantInfos);
|
model->setParticipantInfos(participantInfos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,12 +141,13 @@ QString Utils::getInitials(const QString &username, int letterCount) {
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
|
||||||
return Utils::encodeEmojiToQmlRichFormat(QString::fromStdU32String(char32));
|
return Utils::encodeEmojiToQmlRichFormat(QString::fromStdU32String(char32));
|
||||||
#else
|
#else
|
||||||
QString::fromStdU32String(char32);
|
return QString::fromStdU32String(char32);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList initials;
|
QStringList initials;
|
||||||
initials << QString::fromStdU32String(char32);
|
initials << QString::fromStdU32String(char32);
|
||||||
|
if (initials.count() < letterCount) {
|
||||||
for (int i = 1; i < words.size() && initials.size() <= 1; ++i) {
|
for (int i = 1; i < words.size() && initials.size() <= 1; ++i) {
|
||||||
if (words[i].size() > 0) {
|
if (words[i].size() > 0) {
|
||||||
str32 = words[i].toStdU32String();
|
str32 = words[i].toStdU32String();
|
||||||
|
|
@ -159,6 +160,7 @@ QString Utils::getInitials(const QString &username, int letterCount) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return QLocale().toUpper(initials.join(""));
|
return QLocale().toUpper(initials.join(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ Button {
|
||||||
text: mainItem.text
|
text: mainItem.text
|
||||||
font {
|
font {
|
||||||
pixelSize: mainItem.textSize
|
pixelSize: mainItem.textSize
|
||||||
weight: mainItem.textWeight * 2
|
weight: mainItem.textWeight
|
||||||
family: DefaultStyle.defaultFont
|
family: DefaultStyle.defaultFont
|
||||||
capitalization: mainItem.capitalization
|
capitalization: mainItem.capitalization
|
||||||
underline: mainItem.underline
|
underline: mainItem.underline
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ ColumnLayout {
|
||||||
spacing: Utils.getSizeWithScreenRatio(15)
|
spacing: Utils.getSizeWithScreenRatio(15)
|
||||||
property alias content: contentLayout.data
|
property alias content: contentLayout.data
|
||||||
property alias contentLayout: contentLayout
|
property alias contentLayout: contentLayout
|
||||||
implicitHeight: contentLayout.implicitHeight + Utils.getSizeWithScreenRatio(1) + spacing
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
id: contentLayout
|
id: contentLayout
|
||||||
spacing: Utils.getSizeWithScreenRatio(8)
|
spacing: Utils.getSizeWithScreenRatio(8)
|
||||||
|
|
|
||||||
|
|
@ -499,17 +499,17 @@ AbstractMainPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Connections {
|
Connections {
|
||||||
enabled: conferenceEdit.conferenceInfoGui
|
enabled: conferenceEdit && conferenceEdit.conferenceInfoGui
|
||||||
target: conferenceEdit.conferenceInfoGui ? conferenceEdit.conferenceInfoGui.core : null
|
target: conferenceEdit.conferenceInfoGui ? conferenceEdit.conferenceInfoGui.core : null
|
||||||
ignoreUnknownSignals: true
|
ignoreUnknownSignals: true
|
||||||
function onSaveFailed() {
|
function onSaveFailed() {
|
||||||
UtilsCpp.getMainWindow().closeLoadingPopup()
|
UtilsCpp.getMainWindow().closeLoadingPopup()
|
||||||
}
|
}
|
||||||
function onSchedulerStateChanged() {
|
function onSchedulerStateChanged() {
|
||||||
editFocusScope.enabled = conferenceInfoGui.core.schedulerState != LinphoneEnums.ConferenceSchedulerState.AllocationPending
|
editFocusScope.enabled = conferenceEdit.conferenceInfoGui.core.schedulerState != LinphoneEnums.ConferenceSchedulerState.AllocationPending
|
||||||
if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Ready) {
|
if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Ready) {
|
||||||
rightPanelStackView.pop()
|
|
||||||
UtilsCpp.getMainWindow().closeLoadingPopup()
|
UtilsCpp.getMainWindow().closeLoadingPopup()
|
||||||
|
rightPanelStackView.pop()
|
||||||
//: "Enregistré"
|
//: "Enregistré"
|
||||||
UtilsCpp.showInformationPopup(qsTr("saved"),
|
UtilsCpp.showInformationPopup(qsTr("saved"),
|
||||||
//: "Réunion mise à jour"
|
//: "Réunion mise à jour"
|
||||||
|
|
@ -518,7 +518,9 @@ AbstractMainPage {
|
||||||
else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.AllocationPending
|
else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.AllocationPending
|
||||||
|| conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Updating) {
|
|| conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Updating) {
|
||||||
//: "Modification de la réunion en cours…"
|
//: "Modification de la réunion en cours…"
|
||||||
UtilsCpp.getMainWindow().showLoadingPopup(qsTr("meeting_schedule_edit_in_progress"))
|
UtilsCpp.getMainWindow().showLoadingPopup(qsTr("meeting_schedule_edit_in_progress"), true, function(){
|
||||||
|
conferenceEdit.conferenceInfoGui.core.undo()
|
||||||
|
})
|
||||||
} else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Error) {
|
} else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Error) {
|
||||||
UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"),
|
UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"),
|
||||||
//: "Échec de la modification de la réunion !"
|
//: "Échec de la modification de la réunion !"
|
||||||
|
|
@ -621,7 +623,7 @@ AbstractMainPage {
|
||||||
FocusScope{
|
FocusScope{
|
||||||
width: Utils.getSizeWithScreenRatio(393)
|
width: Utils.getSizeWithScreenRatio(393)
|
||||||
anchors.horizontalCenter: parent?.horizontalCenter
|
anchors.horizontalCenter: parent?.horizontalCenter
|
||||||
RowLayout {
|
ColumnLayout {
|
||||||
id: meetingDetailsLayout
|
id: meetingDetailsLayout
|
||||||
visible: mainItem.selectedConference
|
visible: mainItem.selectedConference
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
@ -629,8 +631,11 @@ AbstractMainPage {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.bottomMargin: Utils.getSizeWithScreenRatio(30)
|
anchors.bottomMargin: Utils.getSizeWithScreenRatio(30)
|
||||||
width: Utils.getSizeWithScreenRatio(393)
|
width: Utils.getSizeWithScreenRatio(393)
|
||||||
|
uniformCellSizes: true
|
||||||
// direction: FlexboxLayout.Column
|
// direction: FlexboxLayout.Column
|
||||||
// alignContent: FlexboxLayout.AlignSpaceBetween
|
// alignContent: FlexboxLayout.AlignSpaceBetween
|
||||||
|
ColumnLayout{
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
spacing: Utils.getSizeWithScreenRatio(16)
|
spacing: Utils.getSizeWithScreenRatio(16)
|
||||||
Section {
|
Section {
|
||||||
visible: mainItem.selectedConference
|
visible: mainItem.selectedConference
|
||||||
|
|
@ -742,7 +747,7 @@ AbstractMainPage {
|
||||||
KeyNavigation.left: linkButton
|
KeyNavigation.left: linkButton
|
||||||
KeyNavigation.right: linkButton
|
KeyNavigation.right: linkButton
|
||||||
KeyNavigation.up: deletePopup
|
KeyNavigation.up: deletePopup
|
||||||
KeyNavigation.down: calendarPlusButton
|
KeyNavigation.down: joinButton
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri)
|
var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri)
|
||||||
if (success) UtilsCpp.showInformationPopup(qsTr("saved"),
|
if (success) UtilsCpp.showInformationPopup(qsTr("saved"),
|
||||||
|
|
@ -771,18 +776,6 @@ AbstractMainPage {
|
||||||
capitalization: Font.Capitalize
|
capitalization: Font.Capitalize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RoundButton {
|
|
||||||
id: calendarPlusButton
|
|
||||||
style: ButtonStyle.noBackground
|
|
||||||
icon.source: AppIcons.calendarPlus
|
|
||||||
KeyNavigation.left: calendarPlusButton
|
|
||||||
KeyNavigation.right: calendarPlusButton
|
|
||||||
KeyNavigation.up: shareNetworkButton
|
|
||||||
KeyNavigation.down: joinButton
|
|
||||||
onClicked: {
|
|
||||||
mainItem.selectedConference.core.exportConferenceToICS()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
RowLayout {
|
RowLayout {
|
||||||
spacing: Utils.getSizeWithScreenRatio(8)
|
spacing: Utils.getSizeWithScreenRatio(8)
|
||||||
|
|
@ -822,6 +815,18 @@ AbstractMainPage {
|
||||||
pixelSize: Utils.getSizeWithScreenRatio(14)
|
pixelSize: Utils.getSizeWithScreenRatio(14)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RoundButton {
|
||||||
|
id: calendarPlusButton
|
||||||
|
style: ButtonStyle.noBackground
|
||||||
|
icon.source: AppIcons.calendarPlus
|
||||||
|
KeyNavigation.left: calendarPlusButton
|
||||||
|
KeyNavigation.right: calendarPlusButton
|
||||||
|
KeyNavigation.up: shareNetworkButton
|
||||||
|
KeyNavigation.down: joinButton
|
||||||
|
onClicked: {
|
||||||
|
mainItem.selectedConference.core.exportConferenceToICS()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Section {
|
Section {
|
||||||
|
|
@ -854,7 +859,8 @@ AbstractMainPage {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.maximumHeight: participantList.contentHeight + Utils.getSizeWithScreenRatio(1) + spacing
|
Layout.maximumHeight: participantList.contentHeight + Utils.getSizeWithScreenRatio(1) + spacing
|
||||||
content: RowLayout {
|
content:
|
||||||
|
RowLayout {
|
||||||
width: Utils.getSizeWithScreenRatio(393)
|
width: Utils.getSizeWithScreenRatio(393)
|
||||||
spacing: Utils.getSizeWithScreenRatio(8)
|
spacing: Utils.getSizeWithScreenRatio(8)
|
||||||
EffectImage {
|
EffectImage {
|
||||||
|
|
@ -870,6 +876,7 @@ AbstractMainPage {
|
||||||
// Layout.preferredHeight: contentHeight
|
// Layout.preferredHeight: contentHeight
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
height: contentHeight
|
||||||
model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : []
|
model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : []
|
||||||
clip: true
|
clip: true
|
||||||
Control.ScrollBar.vertical: ScrollBar {
|
Control.ScrollBar.vertical: ScrollBar {
|
||||||
|
|
@ -934,5 +941,6 @@ AbstractMainPage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue