mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-10 20:13:24 -08:00
* [Client] Moderation and alts dashboards Turn the two staff tables into dashboards without behavior changes: TabModeration gets an identity header (display-size name, status, registered/last-login subline), Reports/Warnings/Bans/Alts count cards with an Open-graph deep link, full-width admin notes, and Alts/Sessions/Staff tabbed sections with tab memory. TabAlts gets toggle chips with match counts, bold usernames, palette-token dimming of shared-IP rows, and a resizable side card for the selected-user timeline with selection restore. Row activation works via Enter as well as double-click; async responses are guarded against stale investigations and retranslation re-applies cached dashboard data. * [Client] Report queue dashboard and status pills TabReport becomes a dashboard: selected-report identity header (display-size user, bold status, category/time/room subline), Description/Chat/Comments/Reported-user tabbed sections with tab memory, always-visible user context with empty cues, and bold reported users. ReportStatusDelegate paints palette-tinted status pills with paint-through selection, translated status strings, and font/elision handling. report_utils gains formatReportStatus plus an opt-out status-color flag so the delegate owns color in the mod queue while the user dialog keeps its colors. Async responses stay guarded; retranslation re-applies header and comment states. * Fix remaining review threads on the report queue dashboard - Read the raw report status from Qt::UserRole in DlgMyReports, so regular users can comment on their own open reports again. - Exclude the server's depth-0 seed row from the related-alt count. - Dim only IP matches shared by more than the pair, not every IP match. - Activate alts rows on double-click or Enter instead of `activated`, which fires on a single click on single-click platforms. - Fold the reported-user bolding pass into the fill loop. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
32 lines
1 KiB
C++
32 lines
1 KiB
C++
/**
|
|
* @file table_activation.h
|
|
* @brief Row activation for tables that must not navigate on a single click.
|
|
*/
|
|
|
|
#ifndef TABLE_ACTIVATION_H
|
|
#define TABLE_ACTIVATION_H
|
|
|
|
#include <functional>
|
|
|
|
class QModelIndex;
|
|
class QObject;
|
|
class QTableWidget;
|
|
|
|
/**
|
|
* @brief Call @p handler on double-click or Enter, never on a single click.
|
|
*
|
|
* QAbstractItemView::activated fires on a single click on platforms where
|
|
* SH_ItemView_ActivateItemOnSingleClick is set, so navigation actions must not
|
|
* use it. This connects doubleClicked and installs Return/Enter shortcuts that
|
|
* forward the current index.
|
|
*
|
|
* @param table The table whose rows activate.
|
|
* @param context Object that owns the connections; the handler is disconnected
|
|
* with it.
|
|
* @param handler Receives the activated row's index, which may be invalid.
|
|
*/
|
|
void connectTableActivation(QTableWidget *table,
|
|
QObject *context,
|
|
const std::function<void(const QModelIndex &)> &handler);
|
|
|
|
#endif // TABLE_ACTIVATION_H
|