mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-08 02:53:25 -08:00
[Client] Transient User Alts investigation tab (#7511)
* [Client] Transient User Alts investigation tab New TabAlts tab with user search, depth selector (1-3), and an alt table showing per-row match evidence (Via, Depth, Shared fan-out) alongside the account data. Sends Command_GetUserAlts with the requested depth and degrades gracefully against old servers (missing evidence fields render as dashes). Wired as a transient single-reuse tab via TabSupervisor::openTabAlts with no menu action or persisted setting; closed on disconnect like the other staff tabs. * Fix remaining review threads on the user alts tab - Switch to the User Alts tab when it is created, so the first investigate click does not open it in the background. - Treat an empty RespOk as "user not found" and use a generic message for error codes, matching what the server actually returns. - Exclude the depth-0 seed row from the related-account count. - Guard the reply with the requested user name so a stale response cannot overwrite a newer one. - Move the duplicated formatEpoch body into widgets/utility/epoch_format.h. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
933db4edd2
commit
88de1ff39b
7 changed files with 292 additions and 5 deletions
27
cockatrice/src/interface/widgets/utility/epoch_format.h
Normal file
27
cockatrice/src/interface/widgets/utility/epoch_format.h
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
/**
|
||||
* @file epoch_format.h
|
||||
* @brief Shared timestamp formatting for the moderation tables.
|
||||
*/
|
||||
|
||||
#ifndef EPOCH_FORMAT_H
|
||||
#define EPOCH_FORMAT_H
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QString>
|
||||
|
||||
/**
|
||||
* @brief Format a unix timestamp the way the moderation tabs show dates.
|
||||
*
|
||||
* @param ts Seconds since the epoch; 0 means "unknown".
|
||||
* @param unknownText Label returned for 0, translated by the caller so the
|
||||
* translation context stays with the tab.
|
||||
*/
|
||||
inline QString formatEpochTimestamp(quint64 ts, const QString &unknownText)
|
||||
{
|
||||
if (ts == 0) {
|
||||
return unknownText;
|
||||
}
|
||||
return QDateTime::fromSecsSinceEpoch(ts).toLocalTime().toString(QStringLiteral("yyyy-MM-dd HH:mm"));
|
||||
}
|
||||
|
||||
#endif // EPOCH_FORMAT_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue