auto switch to away/online status when app is inactive/active #LINQT-2172

fix loading ui for chats/meetings lists

use uri only for account uris to remove the < and >
This commit is contained in:
Gaelle Braud 2025-11-28 12:12:00 +01:00
parent cca8db9055
commit f405754e24
18 changed files with 154 additions and 116 deletions

View file

@ -335,7 +335,7 @@ void App::setSelf(QSharedPointer<App>(me)) {
auto callCore = CallCore::create(call); auto callCore = CallCore::create(call);
mCoreModelConnection->invokeToCore([this, callCore] { mCoreModelConnection->invokeToCore([this, callCore] {
auto callGui = new CallGui(callCore); auto callGui = new CallGui(callCore);
auto win = getCallsWindow(QVariant::fromValue(callGui)); auto win = getOrCreateCallsWindow(QVariant::fromValue(callGui));
Utils::smartShowWindow(win); Utils::smartShowWindow(win);
auto mainwin = getMainWindow(); auto mainwin = getMainWindow();
QMetaObject::invokeMethod(mainwin, "callCreated"); QMetaObject::invokeMethod(mainwin, "callCreated");
@ -1068,7 +1068,39 @@ bool App::notify(QObject *receiver, QEvent *event) {
return done; return done;
} }
QQuickWindow *App::getCallsWindow(QVariant callGui) { void App::handleAppActivity() {
auto handle = [this](AccountGui *currentAcount) {
auto accountCore = currentAcount->mCore;
Q_ASSERT(accountCore);
auto accountPresence = accountCore->getPresence();
if ((mMainWindow && mMainWindow->isActive() || (mCallsWindow && mCallsWindow->isActive())) &&
accountPresence == LinphoneEnums::Presence::Away)
accountCore->lSetPresence(LinphoneEnums::Presence::Online);
if (((!mMainWindow || !mMainWindow->isActive()) && (!mCallsWindow || !mCallsWindow->isActive())) &&
accountPresence == LinphoneEnums::Presence::Online)
accountCore->lSetPresence(LinphoneEnums::Presence::Away);
};
if (mAccountList) {
if (mAccountList->getDefaultAccount()) {
handle(mAccountList->getDefaultAccount());
} else {
connect(
mAccountList.get(), &AccountList::defaultAccountChanged, this,
[this, handle] {
if (mAccountList->getDefaultAccount()) {
handle(mAccountList->getDefaultAccount());
}
},
Qt::SingleShotConnection);
}
}
}
QQuickWindow *App::getCallsWindow() {
return mCallsWindow;
}
QQuickWindow *App::getOrCreateCallsWindow(QVariant callGui) {
mustBeInMainThread(getClassName()); mustBeInMainThread(getClassName());
if (!mCallsWindow) { if (!mCallsWindow) {
const QUrl callUrl("qrc:/qt/qml/Linphone/view/Page/Window/Call/CallsWindow.qml"); const QUrl callUrl("qrc:/qt/qml/Linphone/view/Page/Window/Call/CallsWindow.qml");
@ -1103,6 +1135,7 @@ QQuickWindow *App::getCallsWindow(QVariant callGui) {
} }
// window->setParent(mMainWindow); // window->setParent(mMainWindow);
mCallsWindow = window; mCallsWindow = window;
connect(mCallsWindow, &QQuickWindow::activeChanged, this, &App::handleAppActivity);
} }
if (!callGui.isNull() && callGui.isValid()) mCallsWindow->setProperty("call", callGui); if (!callGui.isNull() && callGui.isValid()) mCallsWindow->setProperty("call", callGui);
return mCallsWindow; return mCallsWindow;
@ -1125,8 +1158,11 @@ QQuickWindow *App::getMainWindow() const {
} }
void App::setMainWindow(QQuickWindow *data) { void App::setMainWindow(QQuickWindow *data) {
if (mMainWindow) disconnect(mMainWindow, &QQuickWindow::activeChanged, this, nullptr);
if (mMainWindow != data) { if (mMainWindow != data) {
mMainWindow = data; mMainWindow = data;
connect(mMainWindow, &QQuickWindow::activeChanged, this, &App::handleAppActivity);
handleAppActivity();
emit mainWindowChanged(); emit mainWindowChanged();
} }
} }

View file

@ -139,7 +139,9 @@ public:
bool getCoreStarted() const; bool getCoreStarted() const;
void setCoreStarted(bool started); void setCoreStarted(bool started);
QQuickWindow *getCallsWindow(QVariant callGui = QVariant()); QQuickWindow *getCallsWindow();
Q_INVOKABLE void handleAppActivity();
QQuickWindow *getOrCreateCallsWindow(QVariant callGui = QVariant());
void setCallsWindowProperty(const char *id, QVariant property); void setCallsWindowProperty(const char *id, QVariant property);
void closeCallsWindow(); void closeCallsWindow();

View file

@ -213,7 +213,7 @@ void CallCore::setSelf(QSharedPointer<CallCore> me) {
Utils::showInformationPopup(tr("call_record_end_message"), Utils::showInformationPopup(tr("call_record_end_message"),
//: "L'appel a été enregistré dans le fichier : %1" //: "L'appel a été enregistré dans le fichier : %1"
tr("call_record_saved_in_file_message").arg(recordFile), true, tr("call_record_saved_in_file_message").arg(recordFile), true,
App::getInstance()->getCallsWindow()); App::getInstance()->getOrCreateCallsWindow());
} }
}); });
}); });

View file

@ -25,13 +25,13 @@
<context> <context>
<name>AbstractWindow</name> <name>AbstractWindow</name>
<message> <message>
<location filename="../../view/Page/Window/AbstractWindow.qml" line="77"/> <location filename="../../view/Page/Window/AbstractWindow.qml" line="79"/>
<source>contact_dialog_pick_phone_number_or_sip_address_title</source> <source>contact_dialog_pick_phone_number_or_sip_address_title</source>
<extracomment>&quot;Choisissez un numéro ou adresse SIP&quot;</extracomment> <extracomment>&quot;Choisissez un numéro ou adresse SIP&quot;</extracomment>
<translation>Telefonnummer oder SIP-Adresse wählen</translation> <translation>Telefonnummer oder SIP-Adresse wählen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Window/AbstractWindow.qml" line="304"/> <location filename="../../view/Page/Window/AbstractWindow.qml" line="306"/>
<source>fps_counter</source> <source>fps_counter</source>
<translation>%1 FPS</translation> <translation>%1 FPS</translation>
</message> </message>
@ -752,30 +752,30 @@
<translation>Nur Anwendungs-Logs ausgeben</translation> <translation>Nur Anwendungs-Logs ausgeben</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1373"/> <location filename="../../core/App.cpp" line="1407"/>
<source>hide_action</source> <source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment> <extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Ausblenden</translation> <translation>Ausblenden</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1373"/> <location filename="../../core/App.cpp" line="1407"/>
<source>show_action</source> <source>show_action</source>
<translation>Zeigen</translation> <translation>Zeigen</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1388"/> <location filename="../../core/App.cpp" line="1422"/>
<source>quit_action</source> <source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment> <extracomment>&quot;Quitter&quot;</extracomment>
<translation>Beenden</translation> <translation>Beenden</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1406"/> <location filename="../../core/App.cpp" line="1440"/>
<source>check_for_update</source> <source>check_for_update</source>
<extracomment>Check for update</extracomment> <extracomment>Check for update</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1524"/> <location filename="../../core/App.cpp" line="1558"/>
<source>mark_all_read_action</source> <source>mark_all_read_action</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2529,74 +2529,74 @@ Error</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="96"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="97"/>
<source>chat_dialog_delete_chat_title</source> <source>chat_dialog_delete_chat_title</source>
<extracomment>Supprimer la conversation ?</extracomment> <extracomment>Supprimer la conversation ?</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="98"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="99"/>
<source>chat_dialog_delete_chat_message</source> <source>chat_dialog_delete_chat_message</source>
<extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment> <extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="131"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="132"/>
<source>chat_list_title</source> <source>chat_list_title</source>
<extracomment>&quot;Conversations&quot;</extracomment> <extracomment>&quot;Conversations&quot;</extracomment>
<translation>Konversationen</translation> <translation>Konversationen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="149"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="150"/>
<source>menu_mark_all_as_read</source> <source>menu_mark_all_as_read</source>
<extracomment>&quot;mark all as read&quot;</extracomment> <extracomment>&quot;mark all as read&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="180"/>
<source>chat_search_in_history</source> <source>chat_search_in_history</source>
<extracomment>&quot;Rechercher une conversation&quot;</extracomment> <extracomment>&quot;Rechercher une conversation&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="202"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="203"/>
<source>list_filter_no_result_found</source> <source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment> <extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Kein Ergebnis</translation> <translation>Kein Ergebnis</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="204"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="205"/>
<source>chat_list_empty_history</source> <source>chat_list_empty_history</source>
<extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment> <extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="273"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="274"/>
<source>chat_action_start_new_chat</source> <source>chat_action_start_new_chat</source>
<extracomment>&quot;New chat&quot;</extracomment> <extracomment>&quot;New chat&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
<source>chat_start_group_chat_title</source> <source>chat_start_group_chat_title</source>
<extracomment>&quot;Nouveau groupe&quot;</extracomment> <extracomment>&quot;Nouveau groupe&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="313"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
<source>chat_action_start_group_chat</source> <source>chat_action_start_group_chat</source>
<extracomment>&quot;Créer&quot;</extracomment> <extracomment>&quot;Créer&quot;</extracomment>
<translation>Erstellen</translation> <translation>Erstellen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="330"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="352"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="353"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="357"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="358"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="331"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="332"/>
<source>information_popup_chat_creation_failed_message</source> <source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment> <extracomment>&quot;La création a échoué&quot;</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2607,25 +2607,25 @@ Error</extracomment>
<translation type="obsolete">Der Codec konnte nicht installiert werden.</translation> <translation type="obsolete">Der Codec konnte nicht installiert werden.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="349"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="350"/>
<source>group_chat_error_must_have_name</source> <source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment> <extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="354"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="355"/>
<source>group_chat_error_no_participant</source> <source>group_chat_error_no_participant</source>
<extracomment>&quot;Please select at least one participant</extracomment> <extracomment>&quot;Please select at least one participant</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="359"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="360"/>
<source>group_call_error_not_connected</source> <source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment> <extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>Sie sind nicht verbunden</translation> <translation>Sie sind nicht verbunden</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="365"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="366"/>
<source>chat_creation_in_progress</source> <source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment> <extracomment>Creation de la conversation en cours </extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4606,19 +4606,19 @@ Error</extracomment>
<context> <context>
<name>MeetingListView</name> <name>MeetingListView</name>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="280"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="277"/>
<source>meeting_info_cancelled</source> <source>meeting_info_cancelled</source>
<extracomment>&quot;Réunion annulée&quot;</extracomment> <extracomment>&quot;Réunion annulée&quot;</extracomment>
<translation>Besprechung abgesagt</translation> <translation>Besprechung abgesagt</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="304"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="301"/>
<source>meetings_list_no_meeting_for_today</source> <source>meetings_list_no_meeting_for_today</source>
<extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment> <extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment>
<translation>Heute keine Besprechungen</translation> <translation>Heute keine Besprechungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="338"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="335"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Besprechung löschen</translation> <translation>Besprechung löschen</translation>

View file

@ -25,13 +25,13 @@
<context> <context>
<name>AbstractWindow</name> <name>AbstractWindow</name>
<message> <message>
<location filename="../../view/Page/Window/AbstractWindow.qml" line="77"/> <location filename="../../view/Page/Window/AbstractWindow.qml" line="79"/>
<source>contact_dialog_pick_phone_number_or_sip_address_title</source> <source>contact_dialog_pick_phone_number_or_sip_address_title</source>
<extracomment>&quot;Choisissez un numéro ou adresse SIP&quot;</extracomment> <extracomment>&quot;Choisissez un numéro ou adresse SIP&quot;</extracomment>
<translation>Choose a SIP number or address</translation> <translation>Choose a SIP number or address</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Window/AbstractWindow.qml" line="304"/> <location filename="../../view/Page/Window/AbstractWindow.qml" line="306"/>
<source>fps_counter</source> <source>fps_counter</source>
<translation>%1 FPS</translation> <translation>%1 FPS</translation>
</message> </message>
@ -757,30 +757,30 @@
<translation>Print only logs from the application</translation> <translation>Print only logs from the application</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1373"/> <location filename="../../core/App.cpp" line="1407"/>
<source>hide_action</source> <source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment> <extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Hide</translation> <translation>Hide</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1373"/> <location filename="../../core/App.cpp" line="1407"/>
<source>show_action</source> <source>show_action</source>
<translation>Show</translation> <translation>Show</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1388"/> <location filename="../../core/App.cpp" line="1422"/>
<source>quit_action</source> <source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment> <extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quit</translation> <translation>Quit</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1406"/> <location filename="../../core/App.cpp" line="1440"/>
<source>check_for_update</source> <source>check_for_update</source>
<extracomment>Check for update</extracomment> <extracomment>Check for update</extracomment>
<translation>Check for update</translation> <translation>Check for update</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1524"/> <location filename="../../core/App.cpp" line="1558"/>
<source>mark_all_read_action</source> <source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation> <translation>Marquer tout comme lu</translation>
</message> </message>
@ -2513,98 +2513,98 @@ Only your correspondent can decrypt them.</translation>
<translation>Chat room is being created...</translation> <translation>Chat room is being created...</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="96"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="97"/>
<source>chat_dialog_delete_chat_title</source> <source>chat_dialog_delete_chat_title</source>
<extracomment>Supprimer la conversation ?</extracomment> <extracomment>Supprimer la conversation ?</extracomment>
<translation>Delete conversation ?</translation> <translation>Delete conversation ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="98"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="99"/>
<source>chat_dialog_delete_chat_message</source> <source>chat_dialog_delete_chat_message</source>
<extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment> <extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment>
<translation>This conversation and all its messages will be deleted.</translation> <translation>This conversation and all its messages will be deleted.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="131"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="132"/>
<source>chat_list_title</source> <source>chat_list_title</source>
<extracomment>&quot;Conversations&quot;</extracomment> <extracomment>&quot;Conversations&quot;</extracomment>
<translation>Conversations</translation> <translation>Conversations</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="149"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="150"/>
<source>menu_mark_all_as_read</source> <source>menu_mark_all_as_read</source>
<extracomment>&quot;mark all as read&quot;</extracomment> <extracomment>&quot;mark all as read&quot;</extracomment>
<translation>Mark all as read</translation> <translation>Mark all as read</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="180"/>
<source>chat_search_in_history</source> <source>chat_search_in_history</source>
<extracomment>&quot;Rechercher une conversation&quot;</extracomment> <extracomment>&quot;Rechercher une conversation&quot;</extracomment>
<translation>Search for a chat</translation> <translation>Search for a chat</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="202"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="203"/>
<source>list_filter_no_result_found</source> <source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment> <extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>No result</translation> <translation>No result</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="204"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="205"/>
<source>chat_list_empty_history</source> <source>chat_list_empty_history</source>
<extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment> <extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment>
<translation>No conversation in history</translation> <translation>No conversation in history</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="273"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="274"/>
<source>chat_action_start_new_chat</source> <source>chat_action_start_new_chat</source>
<extracomment>&quot;New chat&quot;</extracomment> <extracomment>&quot;New chat&quot;</extracomment>
<translation>New conversation</translation> <translation>New conversation</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
<source>chat_start_group_chat_title</source> <source>chat_start_group_chat_title</source>
<extracomment>&quot;Nouveau groupe&quot;</extracomment> <extracomment>&quot;Nouveau groupe&quot;</extracomment>
<translation>New group</translation> <translation>New group</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="313"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
<source>chat_action_start_group_chat</source> <source>chat_action_start_group_chat</source>
<extracomment>&quot;Créer&quot;</extracomment> <extracomment>&quot;Créer&quot;</extracomment>
<translation>Create</translation> <translation>Create</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="330"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="352"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="353"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="357"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="358"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Error</translation> <translation>Error</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="331"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="332"/>
<source>information_popup_chat_creation_failed_message</source> <source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment> <extracomment>&quot;La création a échoué&quot;</extracomment>
<translation>Creation failed</translation> <translation>Creation failed</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="349"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="350"/>
<source>group_chat_error_must_have_name</source> <source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment> <extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation>A name must be set for the group</translation> <translation>A name must be set for the group</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="354"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="355"/>
<source>group_chat_error_no_participant</source> <source>group_chat_error_no_participant</source>
<extracomment>&quot;Please select at least one participant</extracomment> <extracomment>&quot;Please select at least one participant</extracomment>
<translation>Please select at least one participant</translation> <translation>Please select at least one participant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="359"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="360"/>
<source>group_call_error_not_connected</source> <source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment> <extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>You are not connected</translation> <translation>You are not connected</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="365"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="366"/>
<source>chat_creation_in_progress</source> <source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment> <extracomment>Creation de la conversation en cours </extracomment>
<translation>Chat creation pending</translation> <translation>Chat creation pending</translation>
@ -4532,19 +4532,19 @@ Expiration : %1</translation>
<context> <context>
<name>MeetingListView</name> <name>MeetingListView</name>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="280"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="277"/>
<source>meeting_info_cancelled</source> <source>meeting_info_cancelled</source>
<extracomment>&quot;Réunion annulée&quot;</extracomment> <extracomment>&quot;Réunion annulée&quot;</extracomment>
<translation>Meeting canceled</translation> <translation>Meeting canceled</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="304"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="301"/>
<source>meetings_list_no_meeting_for_today</source> <source>meetings_list_no_meeting_for_today</source>
<extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment> <extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment>
<translation>No meeting for today</translation> <translation>No meeting for today</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="338"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="335"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Delete meeting</translation> <translation>Delete meeting</translation>

View file

@ -25,13 +25,13 @@
<context> <context>
<name>AbstractWindow</name> <name>AbstractWindow</name>
<message> <message>
<location filename="../../view/Page/Window/AbstractWindow.qml" line="77"/> <location filename="../../view/Page/Window/AbstractWindow.qml" line="79"/>
<source>contact_dialog_pick_phone_number_or_sip_address_title</source> <source>contact_dialog_pick_phone_number_or_sip_address_title</source>
<extracomment>&quot;Choisissez un numéro ou adresse SIP&quot;</extracomment> <extracomment>&quot;Choisissez un numéro ou adresse SIP&quot;</extracomment>
<translation>Choisissez un numéro ou adresse SIP</translation> <translation>Choisissez un numéro ou adresse SIP</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Window/AbstractWindow.qml" line="304"/> <location filename="../../view/Page/Window/AbstractWindow.qml" line="306"/>
<source>fps_counter</source> <source>fps_counter</source>
<translation>%1 FPS</translation> <translation>%1 FPS</translation>
</message> </message>
@ -757,30 +757,30 @@
<translation>Print only logs from the application</translation> <translation>Print only logs from the application</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1373"/> <location filename="../../core/App.cpp" line="1407"/>
<source>hide_action</source> <source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment> <extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Cacher</translation> <translation>Cacher</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1373"/> <location filename="../../core/App.cpp" line="1407"/>
<source>show_action</source> <source>show_action</source>
<translation>Afficher</translation> <translation>Afficher</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1388"/> <location filename="../../core/App.cpp" line="1422"/>
<source>quit_action</source> <source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment> <extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quitter</translation> <translation>Quitter</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1406"/> <location filename="../../core/App.cpp" line="1440"/>
<source>check_for_update</source> <source>check_for_update</source>
<extracomment>Check for update</extracomment> <extracomment>Check for update</extracomment>
<translation>Rechercher une mise à jour</translation> <translation>Rechercher une mise à jour</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1524"/> <location filename="../../core/App.cpp" line="1558"/>
<source>mark_all_read_action</source> <source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation> <translation>Marquer tout comme lu</translation>
</message> </message>
@ -2513,98 +2513,98 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
<translation>Création de la conversation en cours...</translation> <translation>Création de la conversation en cours...</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="96"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="97"/>
<source>chat_dialog_delete_chat_title</source> <source>chat_dialog_delete_chat_title</source>
<extracomment>Supprimer la conversation ?</extracomment> <extracomment>Supprimer la conversation ?</extracomment>
<translation>Supprimer la conversation ?</translation> <translation>Supprimer la conversation ?</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="98"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="99"/>
<source>chat_dialog_delete_chat_message</source> <source>chat_dialog_delete_chat_message</source>
<extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment> <extracomment>&quot;La conversation et tous ses messages seront supprimés.&quot;</extracomment>
<translation>La conversation et tous ses messages seront supprimés.</translation> <translation>La conversation et tous ses messages seront supprimés.</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="131"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="132"/>
<source>chat_list_title</source> <source>chat_list_title</source>
<extracomment>&quot;Conversations&quot;</extracomment> <extracomment>&quot;Conversations&quot;</extracomment>
<translation>Conversations</translation> <translation>Conversations</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="149"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="150"/>
<source>menu_mark_all_as_read</source> <source>menu_mark_all_as_read</source>
<extracomment>&quot;mark all as read&quot;</extracomment> <extracomment>&quot;mark all as read&quot;</extracomment>
<translation>Tout marquer comme lu</translation> <translation>Tout marquer comme lu</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="179"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="180"/>
<source>chat_search_in_history</source> <source>chat_search_in_history</source>
<extracomment>&quot;Rechercher une conversation&quot;</extracomment> <extracomment>&quot;Rechercher une conversation&quot;</extracomment>
<translation>Rechercher une conversation</translation> <translation>Rechercher une conversation</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="202"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="203"/>
<source>list_filter_no_result_found</source> <source>list_filter_no_result_found</source>
<extracomment>&quot;Aucun résultat&quot;</extracomment> <extracomment>&quot;Aucun résultat&quot;</extracomment>
<translation>Aucun résultat</translation> <translation>Aucun résultat</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="204"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="205"/>
<source>chat_list_empty_history</source> <source>chat_list_empty_history</source>
<extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment> <extracomment>&quot;Aucune conversation dans votre historique&quot;</extracomment>
<translation>Aucune conversation dans votre historique</translation> <translation>Aucune conversation dans votre historique</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="273"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="274"/>
<source>chat_action_start_new_chat</source> <source>chat_action_start_new_chat</source>
<extracomment>&quot;New chat&quot;</extracomment> <extracomment>&quot;New chat&quot;</extracomment>
<translation>Nouvelle conversation</translation> <translation>Nouvelle conversation</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="311"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="312"/>
<source>chat_start_group_chat_title</source> <source>chat_start_group_chat_title</source>
<extracomment>&quot;Nouveau groupe&quot;</extracomment> <extracomment>&quot;Nouveau groupe&quot;</extracomment>
<translation>Nouveau groupe</translation> <translation>Nouveau groupe</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="313"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="314"/>
<source>chat_action_start_group_chat</source> <source>chat_action_start_group_chat</source>
<extracomment>&quot;Créer&quot;</extracomment> <extracomment>&quot;Créer&quot;</extracomment>
<translation>Créer</translation> <translation>Créer</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="329"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="330"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="352"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="353"/>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="357"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="358"/>
<source>information_popup_error_title</source> <source>information_popup_error_title</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="331"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="332"/>
<source>information_popup_chat_creation_failed_message</source> <source>information_popup_chat_creation_failed_message</source>
<extracomment>&quot;La création a échoué&quot;</extracomment> <extracomment>&quot;La création a échoué&quot;</extracomment>
<translation>La création a échoué</translation> <translation>La création a échoué</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="349"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="350"/>
<source>group_chat_error_must_have_name</source> <source>group_chat_error_must_have_name</source>
<extracomment>&quot;Un nom doit être donné au groupe</extracomment> <extracomment>&quot;Un nom doit être donné au groupe</extracomment>
<translation>Un nom doit être donné au groupe</translation> <translation>Un nom doit être donné au groupe</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="354"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="355"/>
<source>group_chat_error_no_participant</source> <source>group_chat_error_no_participant</source>
<extracomment>&quot;Please select at least one participant</extracomment> <extracomment>&quot;Please select at least one participant</extracomment>
<translation>Veuillez sélectionner au moins un participant</translation> <translation>Veuillez sélectionner au moins un participant</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="359"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="360"/>
<source>group_call_error_not_connected</source> <source>group_call_error_not_connected</source>
<extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment> <extracomment>&quot;Vous n&apos;etes pas connecté&quot;</extracomment>
<translation>Vous n&apos;êtes pas connecté</translation> <translation>Vous n&apos;êtes pas connecté</translation>
</message> </message>
<message> <message>
<location filename="../../view/Page/Main/Chat/ChatPage.qml" line="365"/> <location filename="../../view/Page/Main/Chat/ChatPage.qml" line="366"/>
<source>chat_creation_in_progress</source> <source>chat_creation_in_progress</source>
<extracomment>Creation de la conversation en cours </extracomment> <extracomment>Creation de la conversation en cours </extracomment>
<translation>Création de la conversation en cours</translation> <translation>Création de la conversation en cours</translation>
@ -4532,19 +4532,19 @@ Expiration : %1</translation>
<context> <context>
<name>MeetingListView</name> <name>MeetingListView</name>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="280"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="277"/>
<source>meeting_info_cancelled</source> <source>meeting_info_cancelled</source>
<extracomment>&quot;Réunion annulée&quot;</extracomment> <extracomment>&quot;Réunion annulée&quot;</extracomment>
<translation>Réunion annulée</translation> <translation>Réunion annulée</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="304"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="301"/>
<source>meetings_list_no_meeting_for_today</source> <source>meetings_list_no_meeting_for_today</source>
<extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment> <extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment>
<translation>Aucune réunion aujourd&apos;hui</translation> <translation>Aucune réunion aujourd&apos;hui</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="338"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="335"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Supprimer la réunion</translation> <translation>Supprimer la réunion</translation>

View file

@ -274,7 +274,7 @@ void AccountModel::setTransport(linphone::TransportType value, bool save) {
QString AccountModel::getRegistrarUri() const { QString AccountModel::getRegistrarUri() const {
if (mMonitor->getParams()->getServerAddress()) if (mMonitor->getParams()->getServerAddress())
return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString()); return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asStringUriOnly());
else return ""; else return "";
} }
@ -297,7 +297,7 @@ void AccountModel::setRegistrarUri(QString value) {
QString AccountModel::getOutboundProxyUri() const { QString AccountModel::getOutboundProxyUri() const {
auto routeAddresses = mMonitor->getParams()->getRoutesAddresses(); auto routeAddresses = mMonitor->getParams()->getRoutesAddresses();
auto outbound = auto outbound =
routeAddresses.empty() ? QString() : Utils::coreStringToAppString(routeAddresses.front()->asString()); routeAddresses.empty() ? QString() : Utils::coreStringToAppString(routeAddresses.front()->asStringUriOnly());
return outbound; return outbound;
} }
@ -399,7 +399,7 @@ void AccountModel::setExpire(int value) {
QString AccountModel::getConferenceFactoryAddress() const { QString AccountModel::getConferenceFactoryAddress() const {
auto confAddress = mMonitor->getParams()->getConferenceFactoryAddress(); auto confAddress = mMonitor->getParams()->getConferenceFactoryAddress();
return confAddress ? Utils::coreStringToAppString(confAddress->asString()) : QString(); return confAddress ? Utils::coreStringToAppString(confAddress->asStringUriOnly()) : QString();
} }
void AccountModel::setConferenceFactoryAddress(QString value) { void AccountModel::setConferenceFactoryAddress(QString value) {
@ -421,7 +421,7 @@ void AccountModel::setConferenceFactoryAddress(QString value) {
QString AccountModel::getAudioVideoConferenceFactoryAddress() const { QString AccountModel::getAudioVideoConferenceFactoryAddress() const {
auto confAddress = mMonitor->getParams()->getAudioVideoConferenceFactoryAddress(); auto confAddress = mMonitor->getParams()->getAudioVideoConferenceFactoryAddress();
return confAddress ? Utils::coreStringToAppString(confAddress->asString()) : QString(); return confAddress ? Utils::coreStringToAppString(confAddress->asStringUriOnly()) : QString();
} }
void AccountModel::setAudioVideoConferenceFactoryAddress(QString value) { void AccountModel::setAudioVideoConferenceFactoryAddress(QString value) {
@ -490,7 +490,7 @@ void AccountModel::setVoicemailAddress(QString value) {
QString AccountModel::getVoicemailAddress() const { QString AccountModel::getVoicemailAddress() const {
auto addr = mMonitor->getParams()->getVoicemailAddress(); auto addr = mMonitor->getParams()->getVoicemailAddress();
return addr ? Utils::coreStringToAppString(addr->asString()) : ""; return addr ? Utils::coreStringToAppString(addr->asStringUriOnly()) : "";
} }
// UserData (see hpp for explanations) // UserData (see hpp for explanations)

View file

@ -209,22 +209,22 @@ void Utils::createGroupCall(QString subject, const std::list<QString> &participa
// Comment on annule ? Si on ferme la fenêtre ça va finir l'appel en cours // Comment on annule ? Si on ferme la fenêtre ça va finir l'appel en cours
void Utils::setupConference(ConferenceInfoGui *confGui) { void Utils::setupConference(ConferenceInfoGui *confGui) {
if (!confGui) return; if (!confGui) return;
auto window = App::getInstance()->getCallsWindow(QVariant()); auto window = App::getInstance()->getOrCreateCallsWindow(QVariant());
window->setProperty("conferenceInfo", QVariant::fromValue(confGui)); window->setProperty("conferenceInfo", QVariant::fromValue(confGui));
window->show(); window->show();
} }
void Utils::openCallsWindow(CallGui *call) { void Utils::openCallsWindow(CallGui *call) {
if (call) { if (call) {
auto window = App::getInstance()->getCallsWindow(QVariant::fromValue(call)); auto window = App::getInstance()->getOrCreateCallsWindow(QVariant::fromValue(call));
window->show(); window->show();
window->raise(); window->raise();
} }
} }
QQuickWindow *Utils::getCallsWindow(CallGui *callGui) { QQuickWindow *Utils::getOrCreateCallsWindow(CallGui *callGui) {
auto app = App::getInstance(); auto app = App::getInstance();
auto window = app->getCallsWindow(QVariant::fromValue(callGui)); auto window = app->getOrCreateCallsWindow(QVariant::fromValue(callGui));
return window; return window;
} }
@ -1604,7 +1604,7 @@ VariantObject *Utils::getCurrentCallChat(CallGui *call) {
showInformationPopup(tr("information_popup_error_title"), showInformationPopup(tr("information_popup_error_title"),
//: Failed to create 1-1 conversation with %1 ! //: Failed to create 1-1 conversation with %1 !
tr("information_popup_chatroom_creation_error_message"), false, tr("information_popup_chatroom_creation_error_message"), false,
getCallsWindow()); getOrCreateCallsWindow());
}); });
return QVariant(); return QVariant();
} }
@ -1638,7 +1638,7 @@ VariantObject *Utils::getChatForAddress(QString address) {
data->mConnection->invokeToCore([] { data->mConnection->invokeToCore([] {
showInformationPopup(tr("information_popup_error_title"), showInformationPopup(tr("information_popup_error_title"),
tr("information_popup_chatroom_creation_error_message"), false, tr("information_popup_chatroom_creation_error_message"), false,
getCallsWindow()); getOrCreateCallsWindow());
}); });
return QVariant(); return QVariant();
} }

View file

@ -84,7 +84,7 @@ public:
const QString &description, const QString &description,
bool isSuccess = true, bool isSuccess = true,
QQuickWindow *window = nullptr); QQuickWindow *window = nullptr);
Q_INVOKABLE static QQuickWindow *getCallsWindow(CallGui *callGui = nullptr); Q_INVOKABLE static QQuickWindow *getOrCreateCallsWindow(CallGui *callGui = nullptr);
Q_INVOKABLE static void closeCallsWindow(); Q_INVOKABLE static void closeCallsWindow();
Q_INVOKABLE static VariantObject *haveAccount(); Q_INVOKABLE static VariantObject *haveAccount();
Q_INVOKABLE static void smartShowWindow(QQuickWindow *window); Q_INVOKABLE static void smartShowWindow(QQuickWindow *window);

View file

@ -113,7 +113,7 @@ ColumnLayout {
style: ButtonStyle.grey style: ButtonStyle.grey
onClicked: { onClicked: {
if (mainItem.conferenceInfo) { if (mainItem.conferenceInfo) {
var callsWindow = UtilsCpp.getCallsWindow() var callsWindow = UtilsCpp.getOrCreateCallsWindow()
callsWindow.setupConference(mainItem.conferenceInfo) callsWindow.setupConference(mainItem.conferenceInfo)
UtilsCpp.smartShowWindow(callsWindow) UtilsCpp.smartShowWindow(callsWindow)
} }

View file

@ -205,7 +205,7 @@ ListView {
Accessible.name: qsTr("call_name_accessible_button").arg(historyAvatar.displayNameVal) Accessible.name: qsTr("call_name_accessible_button").arg(historyAvatar.displayNameVal)
onClicked: { onClicked: {
if (modelData.core.isConference) { if (modelData.core.isConference) {
var callsWindow = UtilsCpp.getCallsWindow() var callsWindow = UtilsCpp.getOrCreateCallsWindow()
callsWindow.setupConference( callsWindow.setupConference(
modelData.core.conferenceInfo) modelData.core.conferenceInfo)
UtilsCpp.smartShowWindow(callsWindow) UtilsCpp.smartShowWindow(callsWindow)

View file

@ -286,7 +286,7 @@ ColumnLayout {
text: qsTr("ics_bubble_join") text: qsTr("ics_bubble_join")
visible: !SettingsCpp.disableMeetingsFeature && conferenceInfo.state != LinphoneEnums.ConferenceInfoState.Cancelled visible: !SettingsCpp.disableMeetingsFeature && conferenceInfo.state != LinphoneEnums.ConferenceInfoState.Cancelled
onClicked: { onClicked: {
var callsWindow = UtilsCpp.getCallsWindow() var callsWindow = UtilsCpp.getOrCreateCallsWindow()
callsWindow.setupConference(mainItem.conferenceInfoGui) callsWindow.setupConference(mainItem.conferenceInfoGui)
UtilsCpp.smartShowWindow(callsWindow) UtilsCpp.smartShowWindow(callsWindow)
} }

View file

@ -102,17 +102,14 @@ ListView {
initialDisplayItems: Math.max(20, Math.round(2 * mainItem.height / Utils.getSizeWithScreenRatio(63))) initialDisplayItems: Math.max(20, Math.round(2 * mainItem.height / Utils.getSizeWithScreenRatio(63)))
displayItemsStep: initialDisplayItems/2 displayItemsStep: initialDisplayItems/2
Component.onCompleted: { Component.onCompleted: {
mainItem.loading = !confInfoProxy.accountConnected mainItem.loading = false
} }
onModelAboutToBeReset: { onModelAboutToBeReset: {
mainItem.loading = true mainItem.loading = true
} }
onModelReset: { onModelReset: {
mainItem.loading = !confInfoProxy.accountConnected mainItem.loading = false
selectData(getCurrentDateConfInfo()) selectData(getCurrentDateConfInfo())
}
onAccountConnectedChanged: (connected) => {
mainItem.loading = !connected
} }
function selectData(confInfoGui){ function selectData(confInfoGui){
mainItem.currentIndex = loadUntil(confInfoGui) mainItem.currentIndex = loadUntil(confInfoGui)

View file

@ -113,7 +113,7 @@ Item {
style: ButtonStyle.toast style: ButtonStyle.toast
text: currentCallNotif.currentCall ? currentCallNotif.currentCall.core.conference ? ("Réunion en cours : ") + currentCallNotif.currentCall.core.conference.core.subject : (("Appel en cours : ") + currentCallNotif.remoteName) : "appel en cours" text: currentCallNotif.currentCall ? currentCallNotif.currentCall.core.conference ? ("Réunion en cours : ") + currentCallNotif.currentCall.core.conference.core.subject : (("Appel en cours : ") + currentCallNotif.remoteName) : "appel en cours"
onClicked: { onClicked: {
var callsWindow = UtilsCpp.getCallsWindow(currentCallNotif.currentCall); var callsWindow = UtilsCpp.getOrCreateCallsWindow(currentCallNotif.currentCall);
UtilsCpp.smartShowWindow(callsWindow); UtilsCpp.smartShowWindow(callsWindow);
} }
} }

View file

@ -81,7 +81,8 @@ AbstractMainPage {
showDefaultItem: listStackView.currentItem showDefaultItem: listStackView.currentItem
&& listStackView.currentItem.objectName == "chatListItem" && listStackView.currentItem.objectName == "chatListItem"
&& listStackView.currentItem.listView.count === 0 || false && listStackView.currentItem.listView.count === 0
&& !listStackView.currentItem.listView.loading || false
function goToNewChat() { function goToNewChat() {
if (listStackView.currentItem if (listStackView.currentItem

View file

@ -910,7 +910,7 @@ AbstractMainPage {
KeyNavigation.right: leftPanelStackView.currentItem KeyNavigation.right: leftPanelStackView.currentItem
onClicked: { onClicked: {
console.log(mainItem.selectedConference.core.uri) console.log(mainItem.selectedConference.core.uri)
var callsWindow = UtilsCpp.getCallsWindow() var callsWindow = UtilsCpp.getOrCreateCallsWindow()
callsWindow.setupConference(mainItem.selectedConference) callsWindow.setupConference(mainItem.selectedConference)
UtilsCpp.smartShowWindow(callsWindow) UtilsCpp.smartShowWindow(callsWindow)
} }

View file

@ -16,7 +16,9 @@ ApplicationWindow {
width: Math.min(Utils.getSizeWithScreenRatio(1512), Screen.desktopAvailableWidth) width: Math.min(Utils.getSizeWithScreenRatio(1512), Screen.desktopAvailableWidth)
height: Math.min(Utils.getSizeWithScreenRatio(982), Screen.desktopAvailableHeight) height: Math.min(Utils.getSizeWithScreenRatio(982), Screen.desktopAvailableHeight)
onActiveChanged: if (active) UtilsCpp.setLastActiveWindow(this) onActiveChanged: {
if (active) UtilsCpp.setLastActiveWindow(this)
}
Component.onDestruction: if (UtilsCpp.getLastActiveWindow() === this) UtilsCpp.setLastActiveWindow(null) Component.onDestruction: if (UtilsCpp.getLastActiveWindow() === this) UtilsCpp.setLastActiveWindow(null)
property bool isFullscreen: visibility == Window.FullScreen property bool isFullscreen: visibility == Window.FullScreen

View file

@ -65,7 +65,7 @@ AbstractWindow {
onTransferStateChanged: { onTransferStateChanged: {
console.log("Transfer state:", transferState) console.log("Transfer state:", transferState)
if (mainWindow.transferState === LinphoneEnums.CallState.OutgoingInit) { if (mainWindow.transferState === LinphoneEnums.CallState.OutgoingInit) {
var callsWin = UtilsCpp.getCallsWindow() var callsWin = UtilsCpp.getOrCreateCallsWindow()
if (!callsWin) if (!callsWin)
return return
//: "Transfert en cours, veuillez patienter" //: "Transfert en cours, veuillez patienter"
@ -74,7 +74,7 @@ AbstractWindow {
|| mainWindow.transferState === LinphoneEnums.CallState.End || mainWindow.transferState === LinphoneEnums.CallState.End
|| mainWindow.transferState === LinphoneEnums.CallState.Released || mainWindow.transferState === LinphoneEnums.CallState.Released
|| mainWindow.transferState === LinphoneEnums.CallState.Connected) { || mainWindow.transferState === LinphoneEnums.CallState.Connected) {
var callsWin = UtilsCpp.getCallsWindow() var callsWin = UtilsCpp.getOrCreateCallsWindow()
callsWin.closeLoadingPopup() callsWin.closeLoadingPopup()
if (transferState === LinphoneEnums.CallState.Error) if (transferState === LinphoneEnums.CallState.Error)
UtilsCpp.showInformationPopup( UtilsCpp.showInformationPopup(
@ -786,7 +786,7 @@ AbstractWindow {
searchBarBorderColor: DefaultStyle.grey_200 searchBarBorderColor: DefaultStyle.grey_200
searchBarRightMaring: 0 searchBarRightMaring: 0
onContactClicked: contact => { onContactClicked: contact => {
var callsWin = UtilsCpp.getCallsWindow() var callsWin = UtilsCpp.getOrCreateCallsWindow()
if (contact) if (contact)
//: "Confirmer le transfert" //: "Confirmer le transfert"
callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"), callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"),
@ -799,7 +799,7 @@ AbstractWindow {
}) })
} }
onTransferCallToAnotherRequested: dest => { onTransferCallToAnotherRequested: dest => {
var callsWin = UtilsCpp.getCallsWindow() var callsWin = UtilsCpp.getOrCreateCallsWindow()
console.log("transfer to",dest) console.log("transfer to",dest)
callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"), callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"),
qsTr("call_transfer_confirm_dialog_message").arg(mainWindow.call.core.remoteName).arg(dest.core.remoteName),"", qsTr("call_transfer_confirm_dialog_message").arg(mainWindow.call.core.remoteName).arg(dest.core.remoteName),"",