mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
fix crash when null call history
Hide presence popup button if publish is disabled
This commit is contained in:
parent
4e8ded737c
commit
dc4ebebc9b
8 changed files with 44 additions and 35 deletions
|
|
@ -50,6 +50,7 @@ AccountCore::AccountCore(const std::shared_ptr<linphone::Account> &account) : QO
|
|||
mIsDefaultAccount = CoreModel::getInstance()->getCore()->getDefaultAccount() == account;
|
||||
mUnreadNotifications = account->getMissedCallsCount() + account->getUnreadChatMessageCount();
|
||||
mDisplayName = Utils::coreStringToAppString(identityAddress->getDisplayName());
|
||||
mPublishEnabled = params->publishEnabled();
|
||||
if (mDisplayName.isEmpty()) {
|
||||
mDisplayName = ToolModel::getDisplayName(identityAddress);
|
||||
auto copyAddress = identityAddress->clone();
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ public:
|
|||
Q_PROPERTY(LinphoneEnums::Presence explicitPresence MEMBER mExplicitPresence NOTIFY presenceChanged)
|
||||
Q_PROPERTY(QString presenceNote READ getPresenceNote WRITE setPresenceNote NOTIFY presenceChanged)
|
||||
Q_PROPERTY(int maxPresenceNoteSize MEMBER mMaxPresenceNoteSize CONSTANT)
|
||||
Q_PROPERTY(bool publishEnabled MEMBER mPublishEnabled CONSTANT)
|
||||
|
||||
DECLARE_CORE_GET(int, voicemailCount, VoicemailCount)
|
||||
static QSharedPointer<AccountCore> create(const std::shared_ptr<linphone::Account> &account);
|
||||
|
|
@ -272,6 +273,7 @@ private:
|
|||
LinphoneEnums::Presence mExplicitPresence;
|
||||
QString mPresenceNote;
|
||||
int mMaxPresenceNoteSize;
|
||||
bool mPublishEnabled = false;
|
||||
|
||||
bool mIsSaved = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -70,6 +70,6 @@ bool CallHistoryProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QMo
|
|||
bool CallHistoryProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const {
|
||||
auto l = getItemAtSource<CallHistoryList, CallHistoryCore>(sourceLeft.row());
|
||||
auto r = getItemAtSource<CallHistoryList, CallHistoryCore>(sourceRight.row());
|
||||
|
||||
return l->mDate < r->mDate;
|
||||
if (l && r) return l->mDate < r->mDate;
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,45 +39,45 @@
|
|||
<context>
|
||||
<name>AccountCore</name>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="446"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="447"/>
|
||||
<source>drawer_menu_account_connection_status_connected</source>
|
||||
<extracomment>"Connecté"</extracomment>
|
||||
<translation>Verbunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="449"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="450"/>
|
||||
<source>drawer_menu_account_connection_status_refreshing</source>
|
||||
<translation>Aktualisiere…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="452"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="453"/>
|
||||
<source>drawer_menu_account_connection_status_progress</source>
|
||||
<translation>Verbinde…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="455"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="456"/>
|
||||
<source>drawer_menu_account_connection_status_failed</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="459"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="460"/>
|
||||
<source>drawer_menu_account_connection_status_cleared</source>
|
||||
<translation>Deaktiviert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="493"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="494"/>
|
||||
<source>manage_account_status_connected_summary</source>
|
||||
<extracomment>"Vous êtes en ligne et joignable."</extracomment>
|
||||
<translation>Sie sind online und erreichbar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="496"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="497"/>
|
||||
<source>manage_account_status_failed_summary</source>
|
||||
<extracomment>"Erreur de connexion, vérifiez vos paramètres."</extracomment>
|
||||
<translation>Verbindungsfehler, überprüfen Sie Ihre Einstellungen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="500"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="501"/>
|
||||
<source>manage_account_status_cleared_summary</source>
|
||||
<extracomment>"Compte désactivé, vous ne recevrez ni appel ni message."</extracomment>
|
||||
<translation>Konto deaktiviert, Sie erhalten keine Anrufe oder Nachrichten.</translation>
|
||||
|
|
@ -2757,19 +2757,19 @@ Stellen Sie sicher, dass Sie keine sensiblen Informationen teilen!</translation>
|
|||
<translation type="vanished">Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="164"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="165"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<extracomment>Erreur</extracomment>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="166"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="167"/>
|
||||
<source>information_popup_voicemail_address_undefined_message</source>
|
||||
<extracomment>L'URI de messagerie vocale n'est pas définie.</extracomment>
|
||||
<translation>Die Voicemail-URI ist nicht definiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="180"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="181"/>
|
||||
<source>account_settings_name_accessible_name</source>
|
||||
<extracomment>Account settings of %1</extracomment>
|
||||
<translation>Kontoeinstellungen von %1</translation>
|
||||
|
|
|
|||
|
|
@ -39,45 +39,45 @@
|
|||
<context>
|
||||
<name>AccountCore</name>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="446"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="447"/>
|
||||
<source>drawer_menu_account_connection_status_connected</source>
|
||||
<extracomment>"Connecté"</extracomment>
|
||||
<translation>Connected</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="449"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="450"/>
|
||||
<source>drawer_menu_account_connection_status_refreshing</source>
|
||||
<translation>Refreshing…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="452"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="453"/>
|
||||
<source>drawer_menu_account_connection_status_progress</source>
|
||||
<translation>Connecting…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="455"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="456"/>
|
||||
<source>drawer_menu_account_connection_status_failed</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="459"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="460"/>
|
||||
<source>drawer_menu_account_connection_status_cleared</source>
|
||||
<translation>Disabled</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="493"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="494"/>
|
||||
<source>manage_account_status_connected_summary</source>
|
||||
<extracomment>"Vous êtes en ligne et joignable."</extracomment>
|
||||
<translation>You are online and reachable.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="496"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="497"/>
|
||||
<source>manage_account_status_failed_summary</source>
|
||||
<extracomment>"Erreur de connexion, vérifiez vos paramètres."</extracomment>
|
||||
<translation>Connection error, check your settings.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="500"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="501"/>
|
||||
<source>manage_account_status_cleared_summary</source>
|
||||
<extracomment>"Compte désactivé, vous ne recevrez ni appel ni message."</extracomment>
|
||||
<translation>Account disabled, you will not receive calls or messages.</translation>
|
||||
|
|
@ -2690,19 +2690,19 @@ Only your correspondent can decrypt them.</translation>
|
|||
<context>
|
||||
<name>Contact</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="164"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="165"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<extracomment>Erreur</extracomment>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="166"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="167"/>
|
||||
<source>information_popup_voicemail_address_undefined_message</source>
|
||||
<extracomment>L'URI de messagerie vocale n'est pas définie.</extracomment>
|
||||
<translation>The voicemail URI is not defined.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="180"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="181"/>
|
||||
<source>account_settings_name_accessible_name</source>
|
||||
<extracomment>Account settings of %1</extracomment>
|
||||
<translation>Account settings of %1</translation>
|
||||
|
|
|
|||
|
|
@ -39,45 +39,45 @@
|
|||
<context>
|
||||
<name>AccountCore</name>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="446"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="447"/>
|
||||
<source>drawer_menu_account_connection_status_connected</source>
|
||||
<extracomment>"Connecté"</extracomment>
|
||||
<translation>Connecté</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="449"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="450"/>
|
||||
<source>drawer_menu_account_connection_status_refreshing</source>
|
||||
<translation>En cours de rafraîchissement…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="452"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="453"/>
|
||||
<source>drawer_menu_account_connection_status_progress</source>
|
||||
<translation>Connexion…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="455"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="456"/>
|
||||
<source>drawer_menu_account_connection_status_failed</source>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="459"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="460"/>
|
||||
<source>drawer_menu_account_connection_status_cleared</source>
|
||||
<translation>Désactivé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="493"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="494"/>
|
||||
<source>manage_account_status_connected_summary</source>
|
||||
<extracomment>"Vous êtes en ligne et joignable."</extracomment>
|
||||
<translation>Vous êtes en ligne et joignable.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="496"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="497"/>
|
||||
<source>manage_account_status_failed_summary</source>
|
||||
<extracomment>"Erreur de connexion, vérifiez vos paramètres."</extracomment>
|
||||
<translation>Erreur de connexion, vérifiez vos paramètres.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="500"/>
|
||||
<location filename="../../core/account/AccountCore.cpp" line="501"/>
|
||||
<source>manage_account_status_cleared_summary</source>
|
||||
<extracomment>"Compte désactivé, vous ne recevrez ni appel ni message."</extracomment>
|
||||
<translation>Compte désactivé, vous ne recevrez ni appel ni message.</translation>
|
||||
|
|
@ -2665,19 +2665,19 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
|||
<context>
|
||||
<name>Contact</name>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="164"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="165"/>
|
||||
<source>information_popup_error_title</source>
|
||||
<extracomment>Erreur</extracomment>
|
||||
<translation>Erreur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="166"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="167"/>
|
||||
<source>information_popup_voicemail_address_undefined_message</source>
|
||||
<extracomment>L'URI de messagerie vocale n'est pas définie.</extracomment>
|
||||
<translation>L'URI de messagerie vocale n'est pas définie.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="180"/>
|
||||
<location filename="../../view/Control/Display/Contact/Contact.qml" line="181"/>
|
||||
<source>account_settings_name_accessible_name</source>
|
||||
<extracomment>Account settings of %1</extracomment>
|
||||
<translation>Paramaètres de compte de %1</translation>
|
||||
|
|
|
|||
|
|
@ -528,6 +528,11 @@ void AccountModel::setPresence(LinphoneEnums::Presence presence,
|
|||
QString presenceNote) {
|
||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||
|
||||
if (!mMonitor->getParams()->publishEnabled()) {
|
||||
lDebug() << log().arg("cannot set presence as publish is disabled in account params, return");
|
||||
return;
|
||||
}
|
||||
|
||||
lDebug() << log().arg("presence set request to: " + LinphoneEnums::toString(presence) + " | user initiated? " +
|
||||
(userInitiated ? "true" : "false") + " | reset to auto? " + (resetToAuto ? "true" : "false"));
|
||||
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@ Control.Control{
|
|||
height: contactStatusPopup.height
|
||||
ContactStatusPopup{
|
||||
id: contactStatusPopup
|
||||
visible: mainItem.account.core.publishEnabled
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: contactStatusPopup
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue