summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2021-11-18 22:34:48 +0100
committerGitHub <noreply@github.com>2021-11-18 22:34:48 +0100
commit229d7be8684412a0e455482f594ed6ed600665b9 (patch)
tree682ab07abb60a03ab28a67ab0789687fa1523962 /src
parentFix video call filename and qtjdenticon for windows (diff)
parentFix colors and alignment in dialogs (diff)
downloadnheko-229d7be8684412a0e455482f594ed6ed600665b9.tar.xz
Merge pull request #806 from LorenDB/dialogFixes
Dialog fixes and improvements
Diffstat (limited to 'src')
-rw-r--r--src/InviteesModel.cpp18
-rw-r--r--src/InviteesModel.h1
-rw-r--r--src/timeline/TimelineViewManager.cpp7
-rw-r--r--src/timeline/TimelineViewManager.h2
4 files changed, 24 insertions, 4 deletions
diff --git a/src/InviteesModel.cpp b/src/InviteesModel.cpp

index e045581a..ad99c847 100644 --- a/src/InviteesModel.cpp +++ b/src/InviteesModel.cpp
@@ -16,6 +16,10 @@ InviteesModel::InviteesModel(QObject *parent) void InviteesModel::addUser(QString mxid) { + for (const auto &invitee : invitees_) + if (invitee->mxid_ == mxid) + return; + beginInsertRows(QModelIndex(), invitees_.count(), invitees_.count()); auto invitee = new Invitee{mxid, this}; @@ -30,6 +34,20 @@ InviteesModel::addUser(QString mxid) emit countChanged(); } +void +InviteesModel::removeUser(QString mxid) +{ + for (int i = 0; i < invitees_.length(); ++i) { + if (invitees_[i]->mxid_ == mxid) { + beginRemoveRows(QModelIndex(), i, i); + invitees_.removeAt(i); + endRemoveRows(); + emit countChanged(); + break; + } + } +} + QHash<int, QByteArray> InviteesModel::roleNames() const { diff --git a/src/InviteesModel.h b/src/InviteesModel.h
index fd64116b..65fb78d6 100644 --- a/src/InviteesModel.h +++ b/src/InviteesModel.h
@@ -43,6 +43,7 @@ public: InviteesModel(QObject *parent = nullptr); Q_INVOKABLE void addUser(QString mxid); + Q_INVOKABLE void removeUser(QString mxid); QHash<int, QByteArray> roleNames() const override; int rowCount(const QModelIndex & = QModelIndex()) const override diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index 84aa2c90..c5fe6b4b 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp
@@ -116,9 +116,10 @@ TimelineViewManager::updateColorPalette() QColor TimelineViewManager::userColor(QString id, QColor background) { - if (!userColors.contains(id)) - userColors.insert(id, QColor(utils::generateContrastingHexColor(id, background))); - return userColors.value(id); + QPair<QString, quint64> idx{id, background.rgba64()}; + if (!userColors.contains(idx)) + userColors.insert(idx, QColor(utils::generateContrastingHexColor(id, background))); + return userColors.value(idx); } QString diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h
index 6696b1c4..3e3952a8 100644 --- a/src/timeline/TimelineViewManager.h +++ b/src/timeline/TimelineViewManager.h
@@ -147,7 +147,7 @@ private: CallManager *callManager_ = nullptr; VerificationManager *verificationManager_ = nullptr; - QHash<QString, QColor> userColors; + QHash<QPair<QString, quint64>, QColor> userColors; }; Q_DECLARE_METATYPE(mtx::events::msg::KeyVerificationAccept) Q_DECLARE_METATYPE(mtx::events::msg::KeyVerificationCancel)