- Fix undefined signals/functions that comes from bad visibility scope.
- Fix binding loop on cacheBuffer and wrong variables on call statistics. - Remove apostrophe from user-agent. - Add RemoteCardDAV into contact list. - Fix crash on starting a call while a conferenceInfo is loading. - Contact details redirection after creating one.
This commit is contained in:
parent
9ebdefe24a
commit
ef18622793
14 changed files with 26 additions and 18 deletions
|
|
@ -31,6 +31,7 @@
|
||||||
class AccountCore : public QObject, public AbstractObject {
|
class AccountCore : public QObject, public AbstractObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
Q_PROPERTY(QString contactAddress READ getContactAddress CONSTANT)
|
Q_PROPERTY(QString contactAddress READ getContactAddress CONSTANT)
|
||||||
Q_PROPERTY(QString identityAddress READ getIdentityAddress CONSTANT)
|
Q_PROPERTY(QString identityAddress READ getIdentityAddress CONSTANT)
|
||||||
Q_PROPERTY(QString pictureUri READ getPictureUri WRITE lSetPictureUri NOTIFY pictureUriChanged)
|
Q_PROPERTY(QString pictureUri READ getPictureUri WRITE lSetPictureUri NOTIFY pictureUriChanged)
|
||||||
|
|
@ -71,10 +72,9 @@ class AccountCore : public QObject, public AbstractObject {
|
||||||
Q_PROPERTY(QString audioVideoConferenceFactoryAddress READ getAudioVideoConferenceFactoryAddress WRITE
|
Q_PROPERTY(QString audioVideoConferenceFactoryAddress READ getAudioVideoConferenceFactoryAddress WRITE
|
||||||
lSetAudioVideoConferenceFactoryAddress NOTIFY audioVideoConferenceFactoryAddressChanged)
|
lSetAudioVideoConferenceFactoryAddress NOTIFY audioVideoConferenceFactoryAddressChanged)
|
||||||
Q_PROPERTY(QString limeServerUrl READ getLimeServerUrl WRITE lSetLimeServerUrl NOTIFY limeServerUrlChanged)
|
Q_PROPERTY(QString limeServerUrl READ getLimeServerUrl WRITE lSetLimeServerUrl NOTIFY limeServerUrlChanged)
|
||||||
|
|
||||||
DECLARE_CORE_GET(int, voicemailCount, VoicemailCount)
|
DECLARE_CORE_GET(int, voicemailCount, VoicemailCount)
|
||||||
DECLARE_CORE_GETSET_MEMBER(QString, voicemailAddress, VoicemailAddress)
|
DECLARE_CORE_GETSET_MEMBER(QString, voicemailAddress, VoicemailAddress)
|
||||||
|
|
||||||
public:
|
|
||||||
static QSharedPointer<AccountCore> create(const std::shared_ptr<linphone::Account> &account);
|
static QSharedPointer<AccountCore> create(const std::shared_ptr<linphone::Account> &account);
|
||||||
// Should be call from model Thread. Will be automatically in App thread after initialization
|
// Should be call from model Thread. Will be automatically in App thread after initialization
|
||||||
AccountCore(const std::shared_ptr<linphone::Account> &account);
|
AccountCore(const std::shared_ptr<linphone::Account> &account);
|
||||||
|
|
@ -170,6 +170,7 @@ signals:
|
||||||
void audioVideoConferenceFactoryAddressChanged();
|
void audioVideoConferenceFactoryAddressChanged();
|
||||||
void limeServerUrlChanged();
|
void limeServerUrlChanged();
|
||||||
void removed();
|
void removed();
|
||||||
|
// void voicemailAddressChanged();
|
||||||
|
|
||||||
// Account requests
|
// Account requests
|
||||||
void lSetPictureUri(QString pictureUri);
|
void lSetPictureUri(QString pictureUri);
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@ public:
|
||||||
class CallCore : public QObject, public AbstractObject {
|
class CallCore : public QObject, public AbstractObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
Q_PROPERTY(LinphoneEnums::CallStatus status READ getStatus NOTIFY statusChanged)
|
Q_PROPERTY(LinphoneEnums::CallStatus status READ getStatus NOTIFY statusChanged)
|
||||||
Q_PROPERTY(LinphoneEnums::CallDir dir READ getDir NOTIFY dirChanged)
|
Q_PROPERTY(LinphoneEnums::CallDir dir READ getDir NOTIFY dirChanged)
|
||||||
Q_PROPERTY(LinphoneEnums::CallState state READ getState NOTIFY stateChanged)
|
Q_PROPERTY(LinphoneEnums::CallState state READ getState NOTIFY stateChanged)
|
||||||
|
|
@ -140,7 +141,6 @@ class CallCore : public QObject, public AbstractObject {
|
||||||
|
|
||||||
DECLARE_GUI_GETSET(bool, isStarted, IsStarted)
|
DECLARE_GUI_GETSET(bool, isStarted, IsStarted)
|
||||||
|
|
||||||
public:
|
|
||||||
// Should be call from model Thread. Will be automatically in App thread after initialization
|
// Should be call from model Thread. Will be automatically in App thread after initialization
|
||||||
static QSharedPointer<CallCore> create(const std::shared_ptr<linphone::Call> &call);
|
static QSharedPointer<CallCore> create(const std::shared_ptr<linphone::Call> &call);
|
||||||
CallCore(const std::shared_ptr<linphone::Call> &call);
|
CallCore(const std::shared_ptr<linphone::Call> &call);
|
||||||
|
|
|
||||||
|
|
@ -97,14 +97,15 @@ ConferenceInfoCore::ConferenceInfoCore(std::shared_ptr<linphone::ConferenceInfo>
|
||||||
mIsScheduled = true;
|
mIsScheduled = true;
|
||||||
mDuration = 60;
|
mDuration = 60;
|
||||||
mEndDateTime = mDateTime.addSecs(mDuration * 60);
|
mEndDateTime = mDateTime.addSecs(mDuration * 60);
|
||||||
App::postModelSync([this]() {
|
App::postModelAsync([this]() {
|
||||||
auto defaultAccount = CoreModel::getInstance()->getCore()->getDefaultAccount();
|
auto defaultAccount = CoreModel::getInstance()->getCore()->getDefaultAccount();
|
||||||
if (defaultAccount) {
|
if (defaultAccount) {
|
||||||
auto accountAddress = defaultAccount->getContactAddress();
|
auto accountAddress = defaultAccount->getContactAddress();
|
||||||
if (accountAddress) {
|
if (accountAddress) {
|
||||||
auto cleanedClonedAddress = accountAddress->clone();
|
auto cleanedClonedAddress = accountAddress->clone();
|
||||||
cleanedClonedAddress->clean();
|
cleanedClonedAddress->clean();
|
||||||
mOrganizerAddress = Utils::coreStringToAppString(cleanedClonedAddress->asStringUriOnly());
|
auto address = Utils::coreStringToAppString(cleanedClonedAddress->asStringUriOnly());
|
||||||
|
App::postCoreAsync([this, address]() { setOrganizerAddress(address); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -31,19 +31,19 @@
|
||||||
class PayloadTypeCore : public QObject, public AbstractObject {
|
class PayloadTypeCore : public QObject, public AbstractObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
Q_ENUMS(Family)
|
Q_ENUMS(Family)
|
||||||
Q_PROPERTY(Family family MEMBER mFamily CONSTANT)
|
Q_PROPERTY(Family family MEMBER mFamily CONSTANT)
|
||||||
DECLARE_CORE_MEMBER(int, clockRate, ClockRate)
|
DECLARE_CORE_MEMBER(int, clockRate, ClockRate)
|
||||||
DECLARE_CORE_MEMBER(QString, recvFmtp, RecvFmtp)
|
DECLARE_CORE_MEMBER(QString, recvFmtp, RecvFmtp)
|
||||||
|
|
||||||
public:
|
|
||||||
enum Family { Audio, Video, Text };
|
enum Family { Audio, Video, Text };
|
||||||
|
|
||||||
static QSharedPointer<PayloadTypeCore> create(Family family,
|
static QSharedPointer<PayloadTypeCore> create(Family family,
|
||||||
const std::shared_ptr<linphone::PayloadType> &payloadType);
|
const std::shared_ptr<linphone::PayloadType> &payloadType);
|
||||||
|
|
||||||
PayloadTypeCore(Family family, const std::shared_ptr<linphone::PayloadType> &payloadType);
|
PayloadTypeCore(Family family, const std::shared_ptr<linphone::PayloadType> &payloadType);
|
||||||
PayloadTypeCore() {};
|
PayloadTypeCore(){};
|
||||||
~PayloadTypeCore();
|
~PayloadTypeCore();
|
||||||
|
|
||||||
void setSelf(QSharedPointer<PayloadTypeCore> me);
|
void setSelf(QSharedPointer<PayloadTypeCore> me);
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@
|
||||||
class SettingsCore : public QObject, public AbstractObject {
|
class SettingsCore : public QObject, public AbstractObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
// Security
|
// Security
|
||||||
Q_PROPERTY(bool vfsEnabled READ getVfsEnabled WRITE setVfsEnabled NOTIFY vfsEnabledChanged)
|
Q_PROPERTY(bool vfsEnabled READ getVfsEnabled WRITE setVfsEnabled NOTIFY vfsEnabledChanged)
|
||||||
|
|
||||||
|
|
@ -69,7 +70,6 @@ class SettingsCore : public QObject, public AbstractObject {
|
||||||
Q_PROPERTY(QString logsFolder READ getLogsFolder)
|
Q_PROPERTY(QString logsFolder READ getLogsFolder)
|
||||||
Q_PROPERTY(bool dnd READ dndEnabled WRITE lEnableDnd NOTIFY dndChanged)
|
Q_PROPERTY(bool dnd READ dndEnabled WRITE lEnableDnd NOTIFY dndChanged)
|
||||||
|
|
||||||
public:
|
|
||||||
static QSharedPointer<SettingsCore> create();
|
static QSharedPointer<SettingsCore> create();
|
||||||
SettingsCore(QObject *parent = Q_NULLPTR);
|
SettingsCore(QObject *parent = Q_NULLPTR);
|
||||||
virtual ~SettingsCore();
|
virtual ~SettingsCore();
|
||||||
|
|
|
||||||
|
|
@ -365,5 +365,6 @@ QString ToolModel::computeUserAgent(const std::shared_ptr<linphone::Config> &con
|
||||||
.arg(Utils::getApplicationProduct())
|
.arg(Utils::getApplicationProduct())
|
||||||
.arg(SettingsModel::getDeviceName(config).replace('\\', "\\\\").replace('(', "\\(").replace(')', "\\)"))
|
.arg(SettingsModel::getDeviceName(config).replace('\\', "\\\\").replace('(', "\\(").replace(')', "\\)"))
|
||||||
.arg(Utils::getOsProduct())
|
.arg(Utils::getOsProduct())
|
||||||
.arg(qVersion());
|
.arg(qVersion())
|
||||||
|
.remove("'");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -272,6 +272,7 @@ enum class MagicSearchSource {
|
||||||
Request = int(linphone::MagicSearch::Source::Request),
|
Request = int(linphone::MagicSearch::Source::Request),
|
||||||
FavoriteFriends = int(linphone::MagicSearch::Source::FavoriteFriends),
|
FavoriteFriends = int(linphone::MagicSearch::Source::FavoriteFriends),
|
||||||
ConferencesInfo = int(linphone::MagicSearch::Source::ConferencesInfo),
|
ConferencesInfo = int(linphone::MagicSearch::Source::ConferencesInfo),
|
||||||
|
RemoteCardDAV = int(linphone::MagicSearch::Source::RemoteCardDAV),
|
||||||
All = int(linphone::MagicSearch::Source::All)
|
All = int(linphone::MagicSearch::Source::All)
|
||||||
};
|
};
|
||||||
Q_ENUM_NS(MagicSearchSource);
|
Q_ENUM_NS(MagicSearchSource);
|
||||||
|
|
|
||||||
|
|
@ -38,14 +38,14 @@ RowLayout {
|
||||||
Switch {
|
Switch {
|
||||||
id: switchButton
|
id: switchButton
|
||||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||||
checked: propertyOwner[mainItem.propertyName]
|
checked: propertyOwner ? propertyOwner[mainItem.propertyName] : false
|
||||||
enabled: mainItem.enabled
|
enabled: mainItem.enabled
|
||||||
onCheckedChanged: mainItem.checkedChanged(checked)
|
onCheckedChanged: mainItem.checkedChanged(checked)
|
||||||
onToggled: binding.when = true
|
onToggled: binding.when = true
|
||||||
}
|
}
|
||||||
Binding {
|
Binding {
|
||||||
id: binding
|
id: binding
|
||||||
target: propertyOwner
|
target: propertyOwner ? propertyOwner : null
|
||||||
property: mainItem.propertyName
|
property: mainItem.propertyName
|
||||||
value: switchButton.checked
|
value: switchButton.checked
|
||||||
when: false
|
when: false
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
Item {
|
Item {
|
||||||
id: verticalLayoutSecondLine
|
id: verticalLayoutSecondLine
|
||||||
visible: contactDetail.useVerticalLayout
|
visible: mainItem.useVerticalLayout
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
Layout.preferredWidth: childrenRect.width
|
Layout.preferredWidth: childrenRect.width
|
||||||
Layout.preferredHeight: childrenRect.height
|
Layout.preferredHeight: childrenRect.height
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ ColumnLayout {
|
||||||
Layout.leftMargin: 16 * DefaultStyle.dp
|
Layout.leftMargin: 16 * DefaultStyle.dp
|
||||||
Layout.rightMargin: 16 * DefaultStyle.dp
|
Layout.rightMargin: 16 * DefaultStyle.dp
|
||||||
|
|
||||||
visible: mainItem.localVideoEnabled || mainItem.remoteVideoEnabled
|
visible: mainItem.call?.core.localVideoEnabled || mainItem.call?.core.remoteVideoEnabled || false
|
||||||
|
|
||||||
contentItem: ColumnLayout {
|
contentItem: ColumnLayout {
|
||||||
spacing: 12 * DefaultStyle.dp
|
spacing: 12 * DefaultStyle.dp
|
||||||
|
|
@ -140,4 +140,4 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Item{Layout.fillHeight: true}
|
Item{Layout.fillHeight: true}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ MainRightPanel {
|
||||||
if (contact.core.isSaved) {
|
if (contact.core.isSaved) {
|
||||||
var mainWin = UtilsCpp.getMainWindow()
|
var mainWin = UtilsCpp.getMainWindow()
|
||||||
UtilsCpp.smartShowWindow(mainWin)
|
UtilsCpp.smartShowWindow(mainWin)
|
||||||
mainWin.goToContactDetail(contact)
|
mainWin.displayContactPage(contact)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -302,8 +302,8 @@ Item {
|
||||||
delegate: Item {
|
delegate: Item {
|
||||||
Connections {
|
Connections {
|
||||||
target: modelData.core
|
target: modelData.core
|
||||||
onShowMwiChanged: voicemail.updateCumulatedMwi()
|
function onShowMwiChanged() {voicemail.updateCumulatedMwi()}
|
||||||
onVoicemailAddressChanged: voicemail.updateCumulatedMwi()
|
function onVoicemailAddressChanged(){voicemail.updateCumulatedMwi()}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -267,6 +267,10 @@ AbstractMainPage {
|
||||||
event.accepted = true
|
event.accepted = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// remove binding loop
|
||||||
|
onContentHeightChanged: Qt.callLater(function(){
|
||||||
|
historyListView.cacheBuffer = Math.max(contentHeight,0)
|
||||||
|
})
|
||||||
onActiveFocusChanged: if(activeFocus && currentIndex <0) currentIndex = 0
|
onActiveFocusChanged: if(activeFocus && currentIndex <0) currentIndex = 0
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
|
|
|
||||||
|
|
@ -237,7 +237,7 @@ AbstractMainPage {
|
||||||
searchBarText: searchBar.text
|
searchBarText: searchBar.text
|
||||||
hideSuggestions: true
|
hideSuggestions: true
|
||||||
showDefaultAddress: false
|
showDefaultAddress: false
|
||||||
sourceFlags: LinphoneEnums.MagicSearchSource.Friends | LinphoneEnums.MagicSearchSource.FavoriteFriends | LinphoneEnums.MagicSearchSource.LdapServers
|
sourceFlags: LinphoneEnums.MagicSearchSource.Friends | LinphoneEnums.MagicSearchSource.FavoriteFriends | LinphoneEnums.MagicSearchSource.LdapServers | LinphoneEnums.MagicSearchSource.RemoteCardDAV
|
||||||
onHighlightedContactChanged: mainItem.selectedContact = highlightedContact
|
onHighlightedContactChanged: mainItem.selectedContact = highlightedContact
|
||||||
onContactDeletionRequested: (contact) => {
|
onContactDeletionRequested: (contact) => {
|
||||||
mainItem.deleteContact(contact)
|
mainItem.deleteContact(contact)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue