fix #LINQT-1927 wrong conference link copy

This commit is contained in:
Gaelle Braud 2025-08-28 10:40:28 +02:00
parent e55779d257
commit 9074914f39
5 changed files with 19 additions and 8 deletions

View file

@ -48,6 +48,10 @@ ConferenceCore::ConferenceCore(const std::shared_ptr<linphone::Conference> &conf
mIsScreenSharingEnabled = mConferenceModel->isScreenSharingEnabled();
mIsRecording = conference->isRecording();
auto me = conference->getMe();
auto confAddress = conference->getConferenceAddress()->clone();
if (confAddress) {
mConfUri = Utils::coreStringToAppString(confAddress->asStringUriOnly());
}
if (me) {
mMe = ParticipantCore::create(me);
}
@ -75,7 +79,14 @@ void ConferenceCore::setSelf(QSharedPointer<ConferenceCore> me) {
if (newState == linphone::Conference::State::Created) {
if (auto participantDevice = conference->getActiveSpeakerParticipantDevice()) {
auto device = ParticipantDeviceCore::create(participantDevice);
mConferenceModelConnection->invokeToCore([this, device]() { setActiveSpeakerDevice(device); });
QString address;
auto confAddress = conference->getConferenceAddress();
if (confAddress) address = Utils::coreStringToAppString(confAddress->asStringUriOnly());
mConferenceModelConnection->invokeToCore([this, device, address]() {
setActiveSpeakerDevice(device);
mConfUri = address;
emit conferenceUriChanged();
});
} else if (conference->getParticipantDeviceList().size() > 1) {
for (auto &device : conference->getParticipantDeviceList()) {
if (!ToolModel::isMe(device->getAddress())) {

View file

@ -43,6 +43,7 @@ public:
Q_PROPERTY(bool isRecording READ isRecording WRITE setRecording NOTIFY isRecordingChanged)
Q_PROPERTY(QString subject READ getSubject WRITE setSubject NOTIFY subjectChanged)
Q_PROPERTY(QString uri MEMBER mConfUri NOTIFY conferenceUriChanged)
Q_PROPERTY(bool isLocalScreenSharing MEMBER mIsLocalScreenSharing WRITE setIsLocalScreenSharing NOTIFY
isLocalScreenSharingChanged)
Q_PROPERTY(bool isScreenSharingEnabled MEMBER mIsScreenSharingEnabled WRITE setIsScreenSharingEnabled NOTIFY
@ -92,6 +93,7 @@ signals:
void activeSpeakerDeviceChanged();
void subjectChanged();
void isRecordingChanged();
void conferenceUriChanged();
void lToggleScreenSharing();
@ -107,6 +109,7 @@ private:
bool mIsLocalScreenSharing = false;
bool mIsScreenSharingEnabled = false;
QString mSubject;
QString mConfUri;
QDateTime mStartDate = QDateTime::currentDateTime();
DECLARE_ABSTRACT_OBJECT

View file

@ -112,7 +112,7 @@ Item {
textColor: DefaultStyle.main2_400
onClicked: {
if (mainItem.conference) {
UtilsCpp.copyToClipboard(mainItem.call.core.remoteAddress)
UtilsCpp.copyToClipboard(mainItem.conference.core.uri)
showInformationPopup(qsTr("copied"),
//: Le lien de la réunion a été copié dans le presse-papier
qsTr("information_popup_meeting_address_copied_to_clipboard"), true)

View file

@ -50,7 +50,6 @@ Rectangle {
}
AddParticipantsForm {
id: manageParticipantsLayout
visible: manageParticipants
Layout.fillWidth: true
Layout.fillHeight: true
Layout.topMargin: Math.round(9 * DefaultStyle.dp)

View file

@ -391,8 +391,7 @@ AbstractWindow {
color: DefaultStyle.grey_0
}
Text {
text: mainWindow.call ? UtilsCpp.formatElapsedTime(
mainWindow.call.core.duration) : ""
text: mainWindow.call ? UtilsCpp.formatElapsedTime(mainWindow.call.core.duration) : ""
color: DefaultStyle.grey_0
font {
pixelSize: Typography.h3.pixelSize
@ -406,8 +405,7 @@ AbstractWindow {
Text {
Layout.leftMargin: Math.round(14 * DefaultStyle.dp)
id: conferenceDate
text: mainWindow.conferenceInfo ? mainWindow.conferenceInfo.core.getStartEndDateString(
) : ""
text: mainWindow.conferenceInfo ? mainWindow.conferenceInfo.core.getStartEndDateString() : ""
color: DefaultStyle.grey_0
font {
pixelSize: Typography.p1.pixelSize
@ -950,7 +948,7 @@ AbstractWindow {
//: Partager le lien de la réunion
text: qsTr("conference_share_link_title")
onClicked: {
UtilsCpp.copyToClipboard(mainWindow.call.core.remoteAddress)
UtilsCpp.copyToClipboard(mainWindow.conference ? mainWindow.conference.core.uri : mainWindow.call.core.remoteAddress)
//: Copié
showInformationPopup(qsTr("copied"),
//: Le lien de la réunion a été copié dans le presse-papier