Skip to content
Snippets Groups Projects
Commit 6697c86b authored by Nicolas Jager's avatar Nicolas Jager Committed by Guillaume Roguez
Browse files

BannedContactModel : allow to remove/unban a ContactMethod


[Guillaume: fix a nullptr access on account]
[Guillaume: less code line by using QVariant static function]
[Guillaume: few typo fixes]

Change-Id: I3f145cd0fdbcd02cd0820b27122abeaf52409164
Reviewed-by: default avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
parent 04bd4a97
Branches
Tags beta/202401261841
No related merge requests found
...@@ -97,6 +97,8 @@ BannedContactModel::data( const QModelIndex& index, int role ) const ...@@ -97,6 +97,8 @@ BannedContactModel::data( const QModelIndex& index, int role ) const
switch(role) { switch(role) {
case Qt::DisplayRole: case Qt::DisplayRole:
return d_ptr->m_lBanned[index.row()]->bestId(); return d_ptr->m_lBanned[index.row()]->bestId();
case static_cast<int>(ContactMethod::Role::Object):
return QVariant::fromValue(d_ptr->m_lBanned[index.row()]);
} }
break; break;
case Columns::COUNT__: case Columns::COUNT__:
...@@ -139,3 +141,24 @@ BannedContactModel::add(ContactMethod* cm) ...@@ -139,3 +141,24 @@ BannedContactModel::add(ContactMethod* cm)
d_ptr->m_lBanned << cm; d_ptr->m_lBanned << cm;
endInsertRows(); endInsertRows();
} }
/**
* this function removes a ContactMethod from the banned list.
* @param cm, the ContactMethod to remove from the list.
*/
void
BannedContactModel::remove(ContactMethod* cm)
{
auto rowIndex = d_ptr->m_lBanned.indexOf(cm);
beginRemoveRows(QModelIndex(), rowIndex, rowIndex);
d_ptr->m_lBanned.removeAt(rowIndex);
endRemoveRows();
if (!cm->account()) {
qWarning() << "BannedContactModel, cannot remove. cm->account is nullptr";
return;
}
ConfigurationManager::instance().addContact(cm->account()->id(), cm->uri());
}
...@@ -44,6 +44,7 @@ public: ...@@ -44,6 +44,7 @@ public:
// Helper // Helper
void add(ContactMethod* cm); void add(ContactMethod* cm);
void remove(ContactMethod* cm);
private: private:
virtual ~BannedContactModel(); virtual ~BannedContactModel();
......
...@@ -652,6 +652,11 @@ public Q_SLOTS: // METHODS ...@@ -652,6 +652,11 @@ public Q_SLOTS: // METHODS
DRing::removeContact(accountId.toStdString(), uri.toStdString(), ban); DRing::removeContact(accountId.toStdString(), uri.toStdString(), ban);
} }
void addContact(const QString &accountId, const QString &uri)
{
DRing::addContact(accountId.toStdString(), uri.toStdString());
}
uint64_t sendTextMessage(const QString& accountId, const QString& to, const QMap<QString,QString>& payloads) uint64_t sendTextMessage(const QString& accountId, const QString& to, const QMap<QString,QString>& payloads)
{ {
return DRing::sendAccountTextMessage(accountId.toStdString(), to.toStdString(), convertMap(payloads)); return DRing::sendAccountTextMessage(accountId.toStdString(), to.toStdString(), convertMap(payloads));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment