mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-27 08:24:39 -07:00
Gate every share entry point on login, de-duplicate the share-link and color-identity logic behind DeckShareUtils and an injected querier, and replace the silent tray/status-bar notices with always-visible dialogs. - abstract_tab_deck_editor: explain that sharing requires a connection instead of silently doing nothing when logged out - tab_deck_storage: disable the share action on disconnect, reject folder/deck mixes and the root folder with clear warnings, re-enable Create on every entry/response so a dropped connection cannot leave the button disabled - tab_deck_storage_visual: same login gate for the context-menu entry, visible success/error dialogs, and a symmetric in-flight guard - getDeckColorIdentity now takes a CardDatabaseQuerier, dropping the CardDatabaseManager singleton access and enabling unit tests
63 lines
No EOL
1.6 KiB
C++
63 lines
No EOL
1.6 KiB
C++
/**
|
|
* @file share_bar_widget.h
|
|
* @ingroup DeckShareWidgets
|
|
*/
|
|
//! \todo Document this file.
|
|
|
|
#ifndef SHARE_BAR_WIDGET_H
|
|
#define SHARE_BAR_WIDGET_H
|
|
|
|
#include <QWidget>
|
|
|
|
class QLabel;
|
|
class QLineEdit;
|
|
class QPushButton;
|
|
|
|
/**
|
|
* @brief The activated toolbar used to create a temporary deck share.
|
|
*
|
|
* A single reusable component shared by the local visual deck storage and the
|
|
* remote server deck storage tabs, so the share workflow renders identically in
|
|
* both places. It owns its own widgets, strings, and layout; the owning tab only
|
|
* sets the count/hint text and reacts to the create/cancel signals.
|
|
*/
|
|
class ShareBarWidget final : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ShareBarWidget(QWidget *parent = nullptr);
|
|
|
|
void retranslateUi();
|
|
|
|
/** @return The trimmed name entered by the user. */
|
|
[[nodiscard]] QString name() const;
|
|
|
|
/** @brief Resets the name field to the given default. */
|
|
void setName(const QString &name);
|
|
|
|
/** @brief Sets the selected-count summary label text. */
|
|
void setCountText(const QString &text);
|
|
|
|
/** @brief Sets the explainer hint text, showing it when @p visible is true. */
|
|
void setHintText(const QString &text, bool visible);
|
|
|
|
/** @brief Enables or disables the create-share-link button (guards double submission). */
|
|
void setCreateEnabled(bool enabled);
|
|
|
|
/** @brief Moves keyboard focus to the name field. */
|
|
void focusName();
|
|
|
|
signals:
|
|
void createRequested();
|
|
void cancelRequested();
|
|
|
|
private:
|
|
QLabel *hintLabel;
|
|
QLineEdit *nameEdit;
|
|
QLabel *countLabel;
|
|
QPushButton *cancelButton;
|
|
QPushButton *createButton;
|
|
};
|
|
|
|
#endif // SHARE_BAR_WIDGET_H
|