mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-03-21 17:55:21 -05:00
Mark more functions as [[nodiscard]] (#6320)
* Fix local variable double declaration. Took 44 seconds * Mark functions as [[nodiscard]] Took 31 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
27708d5964
commit
73763b5ee6
|
|
@ -57,27 +57,27 @@ protected:
|
|||
}
|
||||
|
||||
public:
|
||||
QString getName() const
|
||||
[[nodiscard]] QString getName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
QString getDescriptionUrl() const
|
||||
[[nodiscard]] QString getDescriptionUrl() const
|
||||
{
|
||||
return descriptionUrl;
|
||||
}
|
||||
QString getDownloadUrl() const
|
||||
[[nodiscard]] QString getDownloadUrl() const
|
||||
{
|
||||
return downloadUrl;
|
||||
}
|
||||
QString getCommitHash() const
|
||||
[[nodiscard]] QString getCommitHash() const
|
||||
{
|
||||
return commitHash;
|
||||
}
|
||||
QDate getPublishDate() const
|
||||
[[nodiscard]] QDate getPublishDate() const
|
||||
{
|
||||
return publishDate;
|
||||
}
|
||||
bool isCompatibleVersionFound() const
|
||||
[[nodiscard]] bool isCompatibleVersionFound() const
|
||||
{
|
||||
return compatibleVersionFound;
|
||||
}
|
||||
|
|
@ -97,15 +97,15 @@ protected:
|
|||
|
||||
protected:
|
||||
static bool downloadMatchesCurrentOS(const QString &fileName);
|
||||
virtual QString getReleaseChannelUrl() const = 0;
|
||||
[[nodiscard]] virtual QString getReleaseChannelUrl() const = 0;
|
||||
|
||||
public:
|
||||
Release *getLastRelease()
|
||||
{
|
||||
return lastRelease;
|
||||
}
|
||||
virtual QString getManualDownloadUrl() const = 0;
|
||||
virtual QString getName() const = 0;
|
||||
[[nodiscard]] virtual QString getManualDownloadUrl() const = 0;
|
||||
[[nodiscard]] virtual QString getName() const = 0;
|
||||
void checkForUpdates();
|
||||
signals:
|
||||
void finishedCheck(bool needToUpdate, bool isCompatible, Release *release);
|
||||
|
|
@ -122,12 +122,12 @@ public:
|
|||
explicit StableReleaseChannel() = default;
|
||||
~StableReleaseChannel() override = default;
|
||||
|
||||
QString getManualDownloadUrl() const override;
|
||||
[[nodiscard]] QString getManualDownloadUrl() const override;
|
||||
|
||||
QString getName() const override;
|
||||
[[nodiscard]] QString getName() const override;
|
||||
|
||||
protected:
|
||||
QString getReleaseChannelUrl() const override;
|
||||
[[nodiscard]] QString getReleaseChannelUrl() const override;
|
||||
protected slots:
|
||||
|
||||
void releaseListFinished() override;
|
||||
|
|
@ -143,12 +143,12 @@ public:
|
|||
BetaReleaseChannel() = default;
|
||||
~BetaReleaseChannel() override = default;
|
||||
|
||||
QString getManualDownloadUrl() const override;
|
||||
[[nodiscard]] QString getManualDownloadUrl() const override;
|
||||
|
||||
QString getName() const override;
|
||||
[[nodiscard]] QString getName() const override;
|
||||
|
||||
protected:
|
||||
QString getReleaseChannelUrl() const override;
|
||||
[[nodiscard]] QString getReleaseChannelUrl() const override;
|
||||
protected slots:
|
||||
|
||||
void releaseListFinished() override;
|
||||
|
|
|
|||
|
|
@ -27,22 +27,22 @@ public:
|
|||
{
|
||||
Type = typeCardDrag
|
||||
};
|
||||
int type() const override
|
||||
[[nodiscard]] int type() const override
|
||||
{
|
||||
return Type;
|
||||
}
|
||||
AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag = 0);
|
||||
QRectF boundingRect() const override
|
||||
[[nodiscard]] QRectF boundingRect() const override
|
||||
{
|
||||
return QRectF(0, 0, CARD_WIDTH, CARD_HEIGHT);
|
||||
}
|
||||
QPainterPath shape() const override;
|
||||
[[nodiscard]] QPainterPath shape() const override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
AbstractCardItem *getItem() const
|
||||
[[nodiscard]] AbstractCardItem *getItem() const
|
||||
{
|
||||
return item;
|
||||
}
|
||||
QPointF getHotSpot() const
|
||||
[[nodiscard]] QPointF getHotSpot() const
|
||||
{
|
||||
return hotSpot;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,22 +36,22 @@ public:
|
|||
ArrowItem(Player *_player, int _id, ArrowTarget *_startItem, ArrowTarget *_targetItem, const QColor &color);
|
||||
~ArrowItem() override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
QRectF boundingRect() const override
|
||||
[[nodiscard]] QRectF boundingRect() const override
|
||||
{
|
||||
return path.boundingRect();
|
||||
}
|
||||
QPainterPath shape() const override
|
||||
[[nodiscard]] QPainterPath shape() const override
|
||||
{
|
||||
return path;
|
||||
}
|
||||
void updatePath();
|
||||
void updatePath(const QPointF &endPoint);
|
||||
|
||||
int getId() const
|
||||
[[nodiscard]] int getId() const
|
||||
{
|
||||
return id;
|
||||
}
|
||||
Player *getPlayer() const
|
||||
[[nodiscard]] Player *getPlayer() const
|
||||
{
|
||||
return player;
|
||||
}
|
||||
|
|
@ -63,11 +63,11 @@ public:
|
|||
{
|
||||
targetItem = _item;
|
||||
}
|
||||
ArrowTarget *getStartItem() const
|
||||
[[nodiscard]] ArrowTarget *getStartItem() const
|
||||
{
|
||||
return startItem;
|
||||
}
|
||||
ArrowTarget *getTargetItem() const
|
||||
[[nodiscard]] ArrowTarget *getTargetItem() const
|
||||
{
|
||||
return targetItem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,18 +28,18 @@ public:
|
|||
explicit ArrowTarget(Player *_owner, QGraphicsItem *parent = nullptr);
|
||||
~ArrowTarget() override;
|
||||
|
||||
Player *getOwner() const
|
||||
[[nodiscard]] Player *getOwner() const
|
||||
{
|
||||
return owner;
|
||||
}
|
||||
|
||||
void setBeingPointedAt(bool _beingPointedAt);
|
||||
bool getBeingPointedAt() const
|
||||
[[nodiscard]] bool getBeingPointedAt() const
|
||||
{
|
||||
return beingPointedAt;
|
||||
}
|
||||
|
||||
const QList<ArrowItem *> &getArrowsFrom() const
|
||||
[[nodiscard]] const QList<ArrowItem *> &getArrowsFrom() const
|
||||
{
|
||||
return arrowsFrom;
|
||||
}
|
||||
|
|
@ -51,7 +51,7 @@ public:
|
|||
{
|
||||
arrowsFrom.removeOne(arrow);
|
||||
}
|
||||
const QList<ArrowItem *> &getArrowsTo() const
|
||||
[[nodiscard]] const QList<ArrowItem *> &getArrowsTo() const
|
||||
{
|
||||
return arrowsTo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public:
|
|||
{
|
||||
Type = typeCard
|
||||
};
|
||||
int type() const override
|
||||
[[nodiscard]] int type() const override
|
||||
{
|
||||
return Type;
|
||||
}
|
||||
|
|
@ -62,13 +62,13 @@ public:
|
|||
CardZoneLogic *_zone = nullptr);
|
||||
|
||||
void retranslateUi();
|
||||
CardZoneLogic *getZone() const
|
||||
[[nodiscard]] CardZoneLogic *getZone() const
|
||||
{
|
||||
return zone;
|
||||
}
|
||||
void setZone(CardZoneLogic *_zone);
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
QPoint getGridPoint() const
|
||||
[[nodiscard]] QPoint getGridPoint() const
|
||||
{
|
||||
return gridPoint;
|
||||
}
|
||||
|
|
@ -76,11 +76,11 @@ public:
|
|||
{
|
||||
gridPoint = _gridPoint;
|
||||
}
|
||||
QPoint getGridPos() const
|
||||
[[nodiscard]] QPoint getGridPos() const
|
||||
{
|
||||
return gridPoint;
|
||||
}
|
||||
Player *getOwner() const
|
||||
[[nodiscard]] Player *getOwner() const
|
||||
{
|
||||
return owner;
|
||||
}
|
||||
|
|
@ -88,32 +88,32 @@ public:
|
|||
{
|
||||
owner = _owner;
|
||||
}
|
||||
bool getAttacking() const
|
||||
[[nodiscard]] bool getAttacking() const
|
||||
{
|
||||
return attacking;
|
||||
}
|
||||
void setAttacking(bool _attacking);
|
||||
const QMap<int, int> &getCounters() const
|
||||
[[nodiscard]] const QMap<int, int> &getCounters() const
|
||||
{
|
||||
return counters;
|
||||
}
|
||||
void setCounter(int _id, int _value);
|
||||
QString getAnnotation() const
|
||||
[[nodiscard]] QString getAnnotation() const
|
||||
{
|
||||
return annotation;
|
||||
}
|
||||
void setAnnotation(const QString &_annotation);
|
||||
bool getDoesntUntap() const
|
||||
[[nodiscard]] bool getDoesntUntap() const
|
||||
{
|
||||
return doesntUntap;
|
||||
}
|
||||
void setDoesntUntap(bool _doesntUntap);
|
||||
QString getPT() const
|
||||
[[nodiscard]] QString getPT() const
|
||||
{
|
||||
return pt;
|
||||
}
|
||||
void setPT(const QString &_pt);
|
||||
bool getDestroyOnZoneChange() const
|
||||
[[nodiscard]] bool getDestroyOnZoneChange() const
|
||||
{
|
||||
return destroyOnZoneChange;
|
||||
}
|
||||
|
|
@ -121,7 +121,7 @@ public:
|
|||
{
|
||||
destroyOnZoneChange = _destroy;
|
||||
}
|
||||
CardItem *getAttachedTo() const
|
||||
[[nodiscard]] CardItem *getAttachedTo() const
|
||||
{
|
||||
return attachedTo;
|
||||
}
|
||||
|
|
@ -134,7 +134,7 @@ public:
|
|||
{
|
||||
attachedCards.removeOne(card);
|
||||
}
|
||||
const QList<CardItem *> &getAttachedCards() const
|
||||
[[nodiscard]] const QList<CardItem *> &getAttachedCards() const
|
||||
{
|
||||
return attachedCards;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public:
|
|||
const QString &_originZone = QString());
|
||||
~DeckViewCard() override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
const QString &getOriginZone() const
|
||||
[[nodiscard]] const QString &getOriginZone() const
|
||||
{
|
||||
return originZone;
|
||||
}
|
||||
|
|
@ -71,34 +71,34 @@ private:
|
|||
QMultiMap<QString, DeckViewCard *> cardsByType;
|
||||
QList<QPair<int, int>> currentRowsAndCols;
|
||||
qreal width, height;
|
||||
int getCardTypeTextWidth() const;
|
||||
[[nodiscard]] int getCardTypeTextWidth() const;
|
||||
|
||||
public:
|
||||
enum
|
||||
{
|
||||
Type = typeDeckViewCardContainer
|
||||
};
|
||||
int type() const override
|
||||
[[nodiscard]] int type() const override
|
||||
{
|
||||
return Type;
|
||||
}
|
||||
explicit DeckViewCardContainer(const QString &_name);
|
||||
QRectF boundingRect() const override;
|
||||
[[nodiscard]] QRectF boundingRect() const override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
void addCard(DeckViewCard *card);
|
||||
void removeCard(DeckViewCard *card);
|
||||
const QList<DeckViewCard *> &getCards() const
|
||||
[[nodiscard]] const QList<DeckViewCard *> &getCards() const
|
||||
{
|
||||
return cards;
|
||||
}
|
||||
const QString &getName() const
|
||||
[[nodiscard]] const QString &getName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
void setWidth(qreal _width);
|
||||
|
||||
QList<QPair<int, int>> getRowsAndCols() const;
|
||||
QSizeF calculateBoundingRect(const QList<QPair<int, int>> &rowsAndCols) const;
|
||||
[[nodiscard]] QList<QPair<int, int>> getRowsAndCols() const;
|
||||
[[nodiscard]] QSizeF calculateBoundingRect(const QList<QPair<int, int>> &rowsAndCols) const;
|
||||
void rearrangeItems(const QList<QPair<int, int>> &rowsAndCols);
|
||||
};
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ public:
|
|||
{
|
||||
locked = _locked;
|
||||
}
|
||||
bool getLocked() const
|
||||
[[nodiscard]] bool getLocked() const
|
||||
{
|
||||
return locked;
|
||||
}
|
||||
|
|
@ -135,7 +135,7 @@ public:
|
|||
}
|
||||
void rearrangeItems();
|
||||
void updateContents();
|
||||
QList<MoveCard_ToZone> getSideboardPlan() const;
|
||||
[[nodiscard]] QList<MoveCard_ToZone> getSideboardPlan() const;
|
||||
void resetSideboardPlan();
|
||||
void applySideboardPlan(const QList<MoveCard_ToZone> &plan);
|
||||
};
|
||||
|
|
@ -162,7 +162,7 @@ public:
|
|||
{
|
||||
deckViewScene->setLocked(_locked);
|
||||
}
|
||||
QList<MoveCard_ToZone> getSideboardPlan() const
|
||||
[[nodiscard]] QList<MoveCard_ToZone> getSideboardPlan() const
|
||||
{
|
||||
return deckViewScene->getSideboardPlan();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ signals:
|
|||
|
||||
public:
|
||||
explicit ToggleButton(QWidget *parent = nullptr);
|
||||
bool getState() const
|
||||
[[nodiscard]] bool getState() const
|
||||
{
|
||||
return state;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class DlgCreateToken : public QDialog
|
|||
Q_OBJECT
|
||||
public:
|
||||
explicit DlgCreateToken(const QStringList &_predefinedTokens, QWidget *parent = nullptr);
|
||||
TokenInfo getTokenInfo() const;
|
||||
[[nodiscard]] TokenInfo getTokenInfo() const;
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
|
|
|
|||
|
|
@ -34,10 +34,10 @@ public:
|
|||
QStringList exprs = QStringList(),
|
||||
uint numberOfHits = 1,
|
||||
bool autoPlay = false);
|
||||
QString getExpr() const;
|
||||
QStringList getExprs() const;
|
||||
uint getNumberOfHits() const;
|
||||
bool isAutoPlay() const;
|
||||
[[nodiscard]] QString getExpr() const;
|
||||
[[nodiscard]] QStringList getExprs() const;
|
||||
[[nodiscard]] uint getNumberOfHits() const;
|
||||
[[nodiscard]] bool isAutoPlay() const;
|
||||
};
|
||||
|
||||
#endif // DLG_MOVE_TOP_CARDS_UNTIL_H
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ public:
|
|||
QGraphicsItem *parent = nullptr,
|
||||
QAction *_doubleClickAction = nullptr,
|
||||
bool _highlightable = true);
|
||||
QRectF boundingRect() const override;
|
||||
[[nodiscard]] QRectF boundingRect() const override;
|
||||
void setWidth(double _width);
|
||||
void setActive(bool _active);
|
||||
bool getActive() const
|
||||
[[nodiscard]] bool getActive() const
|
||||
{
|
||||
return active;
|
||||
}
|
||||
|
|
@ -77,18 +77,18 @@ private:
|
|||
|
||||
public:
|
||||
explicit PhasesToolbar(QGraphicsItem *parent = nullptr);
|
||||
QRectF boundingRect() const override;
|
||||
[[nodiscard]] QRectF boundingRect() const override;
|
||||
void retranslateUi();
|
||||
void setHeight(double _height);
|
||||
double getWidth() const
|
||||
[[nodiscard]] double getWidth() const
|
||||
{
|
||||
return width;
|
||||
}
|
||||
int phaseCount() const
|
||||
[[nodiscard]] int phaseCount() const
|
||||
{
|
||||
return buttonList.size();
|
||||
}
|
||||
QString getLongPhaseName(int phase) const;
|
||||
[[nodiscard]] QString getLongPhaseName(int phase) const;
|
||||
public slots:
|
||||
void setActivePhase(int phase);
|
||||
void triggerPhaseAction(int phase);
|
||||
|
|
|
|||
|
|
@ -49,15 +49,15 @@ public:
|
|||
}
|
||||
|
||||
// expose useful actions/menus if PlayerMenu needs them
|
||||
QMenu *revealLibrary() const
|
||||
[[nodiscard]] QMenu *revealLibrary() const
|
||||
{
|
||||
return mRevealLibrary;
|
||||
}
|
||||
QMenu *lendLibraryMenu() const
|
||||
[[nodiscard]] QMenu *lendLibraryMenu() const
|
||||
{
|
||||
return mLendLibrary;
|
||||
}
|
||||
QMenu *revealTopCardMenu() const
|
||||
[[nodiscard]] QMenu *revealTopCardMenu() const
|
||||
{
|
||||
return mRevealTopCard;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public:
|
|||
return utilityMenu;
|
||||
}
|
||||
|
||||
bool getShortcutsActive() const
|
||||
[[nodiscard]] bool getShortcutsActive() const
|
||||
{
|
||||
return shortcutsActive;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
void moveOneCardUntil(CardItem *card);
|
||||
void stopMoveTopCardsUntil();
|
||||
|
||||
bool isMovingCardsUntil() const
|
||||
[[nodiscard]] bool isMovingCardsUntil() const
|
||||
{
|
||||
return movingCardsUntil;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,13 +28,13 @@ public:
|
|||
{
|
||||
Type = typeOther
|
||||
};
|
||||
int type() const override
|
||||
[[nodiscard]] int type() const override
|
||||
{
|
||||
return Type;
|
||||
}
|
||||
|
||||
explicit PlayerArea(QGraphicsItem *parent = nullptr);
|
||||
QRectF boundingRect() const override
|
||||
[[nodiscard]] QRectF boundingRect() const override
|
||||
{
|
||||
return bRect;
|
||||
}
|
||||
|
|
@ -43,7 +43,7 @@ public:
|
|||
void setSize(qreal width, qreal height);
|
||||
|
||||
void setPlayerZoneId(int _playerZoneId);
|
||||
int getPlayerZoneId() const
|
||||
[[nodiscard]] int getPlayerZoneId() const
|
||||
{
|
||||
return playerZoneId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,39 +27,39 @@ public:
|
|||
bool localPlayerIsSpectator;
|
||||
QMap<int, ServerInfo_User> spectators;
|
||||
|
||||
bool isSpectator() const
|
||||
[[nodiscard]] bool isSpectator() const
|
||||
{
|
||||
return localPlayerIsSpectator;
|
||||
}
|
||||
|
||||
bool isJudge() const
|
||||
[[nodiscard]] bool isJudge() const
|
||||
{
|
||||
return localPlayerIsJudge;
|
||||
}
|
||||
|
||||
int getLocalPlayerId() const
|
||||
[[nodiscard]] int getLocalPlayerId() const
|
||||
{
|
||||
return localPlayerId;
|
||||
}
|
||||
|
||||
const QMap<int, Player *> &getPlayers() const
|
||||
[[nodiscard]] const QMap<int, Player *> &getPlayers() const
|
||||
{
|
||||
return players;
|
||||
}
|
||||
|
||||
int getPlayerCount() const
|
||||
[[nodiscard]] int getPlayerCount() const
|
||||
{
|
||||
return players.size();
|
||||
}
|
||||
|
||||
Player *getActiveLocalPlayer(int activePlayer) const;
|
||||
[[nodiscard]] Player *getActiveLocalPlayer(int activePlayer) const;
|
||||
bool isLocalPlayer(int playerId);
|
||||
|
||||
Player *addPlayer(int playerId, const ServerInfo_User &info);
|
||||
|
||||
void removePlayer(int playerId);
|
||||
|
||||
Player *getPlayer(int playerId) const;
|
||||
[[nodiscard]] Player *getPlayer(int playerId) const;
|
||||
|
||||
void onPlayerConceded(int playerId, bool conceded);
|
||||
|
||||
|
|
@ -70,17 +70,17 @@ public:
|
|||
return playerId == getLocalPlayerId();
|
||||
}
|
||||
|
||||
const QMap<int, ServerInfo_User> &getSpectators() const
|
||||
[[nodiscard]] const QMap<int, ServerInfo_User> &getSpectators() const
|
||||
{
|
||||
return spectators;
|
||||
}
|
||||
|
||||
ServerInfo_User getSpectator(int playerId) const
|
||||
[[nodiscard]] ServerInfo_User getSpectator(int playerId) const
|
||||
{
|
||||
return spectators.value(playerId);
|
||||
}
|
||||
|
||||
QString getSpectatorName(int spectatorId) const
|
||||
[[nodiscard]] QString getSpectatorName(int spectatorId) const
|
||||
{
|
||||
return QString::fromStdString(spectators.value(spectatorId).name());
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ public:
|
|||
emit spectatorRemoved(spectatorId, spectatorInfo);
|
||||
}
|
||||
|
||||
AbstractGame *getGame() const
|
||||
[[nodiscard]] AbstractGame *getGame() const
|
||||
{
|
||||
return game;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,16 +63,16 @@ public:
|
|||
{
|
||||
cards.sortBy(options);
|
||||
}
|
||||
QString getName() const
|
||||
[[nodiscard]] QString getName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
QString getTranslatedName(bool theirOwn, GrammaticalCase gc) const;
|
||||
Player *getPlayer() const
|
||||
[[nodiscard]] QString getTranslatedName(bool theirOwn, GrammaticalCase gc) const;
|
||||
[[nodiscard]] Player *getPlayer() const
|
||||
{
|
||||
return player;
|
||||
}
|
||||
bool contentsKnown() const
|
||||
[[nodiscard]] bool contentsKnown() const
|
||||
{
|
||||
return cards.getContentsKnown();
|
||||
}
|
||||
|
|
@ -84,15 +84,15 @@ public:
|
|||
{
|
||||
alwaysRevealTopCard = _alwaysRevealTopCard;
|
||||
}
|
||||
bool getAlwaysRevealTopCard() const
|
||||
[[nodiscard]] bool getAlwaysRevealTopCard() const
|
||||
{
|
||||
return alwaysRevealTopCard;
|
||||
}
|
||||
bool getHasCardAttr() const
|
||||
[[nodiscard]] bool getHasCardAttr() const
|
||||
{
|
||||
return hasCardAttr;
|
||||
}
|
||||
bool getIsShufflable() const
|
||||
[[nodiscard]] bool getIsShufflable() const
|
||||
{
|
||||
return isShufflable;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ private:
|
|||
*/
|
||||
bool active = false;
|
||||
|
||||
bool isInverted() const;
|
||||
[[nodiscard]] bool isInverted() const;
|
||||
|
||||
private slots:
|
||||
/**
|
||||
|
|
@ -110,7 +110,7 @@ public:
|
|||
/**
|
||||
@return a QRectF of the TableZone bounding box.
|
||||
*/
|
||||
QRectF boundingRect() const override;
|
||||
[[nodiscard]] QRectF boundingRect() const override;
|
||||
|
||||
/**
|
||||
Render the TableZone
|
||||
|
|
@ -140,12 +140,12 @@ public:
|
|||
/**
|
||||
@return CardItem from grid location
|
||||
*/
|
||||
CardItem *getCardFromGrid(const QPoint &gridPoint) const;
|
||||
[[nodiscard]] CardItem *getCardFromGrid(const QPoint &gridPoint) const;
|
||||
|
||||
/**
|
||||
@return CardItem from coordinate location
|
||||
*/
|
||||
CardItem *getCardFromCoords(const QPointF &point) const;
|
||||
[[nodiscard]] CardItem *getCardFromCoords(const QPointF &point) const;
|
||||
|
||||
QPointF closestGridPoint(const QPointF &point) override;
|
||||
|
||||
|
|
@ -157,7 +157,7 @@ public:
|
|||
*/
|
||||
void resizeToContents();
|
||||
|
||||
int getMinimumWidth() const
|
||||
[[nodiscard]] int getMinimumWidth() const
|
||||
{
|
||||
return currentMinimumWidth;
|
||||
}
|
||||
|
|
@ -166,7 +166,7 @@ public:
|
|||
prepareGeometryChange();
|
||||
width = _width;
|
||||
}
|
||||
qreal getWidth() const
|
||||
[[nodiscard]] qreal getWidth() const
|
||||
{
|
||||
return width;
|
||||
}
|
||||
|
|
@ -188,13 +188,13 @@ private:
|
|||
/*
|
||||
Mapping functions for points to/from gridpoints.
|
||||
*/
|
||||
QPointF mapFromGrid(QPoint gridPoint) const;
|
||||
QPoint mapToGrid(const QPointF &mapPoint) const;
|
||||
[[nodiscard]] QPointF mapFromGrid(QPoint gridPoint) const;
|
||||
[[nodiscard]] QPoint mapToGrid(const QPointF &mapPoint) const;
|
||||
|
||||
/*
|
||||
Helper function to create a single key from a card stack location.
|
||||
*/
|
||||
int getCardStackMapKey(int x, int y) const
|
||||
[[nodiscard]] int getCardStackMapKey(int x, int y) const
|
||||
{
|
||||
return x + (y * 1000);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,12 +58,12 @@ private:
|
|||
|
||||
public:
|
||||
ZoneViewZone(ZoneViewZoneLogic *_logic, QGraphicsItem *parent);
|
||||
QRectF boundingRect() const override;
|
||||
[[nodiscard]] QRectF boundingRect() const override;
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||
void reorganizeCards() override;
|
||||
void initializeCards(const QList<const ServerInfo_Card *> &cardList = QList<const ServerInfo_Card *>());
|
||||
void setGeometry(const QRectF &rect) override;
|
||||
QRectF getOptimumRect() const
|
||||
[[nodiscard]] QRectF getOptimumRect() const
|
||||
{
|
||||
return optimumRect;
|
||||
}
|
||||
|
|
@ -83,7 +83,7 @@ signals:
|
|||
void wheelEventReceived(QGraphicsSceneWheelEvent *event);
|
||||
|
||||
protected:
|
||||
QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override;
|
||||
[[nodiscard]] QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override;
|
||||
void wheelEvent(QGraphicsSceneWheelEvent *event) override;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public:
|
|||
}
|
||||
|
||||
/** Returns whether the request has finished */
|
||||
bool getFinished() const
|
||||
[[nodiscard]] bool getFinished() const
|
||||
{
|
||||
return finished->text() == "True";
|
||||
}
|
||||
|
|
@ -74,13 +74,13 @@ public:
|
|||
}
|
||||
|
||||
/** Returns the start time as a string */
|
||||
QString getStartTime() const
|
||||
[[nodiscard]] QString getStartTime() const
|
||||
{
|
||||
return startTime->text();
|
||||
}
|
||||
|
||||
/** Returns the URL of the request */
|
||||
QString getUrl() const
|
||||
[[nodiscard]] QString getUrl() const
|
||||
{
|
||||
return url->text();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ private:
|
|||
QSet<QString> currentlyLoading; ///< Deduplication: contains pixmapCacheKey currently being loaded
|
||||
|
||||
/** @brief Returns cached redirect URL for the given original URL, if available. */
|
||||
QUrl getCachedRedirect(const QUrl &originalUrl) const;
|
||||
[[nodiscard]] QUrl getCachedRedirect(const QUrl &originalUrl) const;
|
||||
|
||||
/** @brief Loads redirect cache from disk. */
|
||||
void loadRedirectCache();
|
||||
|
|
|
|||
|
|
@ -37,25 +37,25 @@ public:
|
|||
explicit CardPictureToLoad(const ExactCard &_card);
|
||||
|
||||
/** @return The card being loaded. */
|
||||
const ExactCard &getCard() const
|
||||
[[nodiscard]] const ExactCard &getCard() const
|
||||
{
|
||||
return card;
|
||||
}
|
||||
|
||||
/** @return The current URL being attempted. */
|
||||
QString getCurrentUrl() const
|
||||
[[nodiscard]] QString getCurrentUrl() const
|
||||
{
|
||||
return currentUrl;
|
||||
}
|
||||
|
||||
/** @return The current set being attempted. */
|
||||
CardSetPtr getCurrentSet() const
|
||||
[[nodiscard]] CardSetPtr getCurrentSet() const
|
||||
{
|
||||
return currentSet;
|
||||
}
|
||||
|
||||
/** @return The short name of the current set, or empty string if no set. */
|
||||
QString getSetName() const;
|
||||
[[nodiscard]] QString getSetName() const;
|
||||
|
||||
/**
|
||||
* @brief Transforms a URL template into a concrete URL for this card/set.
|
||||
|
|
|
|||
|
|
@ -27,18 +27,18 @@ public:
|
|||
void insertWidgetAtIndex(QWidget *toInsert, int index);
|
||||
|
||||
void addItem(QLayoutItem *item) override;
|
||||
int count() const override;
|
||||
QLayoutItem *itemAt(int index) const override;
|
||||
[[nodiscard]] int count() const override;
|
||||
[[nodiscard]] QLayoutItem *itemAt(int index) const override;
|
||||
QLayoutItem *takeAt(int index) override;
|
||||
void setGeometry(const QRect &rect) override;
|
||||
QSize minimumSize() const override;
|
||||
QSize sizeHint() const override;
|
||||
[[nodiscard]] QSize minimumSize() const override;
|
||||
[[nodiscard]] QSize sizeHint() const override;
|
||||
void setMaxColumns(int _maxColumns);
|
||||
void setMaxRows(int _maxRows);
|
||||
int calculateMaxColumns() const;
|
||||
int calculateRowsForColumns(int columns) const;
|
||||
int calculateMaxRows() const;
|
||||
int calculateColumnsForRows(int rows) const;
|
||||
[[nodiscard]] int calculateMaxColumns() const;
|
||||
[[nodiscard]] int calculateRowsForColumns(int columns) const;
|
||||
[[nodiscard]] int calculateMaxRows() const;
|
||||
[[nodiscard]] int calculateColumnsForRows(int rows) const;
|
||||
void setDirection(Qt::Orientation _direction);
|
||||
|
||||
private:
|
||||
|
|
@ -50,7 +50,7 @@ private:
|
|||
Qt::Orientation flowDirection;
|
||||
|
||||
// Calculate the preferred size of the layout
|
||||
QSize calculatePreferredSize() const;
|
||||
[[nodiscard]] QSize calculatePreferredSize() const;
|
||||
};
|
||||
|
||||
#endif // OVERLAP_LAYOUT_H
|
||||
|
|
|
|||
|
|
@ -20,15 +20,15 @@ public:
|
|||
void toggleSymbol();
|
||||
void setColorActive(bool active);
|
||||
void updateOpacity();
|
||||
bool isColorActive() const
|
||||
[[nodiscard]] bool isColorActive() const
|
||||
{
|
||||
return isActive;
|
||||
};
|
||||
QString getSymbol() const
|
||||
[[nodiscard]] QString getSymbol() const
|
||||
{
|
||||
return symbol;
|
||||
};
|
||||
QChar getSymbolChar() const
|
||||
[[nodiscard]] QChar getSymbolChar() const
|
||||
{
|
||||
return symbol[0];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -233,9 +233,7 @@ ExactCard DeckEditorDeckDockWidget::getCurrentCard()
|
|||
const QString zoneName = gparent.sibling(gparent.row(), 1).data(Qt::EditRole).toString();
|
||||
|
||||
if (!current.model()->hasChildren(current.sibling(current.row(), 0))) {
|
||||
QString cardName = current.sibling(current.row(), 1).data().toString();
|
||||
QString providerId = current.sibling(current.row(), 4).data().toString();
|
||||
if (ExactCard selectedCard = CardDatabaseManager::query()->getCard({cardName, providerId})) {
|
||||
if (ExactCard selectedCard = CardDatabaseManager::query()->getCard({cardName, cardProviderID})) {
|
||||
return selectedCard;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class DeckListStyleProxy : public QIdentityProxyModel
|
|||
public:
|
||||
using QIdentityProxyModel::QIdentityProxyModel;
|
||||
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
[[nodiscard]] QVariant data(const QModelIndex &index, int role) const override;
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_DECK_LIST_STYLE_PROXY_H
|
||||
|
|
|
|||
|
|
@ -34,16 +34,16 @@ signals:
|
|||
public:
|
||||
explicit DlgConnect(QWidget *parent = nullptr);
|
||||
~DlgConnect() override;
|
||||
QString getHost() const;
|
||||
int getPort() const
|
||||
[[nodiscard]] QString getHost() const;
|
||||
[[nodiscard]] int getPort() const
|
||||
{
|
||||
return portEdit->text().toInt();
|
||||
}
|
||||
QString getPlayerName() const
|
||||
[[nodiscard]] QString getPlayerName() const
|
||||
{
|
||||
return playernameEdit->text();
|
||||
}
|
||||
QString getPassword() const
|
||||
[[nodiscard]] QString getPassword() const
|
||||
{
|
||||
return passwordEdit->text();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,15 +23,15 @@ public:
|
|||
QString email = QString(),
|
||||
QString country = QString(),
|
||||
QString realName = QString());
|
||||
QString getEmail() const
|
||||
[[nodiscard]] QString getEmail() const
|
||||
{
|
||||
return emailEdit->text();
|
||||
}
|
||||
QString getCountry() const
|
||||
[[nodiscard]] QString getCountry() const
|
||||
{
|
||||
return countryEdit->currentIndex() == 0 ? "" : countryEdit->currentText();
|
||||
}
|
||||
QString getRealName() const
|
||||
[[nodiscard]] QString getRealName() const
|
||||
{
|
||||
return realnameEdit->text();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,19 +20,19 @@ class DlgForgotPasswordChallenge : public QDialog
|
|||
Q_OBJECT
|
||||
public:
|
||||
explicit DlgForgotPasswordChallenge(QWidget *parent = nullptr);
|
||||
QString getHost() const
|
||||
[[nodiscard]] QString getHost() const
|
||||
{
|
||||
return hostEdit->text();
|
||||
}
|
||||
int getPort() const
|
||||
[[nodiscard]] int getPort() const
|
||||
{
|
||||
return portEdit->text().toInt();
|
||||
}
|
||||
QString getPlayerName() const
|
||||
[[nodiscard]] QString getPlayerName() const
|
||||
{
|
||||
return playernameEdit->text();
|
||||
}
|
||||
QString getEmail() const
|
||||
[[nodiscard]] QString getEmail() const
|
||||
{
|
||||
return emailEdit->text();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public:
|
|||
* to use it, since otherwise it will get destroyed once this dlg is destroyed
|
||||
* @return The DeckLoader
|
||||
*/
|
||||
virtual DeckLoader *getDeckList() const = 0;
|
||||
[[nodiscard]] virtual DeckLoader *getDeckList() const = 0;
|
||||
|
||||
protected:
|
||||
void setText(const QString &text);
|
||||
|
|
@ -67,7 +67,7 @@ private:
|
|||
public:
|
||||
explicit DlgLoadDeckFromClipboard(QWidget *parent = nullptr);
|
||||
|
||||
DeckLoader *getDeckList() const override
|
||||
[[nodiscard]] DeckLoader *getDeckList() const override
|
||||
{
|
||||
return deckList;
|
||||
}
|
||||
|
|
@ -90,7 +90,7 @@ private:
|
|||
public:
|
||||
explicit DlgEditDeckInClipboard(const DeckLoader &deckList, bool _annotated, QWidget *parent = nullptr);
|
||||
|
||||
DeckLoader *getDeckList() const override
|
||||
[[nodiscard]] DeckLoader *getDeckList() const override
|
||||
{
|
||||
return deckLoader;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ private slots:
|
|||
|
||||
public:
|
||||
explicit DlgLoadRemoteDeck(AbstractClient *_client, QWidget *parent = nullptr);
|
||||
int getDeckId() const;
|
||||
[[nodiscard]] int getDeckId() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ public:
|
|||
QStringList getAllCardsForSet();
|
||||
void populateCardList();
|
||||
void updateCardDisplayWidgets();
|
||||
bool isChecked() const;
|
||||
[[nodiscard]] bool isChecked() const;
|
||||
DlgSelectSetForCards *parent;
|
||||
QString setName;
|
||||
bool expanded;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public:
|
|||
void setText(const QString &text) const;
|
||||
void setClickable(bool _clickable);
|
||||
void setBuddy(QWidget *_buddy);
|
||||
QString getText() const
|
||||
[[nodiscard]] QString getText() const
|
||||
{
|
||||
return bannerLabel->text();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public:
|
|||
|
||||
void setCard(const CardInfoPtr &newCard, const QString &_currentZone);
|
||||
void getAllSetsForCurrentCard();
|
||||
DeckListModel *getDeckModel() const
|
||||
[[nodiscard]] DeckListModel *getDeckModel() const
|
||||
{
|
||||
return deckModel;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ private:
|
|||
QAction *messageClicked;
|
||||
QMap<QString, QVector<UserMessagePosition>> userMessagePositions;
|
||||
|
||||
QTextFragment getFragmentUnderMouse(const QPoint &pos) const;
|
||||
[[nodiscard]] QTextFragment getFragmentUnderMouse(const QPoint &pos) const;
|
||||
QTextCursor prepareBlock(bool same = false);
|
||||
void appendCardTag(QTextCursor &cursor, const QString &cardName);
|
||||
void appendUrlTag(QTextCursor &cursor, QString url);
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ class ServerInfo_User;
|
|||
class UserListProxy
|
||||
{
|
||||
public:
|
||||
virtual bool isOwnUserRegistered() const = 0;
|
||||
virtual QString getOwnUsername() const = 0;
|
||||
virtual bool isUserBuddy(const QString &userName) const = 0;
|
||||
virtual bool isUserIgnored(const QString &userName) const = 0;
|
||||
virtual const ServerInfo_User *getOnlineUser(const QString &userName) const = 0; // Can return nullptr
|
||||
[[nodiscard]] virtual bool isOwnUserRegistered() const = 0;
|
||||
[[nodiscard]] virtual QString getOwnUsername() const = 0;
|
||||
[[nodiscard]] virtual bool isUserBuddy(const QString &userName) const = 0;
|
||||
[[nodiscard]] virtual bool isUserIgnored(const QString &userName) const = 0;
|
||||
[[nodiscard]] virtual const ServerInfo_User *getOnlineUser(const QString &userName) const = 0; // Can return nullptr
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_USERLISTPROXY_H
|
||||
|
|
|
|||
|
|
@ -20,39 +20,39 @@ public:
|
|||
void debugPrint() const;
|
||||
|
||||
// Getter methods for card prices
|
||||
const QJsonObject &getCardhoarder() const
|
||||
[[nodiscard]] const QJsonObject &getCardhoarder() const
|
||||
{
|
||||
return cardhoarder;
|
||||
}
|
||||
const QJsonObject &getCardkingdom() const
|
||||
[[nodiscard]] const QJsonObject &getCardkingdom() const
|
||||
{
|
||||
return cardkingdom;
|
||||
}
|
||||
const QJsonObject &getCardmarket() const
|
||||
[[nodiscard]] const QJsonObject &getCardmarket() const
|
||||
{
|
||||
return cardmarket;
|
||||
}
|
||||
const QJsonObject &getFace2face() const
|
||||
[[nodiscard]] const QJsonObject &getFace2face() const
|
||||
{
|
||||
return face2face;
|
||||
}
|
||||
const QJsonObject &getManapool() const
|
||||
[[nodiscard]] const QJsonObject &getManapool() const
|
||||
{
|
||||
return manapool;
|
||||
}
|
||||
const QJsonObject &getMtgstocks() const
|
||||
[[nodiscard]] const QJsonObject &getMtgstocks() const
|
||||
{
|
||||
return mtgstocks;
|
||||
}
|
||||
const QJsonObject &getScg() const
|
||||
[[nodiscard]] const QJsonObject &getScg() const
|
||||
{
|
||||
return scg;
|
||||
}
|
||||
const QJsonObject &getTcgl() const
|
||||
[[nodiscard]] const QJsonObject &getTcgl() const
|
||||
{
|
||||
return tcgl;
|
||||
}
|
||||
const QJsonObject &getTcgplayer() const
|
||||
[[nodiscard]] const QJsonObject &getTcgplayer() const
|
||||
{
|
||||
return tcgplayer;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public:
|
|||
explicit TabEdhRec(TabSupervisor *_tabSupervisor);
|
||||
|
||||
void retranslateUi() override;
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
auto cardName = cardToQuery.isNull() ? QString() : cardToQuery->getName();
|
||||
return tr("EDHREC: ") + cardName;
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ private:
|
|||
|
||||
public:
|
||||
explicit ShutdownDialog(QWidget *parent = nullptr);
|
||||
QString getReason() const;
|
||||
int getMinutes() const;
|
||||
[[nodiscard]] QString getReason() const;
|
||||
[[nodiscard]] int getMinutes() const;
|
||||
};
|
||||
|
||||
class TabAdmin : public Tab
|
||||
|
|
@ -62,11 +62,11 @@ private slots:
|
|||
public:
|
||||
TabAdmin(TabSupervisor *_tabSupervisor, AbstractClient *_client, bool _fullAdmin);
|
||||
void retranslateUi() override;
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
return tr("Administration");
|
||||
}
|
||||
bool getLocked() const
|
||||
[[nodiscard]] bool getLocked() const
|
||||
{
|
||||
return locked;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public:
|
|||
void retranslateUi() override;
|
||||
|
||||
/** @brief Returns the tab text, including modified mark if applicable. */
|
||||
QString getTabText() const override;
|
||||
[[nodiscard]] QString getTabText() const override;
|
||||
|
||||
/** @brief Creates menus for deck editing and view options. */
|
||||
void createMenus() override;
|
||||
|
|
|
|||
|
|
@ -183,9 +183,9 @@ public:
|
|||
void updatePlayerListDockTitle();
|
||||
bool closeRequest() override;
|
||||
|
||||
QString getTabText() const override;
|
||||
[[nodiscard]] QString getTabText() const override;
|
||||
|
||||
AbstractGame *getGame() const
|
||||
[[nodiscard]] AbstractGame *getGame() const
|
||||
{
|
||||
return game;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public:
|
|||
TabLog(TabSupervisor *_tabSupervisor, AbstractClient *_client);
|
||||
~TabLog() override;
|
||||
void retranslateUi() override;
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
return tr("Logs");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ signals:
|
|||
public:
|
||||
TabReplays(TabSupervisor *_tabSupervisor, AbstractClient *_client, const ServerInfo_User *currentUserInfo);
|
||||
void retranslateUi() override;
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
return tr("Game Replays");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ private:
|
|||
QAction *aLeaveRoom;
|
||||
QAction *aOpenChatSettings;
|
||||
QAction *aClearChat;
|
||||
QString sanitizeHtml(QString dirty) const;
|
||||
[[nodiscard]] QString sanitizeHtml(QString dirty) const;
|
||||
|
||||
QStringList autocompleteUserList;
|
||||
QCompleter *completer;
|
||||
|
|
@ -106,23 +106,23 @@ public:
|
|||
void retranslateUi() override;
|
||||
void tabActivated() override;
|
||||
void processRoomEvent(const RoomEvent &event);
|
||||
int getRoomId() const
|
||||
[[nodiscard]] int getRoomId() const
|
||||
{
|
||||
return roomId;
|
||||
}
|
||||
const QMap<int, QString> &getGameTypes() const
|
||||
[[nodiscard]] const QMap<int, QString> &getGameTypes() const
|
||||
{
|
||||
return gameTypes;
|
||||
}
|
||||
QString getChannelName() const
|
||||
[[nodiscard]] QString getChannelName() const
|
||||
{
|
||||
return roomName;
|
||||
}
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
return roomName;
|
||||
}
|
||||
const ServerInfo_User *getUserInfo() const
|
||||
[[nodiscard]] const ServerInfo_User *getUserInfo() const
|
||||
{
|
||||
return ownUser;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ private:
|
|||
public:
|
||||
TabServer(TabSupervisor *_tabSupervisor, AbstractClient *_client);
|
||||
void retranslateUi() override;
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
return tr("Server");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ class CloseButton : public QAbstractButton
|
|||
Q_OBJECT
|
||||
public:
|
||||
explicit CloseButton(QWidget *parent = nullptr);
|
||||
QSize sizeHint() const override;
|
||||
inline QSize minimumSizeHint() const override
|
||||
[[nodiscard]] QSize sizeHint() const override;
|
||||
[[nodiscard]] QSize minimumSizeHint() const override
|
||||
{
|
||||
return sizeHint();
|
||||
}
|
||||
|
|
@ -129,36 +129,36 @@ public:
|
|||
void start(const ServerInfo_User &userInfo);
|
||||
void startLocal(const QList<AbstractClient *> &_clients);
|
||||
void stop();
|
||||
bool getIsLocalGame() const
|
||||
[[nodiscard]] bool getIsLocalGame() const
|
||||
{
|
||||
return isLocalGame;
|
||||
}
|
||||
int getGameCount() const
|
||||
[[nodiscard]] int getGameCount() const
|
||||
{
|
||||
return gameTabs.size();
|
||||
}
|
||||
TabAccount *getTabAccount() const
|
||||
[[nodiscard]] TabAccount *getTabAccount() const
|
||||
{
|
||||
return tabAccount;
|
||||
}
|
||||
ServerInfo_User *getUserInfo() const
|
||||
[[nodiscard]] ServerInfo_User *getUserInfo() const
|
||||
{
|
||||
return userInfo;
|
||||
}
|
||||
AbstractClient *getClient() const;
|
||||
const UserListManager *getUserListManager() const
|
||||
[[nodiscard]] AbstractClient *getClient() const;
|
||||
[[nodiscard]] const UserListManager *getUserListManager() const
|
||||
{
|
||||
return userListManager;
|
||||
}
|
||||
const QMap<int, TabRoom *> &getRoomTabs() const
|
||||
[[nodiscard]] const QMap<int, TabRoom *> &getRoomTabs() const
|
||||
{
|
||||
return roomTabs;
|
||||
}
|
||||
QList<AbstractTabDeckEditor *> getDeckEditorTabs() const
|
||||
[[nodiscard]] QList<AbstractTabDeckEditor *> getDeckEditorTabs() const
|
||||
{
|
||||
return deckEditorTabs;
|
||||
}
|
||||
bool getAdminLocked() const;
|
||||
[[nodiscard]] bool getAdminLocked() const;
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
bool switchToGameTabIfAlreadyExists(const int gameId);
|
||||
static void actShowPopup(const QString &message);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ private:
|
|||
public:
|
||||
TabVisualDatabaseDisplay(TabSupervisor *_tabSupervisor);
|
||||
void retranslateUi() override;
|
||||
QString getTabText() const override
|
||||
[[nodiscard]] QString getTabText() const override
|
||||
{
|
||||
return tr("Visual Database Display");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ public:
|
|||
* @brief Get the display text for the tab.
|
||||
* @return Tab text with optional modification indicator.
|
||||
*/
|
||||
QString getTabText() const override;
|
||||
[[nodiscard]] QString getTabText() const override;
|
||||
|
||||
/**
|
||||
* @brief Update the currently selected card in the deck and UI.
|
||||
|
|
|
|||
|
|
@ -73,10 +73,10 @@ public:
|
|||
void setTabTitle(int index, const QString &title);
|
||||
|
||||
/// Get the currently active tab widget.
|
||||
QWidget *getCurrentTab() const;
|
||||
[[nodiscard]] QWidget *getCurrentTab() const;
|
||||
|
||||
/// Get the total number of tabs.
|
||||
int getTabCount() const;
|
||||
[[nodiscard]] int getTabCount() const;
|
||||
|
||||
VisualDeckEditorWidget *visualDeckView; ///< Visual deck editor widget.
|
||||
DeckAnalyticsWidget *deckAnalytics; ///< Deck analytics widget.
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public:
|
|||
void retranslateUi();
|
||||
void createSubTypeButtons();
|
||||
void updateSubTypeButtonsVisibility();
|
||||
int getMaxSubTypeCount() const;
|
||||
[[nodiscard]] int getMaxSubTypeCount() const;
|
||||
|
||||
void handleSubTypeToggled(const QString &mainType, bool active);
|
||||
void updateSubTypeFilter();
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public:
|
|||
explicit DeckPreviewTagDialog(const QStringList &knownTags,
|
||||
const QStringList &activeTags,
|
||||
QWidget *parent = nullptr);
|
||||
QStringList getActiveTags() const;
|
||||
[[nodiscard]] QStringList getActiveTags() const;
|
||||
void filterTags(const QString &text);
|
||||
|
||||
private slots:
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public:
|
|||
DeckPreviewTagItemWidget(const QString &tagName, bool isChecked, QWidget *parent = nullptr);
|
||||
|
||||
// Accessor for the checkbox widget
|
||||
QCheckBox *checkBox() const;
|
||||
[[nodiscard]] QCheckBox *checkBox() const;
|
||||
|
||||
private:
|
||||
QCheckBox *checkBox_; // Checkbox to represent the tag's state
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public:
|
|||
const QString &_filePath);
|
||||
void retranslateUi();
|
||||
QString getColorIdentity();
|
||||
QString getDisplayName() const;
|
||||
[[nodiscard]] QString getDisplayName() const;
|
||||
|
||||
VisualDeckStorageWidget *visualDeckStorageWidget;
|
||||
QVBoxLayout *layout;
|
||||
|
|
@ -47,7 +47,7 @@ public:
|
|||
bool filteredBySearch = false;
|
||||
bool filteredByColor = false;
|
||||
bool filteredByTags = false;
|
||||
bool checkVisibility() const;
|
||||
[[nodiscard]] bool checkVisibility() const;
|
||||
|
||||
signals:
|
||||
void deckLoadRequested(const QString &filePath);
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@ public:
|
|||
void createWidgetsForFiles();
|
||||
void createWidgetsForFolders();
|
||||
void flattenFolderStructure();
|
||||
QStringList gatherAllTagsFromFlowWidget() const;
|
||||
FlowWidget *getFlowWidget() const
|
||||
[[nodiscard]] QStringList gatherAllTagsFromFlowWidget() const;
|
||||
[[nodiscard]] FlowWidget *getFlowWidget() const
|
||||
{
|
||||
return flowWidget;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -47,14 +47,14 @@ public:
|
|||
|
||||
void retranslateUi();
|
||||
|
||||
bool getShowFolders() const;
|
||||
bool getDrawUnusedColorIdentities() const;
|
||||
bool getShowBannerCardComboBox() const;
|
||||
bool getShowTagFilter() const;
|
||||
bool getShowTagsOnDeckPreviews() const;
|
||||
int getUnusedColorIdentitiesOpacity() const;
|
||||
TooltipType getDeckPreviewTooltip() const;
|
||||
int getCardSize() const;
|
||||
[[nodiscard]] bool getShowFolders() const;
|
||||
[[nodiscard]] bool getDrawUnusedColorIdentities() const;
|
||||
[[nodiscard]] bool getShowBannerCardComboBox() const;
|
||||
[[nodiscard]] bool getShowTagFilter() const;
|
||||
[[nodiscard]] bool getShowTagsOnDeckPreviews() const;
|
||||
[[nodiscard]] int getUnusedColorIdentitiesOpacity() const;
|
||||
[[nodiscard]] TooltipType getDeckPreviewTooltip() const;
|
||||
[[nodiscard]] int getCardSize() const;
|
||||
|
||||
signals:
|
||||
void showFoldersChanged(bool enabled);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class VisualDeckStorageTagFilterWidget : public QWidget
|
|||
|
||||
VisualDeckStorageWidget *parent;
|
||||
|
||||
QSet<QString> gatherAllTags() const;
|
||||
[[nodiscard]] QSet<QString> gatherAllTags() const;
|
||||
void removeTagsNotInList(const QSet<QString> &tags);
|
||||
void addTagsIfNotPresent(const QSet<QString> &tags);
|
||||
void addTagIfNotPresent(const QString &tag);
|
||||
|
|
@ -26,7 +26,7 @@ class VisualDeckStorageTagFilterWidget : public QWidget
|
|||
|
||||
public:
|
||||
explicit VisualDeckStorageTagFilterWidget(VisualDeckStorageWidget *_parent);
|
||||
QStringList getAllKnownTags() const;
|
||||
[[nodiscard]] QStringList getAllKnownTags() const;
|
||||
void filterDecksBySelectedTags(const QList<DeckPreviewWidget *> &deckPreviews) const;
|
||||
|
||||
public slots:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public:
|
|||
VisualDeckStorageTagFilterWidget *tagFilterWidget;
|
||||
bool deckPreviewSelectionAnimationEnabled;
|
||||
|
||||
const VisualDeckStorageQuickSettingsWidget *settings() const;
|
||||
[[nodiscard]] const VisualDeckStorageQuickSettingsWidget *settings() const;
|
||||
|
||||
public slots:
|
||||
void createRootFolderWidget(); // Refresh the display of cards based on the current sorting option
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public:
|
|||
void clear();
|
||||
|
||||
/** @brief Returns the map of cards by name. */
|
||||
const CardNameMap &getCardList() const
|
||||
[[nodiscard]] const CardNameMap &getCardList() const
|
||||
{
|
||||
return cards;
|
||||
}
|
||||
|
|
@ -107,16 +107,16 @@ public:
|
|||
CardSetPtr getSet(const QString &setName);
|
||||
|
||||
/** @brief Returns a list of all sets in the database. */
|
||||
CardSetList getSetList() const;
|
||||
[[nodiscard]] CardSetList getSetList() const;
|
||||
|
||||
/** @brief Returns the current load status. */
|
||||
LoadStatus getLoadStatus() const
|
||||
[[nodiscard]] LoadStatus getLoadStatus() const
|
||||
{
|
||||
return loadStatus;
|
||||
}
|
||||
|
||||
/** @brief Returns the querier for performing card lookups. */
|
||||
CardDatabaseQuerier *query() const
|
||||
[[nodiscard]] CardDatabaseQuerier *query() const
|
||||
{
|
||||
return querier;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ public:
|
|||
* @param cardName Name of the card.
|
||||
* @return The preferred ExactCard.
|
||||
*/
|
||||
ExactCard getPreferredCard(const QString &cardName) const;
|
||||
[[nodiscard]] ExactCard getPreferredCard(const QString &cardName) const;
|
||||
|
||||
/**
|
||||
* @brief Returns the preferred printing of a card based on user preferences and set priority.
|
||||
|
|
|
|||
|
|
@ -59,31 +59,31 @@ public:
|
|||
}
|
||||
|
||||
/// @return The number of copies of this card in the deck.
|
||||
virtual int getNumber() const = 0;
|
||||
[[nodiscard]] virtual int getNumber() const = 0;
|
||||
|
||||
/// @param _number Set the number of copies of this card.
|
||||
virtual void setNumber(int _number) = 0;
|
||||
|
||||
/// @return The display name of this card.
|
||||
QString getName() const override = 0;
|
||||
[[nodiscard]] QString getName() const override = 0;
|
||||
|
||||
/// @param _name Set the display name of this card.
|
||||
virtual void setName(const QString &_name) = 0;
|
||||
|
||||
/// @return The provider identifier for this card (e.g., UUID).
|
||||
virtual QString getCardProviderId() const override = 0;
|
||||
[[nodiscard]] virtual QString getCardProviderId() const override = 0;
|
||||
|
||||
/// @param _cardProviderId Set the provider identifier for this card.
|
||||
virtual void setCardProviderId(const QString &_cardProviderId) = 0;
|
||||
|
||||
/// @return The abbreviated set code (e.g., "NEO").
|
||||
virtual QString getCardSetShortName() const override = 0;
|
||||
[[nodiscard]] virtual QString getCardSetShortName() const override = 0;
|
||||
|
||||
/// @param _cardSetShortName Set the abbreviated set code.
|
||||
virtual void setCardSetShortName(const QString &_cardSetShortName) = 0;
|
||||
|
||||
/// @return The collector number of the card within its set.
|
||||
virtual QString getCardCollectorNumber() const override = 0;
|
||||
[[nodiscard]] virtual QString getCardCollectorNumber() const override = 0;
|
||||
|
||||
/// @param _cardSetNumber Set the collector number.
|
||||
virtual void setCardCollectorNumber(const QString &_cardSetNumber) = 0;
|
||||
|
|
@ -96,7 +96,7 @@ public:
|
|||
*
|
||||
* @return 0
|
||||
*/
|
||||
int height() const override
|
||||
[[nodiscard]] int height() const override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -123,10 +123,10 @@ public:
|
|||
* identifying information about a node, regardless of type.
|
||||
* @{
|
||||
*/
|
||||
virtual QString getName() const = 0;
|
||||
virtual QString getCardProviderId() const = 0;
|
||||
virtual QString getCardSetShortName() const = 0;
|
||||
virtual QString getCardCollectorNumber() const = 0;
|
||||
[[nodiscard]] virtual QString getName() const = 0;
|
||||
[[nodiscard]] virtual QString getCardProviderId() const = 0;
|
||||
[[nodiscard]] virtual QString getCardSetShortName() const = 0;
|
||||
[[nodiscard]] virtual QString getCardCollectorNumber() const = 0;
|
||||
/// @}
|
||||
|
||||
/**
|
||||
|
|
@ -138,7 +138,7 @@ public:
|
|||
[[nodiscard]] virtual bool isDeckHeader() const = 0;
|
||||
|
||||
/// @return The parent node, or nullptr if this is the root.
|
||||
InnerDecklistNode *getParent() const
|
||||
[[nodiscard]] InnerDecklistNode *getParent() const
|
||||
{
|
||||
return parent;
|
||||
}
|
||||
|
|
@ -147,7 +147,7 @@ public:
|
|||
* @brief Compute the depth of this node in the tree.
|
||||
* @return Distance from the root (root = 0, children = 1, etc.).
|
||||
*/
|
||||
int depth() const;
|
||||
[[nodiscard]] int depth() const;
|
||||
|
||||
/**
|
||||
* @brief Compute the "height" of this node.
|
||||
|
|
@ -159,7 +159,7 @@ public:
|
|||
* - A card node has height 1.
|
||||
* - A group node containing cards has height 2.
|
||||
*/
|
||||
virtual int height() const = 0;
|
||||
[[nodiscard]] virtual int height() const = 0;
|
||||
|
||||
/**
|
||||
* @brief Compare this node against another for sorting.
|
||||
|
|
|
|||
|
|
@ -72,13 +72,13 @@ public:
|
|||
void write(QXmlStreamWriter *xml);
|
||||
|
||||
/// @return The plan name.
|
||||
QString getName() const
|
||||
[[nodiscard]] QString getName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
/// @return Const reference to the move list.
|
||||
const QList<MoveCard_ToZone> &getMoveList() const
|
||||
[[nodiscard]] const QList<MoveCard_ToZone> &getMoveList() const
|
||||
{
|
||||
return moveList;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ public:
|
|||
* @brief Compute the height of this node.
|
||||
* @return Maximum depth of descendants + 1.
|
||||
*/
|
||||
int height() const override;
|
||||
[[nodiscard]] int height() const override;
|
||||
|
||||
/**
|
||||
* @brief Count cards recursively under this node.
|
||||
|
|
@ -184,7 +184,7 @@ public:
|
|||
* If false, counts unique card nodes.
|
||||
* @return Total count.
|
||||
*/
|
||||
int recursiveCount(bool countTotalCards = false) const;
|
||||
[[nodiscard]] int recursiveCount(bool countTotalCards = false) const;
|
||||
|
||||
/**
|
||||
* @brief Compare this node against another for sorting.
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public:
|
|||
ServerInfo_Zone::ZoneType _type);
|
||||
~Server_CardZone();
|
||||
|
||||
const QList<Server_Card *> &getCards() const
|
||||
[[nodiscard]] const QList<Server_Card *> &getCards() const
|
||||
{
|
||||
return cards;
|
||||
}
|
||||
|
|
@ -65,7 +65,7 @@ public:
|
|||
int removeCard(Server_Card *card, bool &wasLookedAt);
|
||||
Server_Card *getCard(int id, int *position = nullptr, bool remove = false);
|
||||
|
||||
int getCardsBeingLookedAt() const
|
||||
[[nodiscard]] int getCardsBeingLookedAt() const
|
||||
{
|
||||
return cardsBeingLookedAt;
|
||||
}
|
||||
|
|
@ -73,28 +73,28 @@ public:
|
|||
{
|
||||
cardsBeingLookedAt = qMax(0, _cardsBeingLookedAt);
|
||||
}
|
||||
bool isCardAtPosLookedAt(int pos) const;
|
||||
bool hasCoords() const
|
||||
[[nodiscard]] bool isCardAtPosLookedAt(int pos) const;
|
||||
[[nodiscard]] bool hasCoords() const
|
||||
{
|
||||
return has_coords;
|
||||
}
|
||||
ServerInfo_Zone::ZoneType getType() const
|
||||
[[nodiscard]] ServerInfo_Zone::ZoneType getType() const
|
||||
{
|
||||
return type;
|
||||
}
|
||||
QString getName() const
|
||||
[[nodiscard]] QString getName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
Server_AbstractPlayer *getPlayer() const
|
||||
[[nodiscard]] Server_AbstractPlayer *getPlayer() const
|
||||
{
|
||||
return player;
|
||||
}
|
||||
void getInfo(ServerInfo_Zone *info, Server_AbstractParticipant *recipient, bool omniscient);
|
||||
|
||||
int getFreeGridColumn(int x, int y, const QString &cardName, bool dontStackSameName) const;
|
||||
bool isColumnEmpty(int x, int y) const;
|
||||
bool isColumnStacked(int x, int y) const;
|
||||
[[nodiscard]] int getFreeGridColumn(int x, int y, const QString &cardName, bool dontStackSameName) const;
|
||||
[[nodiscard]] bool isColumnEmpty(int x, int y) const;
|
||||
[[nodiscard]] bool isColumnStacked(int x, int y) const;
|
||||
void fixFreeSpaces(GameEventStorage &ges);
|
||||
void moveCardInRow(GameEventStorage &ges, Server_Card *card, int x, int y);
|
||||
void insertCard(Server_Card *card, int x, int y);
|
||||
|
|
@ -102,11 +102,11 @@ public:
|
|||
void shuffle(int start = 0, int end = -1);
|
||||
void clear();
|
||||
void addWritePermission(int playerId);
|
||||
const QSet<int> &getPlayersWithWritePermission() const
|
||||
[[nodiscard]] const QSet<int> &getPlayersWithWritePermission() const
|
||||
{
|
||||
return playersWithWritePermission;
|
||||
}
|
||||
bool getAlwaysRevealTopCard() const
|
||||
[[nodiscard]] bool getAlwaysRevealTopCard() const
|
||||
{
|
||||
return alwaysRevealTopCard;
|
||||
}
|
||||
|
|
@ -114,7 +114,7 @@ public:
|
|||
{
|
||||
alwaysRevealTopCard = _alwaysRevealTopCard;
|
||||
}
|
||||
bool getAlwaysLookAtTopCard() const
|
||||
[[nodiscard]] bool getAlwaysLookAtTopCard() const
|
||||
{
|
||||
return alwaysLookAtTopCard;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,11 +31,11 @@ public:
|
|||
GameEventStorageItem(const ::google::protobuf::Message &_event, int _playerId, EventRecipients _recipients);
|
||||
~GameEventStorageItem();
|
||||
|
||||
const GameEvent &getGameEvent() const
|
||||
[[nodiscard]] const GameEvent &getGameEvent() const
|
||||
{
|
||||
return *event;
|
||||
}
|
||||
EventRecipients getRecipients() const
|
||||
[[nodiscard]] EventRecipients getRecipients() const
|
||||
{
|
||||
return recipients;
|
||||
}
|
||||
|
|
@ -56,15 +56,15 @@ public:
|
|||
~GameEventStorage();
|
||||
|
||||
void setGameEventContext(const ::google::protobuf::Message &_gameEventContext);
|
||||
::google::protobuf::Message *getGameEventContext() const
|
||||
[[nodiscard]] ::google::protobuf::Message *getGameEventContext() const
|
||||
{
|
||||
return gameEventContext;
|
||||
}
|
||||
const QList<GameEventStorageItem *> &getGameEventList() const
|
||||
[[nodiscard]] const QList<GameEventStorageItem *> &getGameEventList() const
|
||||
{
|
||||
return gameEventList;
|
||||
}
|
||||
int getPrivatePlayerId() const
|
||||
[[nodiscard]] int getPrivatePlayerId() const
|
||||
{
|
||||
return privatePlayerId;
|
||||
}
|
||||
|
|
@ -96,7 +96,7 @@ public:
|
|||
ResponseContainer(int _cmdId);
|
||||
~ResponseContainer();
|
||||
|
||||
int getCmdId() const
|
||||
[[nodiscard]] int getCmdId() const
|
||||
{
|
||||
return cmdId;
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@ public:
|
|||
{
|
||||
responseExtension = _responseExtension;
|
||||
}
|
||||
::google::protobuf::Message *getResponseExtension() const
|
||||
[[nodiscard]] ::google::protobuf::Message *getResponseExtension() const
|
||||
{
|
||||
return responseExtension;
|
||||
}
|
||||
|
|
@ -116,11 +116,13 @@ public:
|
|||
{
|
||||
postResponseQueue.append(qMakePair(type, item));
|
||||
}
|
||||
const QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> &getPreResponseQueue() const
|
||||
[[nodiscard]] const QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> &
|
||||
getPreResponseQueue() const
|
||||
{
|
||||
return preResponseQueue;
|
||||
}
|
||||
const QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> &getPostResponseQueue() const
|
||||
[[nodiscard]] const QList<QPair<ServerMessage::MessageType, ::google::protobuf::Message *>> &
|
||||
getPostResponseQueue() const
|
||||
{
|
||||
return postResponseQueue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,14 +14,15 @@ public:
|
|||
ServerInfo_User_Container(const ServerInfo_User_Container &other);
|
||||
ServerInfo_User_Container &operator=(const ServerInfo_User_Container &other) = default;
|
||||
virtual ~ServerInfo_User_Container();
|
||||
ServerInfo_User *getUserInfo() const
|
||||
[[nodiscard]] ServerInfo_User *getUserInfo() const
|
||||
{
|
||||
return userInfo;
|
||||
}
|
||||
void setUserInfo(const ServerInfo_User &_userInfo);
|
||||
ServerInfo_User &
|
||||
copyUserInfo(ServerInfo_User &result, bool complete, bool internalInfo = false, bool sessionInfo = false) const;
|
||||
ServerInfo_User copyUserInfo(bool complete, bool internalInfo = false, bool sessionInfo = false) const;
|
||||
[[nodiscard]] ServerInfo_User
|
||||
copyUserInfo(bool complete, bool internalInfo = false, bool sessionInfo = false) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user