chatgui: local nicknames per channel member — edit via MemberPropsDialog, override display everywhere
This commit is contained in:
1 parent
373a2e4687
commit
85bdc00aaf
9 files changed
+87
-16
No files matched your search
@@ -214,7 +214,7 @@ int DbManager::getChannelMemberCount(const QString& chId) const {
|
||||
QList<ChannelMember> DbManager::getChannelMembers(const QString& chId, int offset, int limit) const {
|
||||
QList<ChannelMember> list;
|
||||
QString sql = QStringLiteral(
|
||||
"SELECT p.node_id, COALESCE(n.online,0), COALESCE(n.name,'')"
|
||||
"SELECT p.node_id, COALESCE(n.online,0), COALESCE(n.name,''), COALESCE(p.local_nick,'')"
|
||||
" FROM \"%1\" p LEFT JOIN nodes n ON p.node_id=n.node_id"
|
||||
" ORDER BY n.online DESC, p.node_id ASC LIMIT ? OFFSET ?"
|
||||
).arg(peersTableName(chId));
|
||||
@@ -227,12 +227,27 @@ QList<ChannelMember> DbManager::getChannelMembers(const QString& chId, int offse
|
||||
m.nodeId = (quint64)sqlite3_column_int64(stmt, 0);
|
||||
m.online = sqlite3_column_int(stmt, 1) != 0;
|
||||
m.name = colText(stmt, 2);
|
||||
m.localNick = colText(stmt, 3);
|
||||
list.append(m);
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
return list;
|
||||
}
|
||||
|
||||
QMap<quint64, QString> DbManager::getLocalNicknames(const QString& chId) const {
|
||||
QMap<quint64, QString> m;
|
||||
if (!m_db) return m;
|
||||
QString sql = QStringLiteral(
|
||||
"SELECT node_id, local_nick FROM \"%1\" WHERE local_nick IS NOT NULL AND local_nick != ''"
|
||||
).arg(peersTableName(chId));
|
||||
sqlite3_stmt* stmt = prepareOrNull(sql.toUtf8().constData());
|
||||
if (!stmt) return m;
|
||||
while (sqlite3_step(stmt) == SQLITE_ROW)
|
||||
m.insert((quint64)sqlite3_column_int64(stmt, 0), colText(stmt, 1));
|
||||
sqlite3_finalize(stmt);
|
||||
return m;
|
||||
}
|
||||
|
||||
void DbManager::cleanOrphanedPeers(const QString& chId) const {
|
||||
if (!m_db) return;
|
||||
QString sql = QStringLiteral(
|
||||
|
||||
@@ -49,6 +49,7 @@ struct ChannelMember {
|
||||
quint64 nodeId = 0;
|
||||
bool online = false;
|
||||
QString name; // from nodes.name, empty if not set
|
||||
QString localNick; // from peers.local_nick override, empty if not set
|
||||
};
|
||||
|
||||
struct NodeAddr {
|
||||
@@ -96,6 +97,7 @@ public:
|
||||
QList<ChannelMember> getChannelMembers(const QString& chId, int offset, int limit) const;
|
||||
void cleanOrphanedPeers(const QString& chId) const;
|
||||
QString getDisplayName(quint64 nodeId) const;
|
||||
QMap<quint64, QString> getLocalNicknames(const QString& chId) const;
|
||||
|
||||
/* ── Узлы ── */
|
||||
QByteArray loadNodeInfo(quint64 nodeId) const;
|
||||
|
||||
Reference in new issue
Block a user