mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-28 01:09:19 +00:00
feat(src/components/conference/ConferenceHelperModel): display sip addresses linked to calls in first
This commit is contained in:
parent
53cd7ef3ff
commit
543d6be72e
2 changed files with 28 additions and 4 deletions
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include "../../app/App.hpp"
|
||||
#include "../../utils/Utils.hpp"
|
||||
#include "../core/CoreManager.hpp"
|
||||
#include "../sip-addresses/SipAddressesProxyModel.hpp"
|
||||
#include "ConferenceAddModel.hpp"
|
||||
|
|
@ -32,16 +33,23 @@ using namespace std;
|
|||
// =============================================================================
|
||||
|
||||
ConferenceHelperModel::ConferenceHelperModel (QObject *parent) : QSortFilterProxyModel(parent) {
|
||||
shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
|
||||
|
||||
mConference = core->getConference();
|
||||
mCore = CoreManager::getInstance()->getCore();
|
||||
mConference = mCore->getConference();
|
||||
if (!mConference)
|
||||
mConference = core->createConferenceWithParams(core->createConferenceParams());
|
||||
mConference = mCore->createConferenceWithParams(mCore->createConferenceParams());
|
||||
|
||||
mConferenceAddModel = new ConferenceAddModel(this);
|
||||
App::getInstance()->getEngine()->setObjectOwnership(mConferenceAddModel, QQmlEngine::CppOwnership);
|
||||
|
||||
QObject::connect(this, &CallsListModel::rowsRemoved, [this] {
|
||||
invalidate();
|
||||
});
|
||||
QObject::connect(this, &CallsListModel::rowsInserted, [this] {
|
||||
invalidate();
|
||||
});
|
||||
|
||||
setSourceModel(new SipAddressesProxyModel(this));
|
||||
sort(0);
|
||||
}
|
||||
|
||||
QHash<int, QByteArray> ConferenceHelperModel::roleNames () const {
|
||||
|
|
@ -64,3 +72,16 @@ bool ConferenceHelperModel::filterAcceptsRow (int sourceRow, const QModelIndex &
|
|||
|
||||
return !mConferenceAddModel->contains(data["sipAddress"].toString());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool ConferenceHelperModel::lessThan (const QModelIndex &left, const QModelIndex &right) const {
|
||||
shared_ptr<linphone::Call> callA = mCore->findCallFromUri(
|
||||
::Utils::appStringToCoreString(left.data().toMap()["sipAddress"].toString())
|
||||
);
|
||||
shared_ptr<linphone::Call> callB = mCore->findCallFromUri(
|
||||
::Utils::appStringToCoreString(right.data().toMap()["sipAddress"].toString())
|
||||
);
|
||||
|
||||
return callA && !callB;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class ConferenceAddModel;
|
|||
|
||||
namespace linphone {
|
||||
class Conference;
|
||||
class Core;
|
||||
}
|
||||
|
||||
class ConferenceHelperModel : public QSortFilterProxyModel {
|
||||
|
|
@ -56,6 +57,7 @@ public:
|
|||
|
||||
protected:
|
||||
bool filterAcceptsRow (int sourceRow, const QModelIndex &sourceParent) const override;
|
||||
bool lessThan (const QModelIndex &left, const QModelIndex &right) const override;
|
||||
|
||||
private:
|
||||
ConferenceAddModel *getConferenceAddModel () const {
|
||||
|
|
@ -64,6 +66,7 @@ private:
|
|||
|
||||
ConferenceAddModel *mConferenceAddModel;
|
||||
|
||||
std::shared_ptr<linphone::Core> mCore;
|
||||
std::shared_ptr<linphone::Conference> mConference;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue