Cockatrice/cockatrice/src/game_graphics/game_view.h
Lukas Brübach e834339c71 [Fonts] Fix pixel sizes and game overlay fonts from review
- Set the sizes the stylesheets carried with setPixelSize() rather than
  setPointSize(): home buttons (34), banner (24), home group box (20),
  the placeholder labels (14), the analytics drag handle (10), the EDHREC
  navigation buttons (24), the user info popup (11/14/11/10/11) and the
  game overlays (14/16/12). Points at 96 DPI were ~33% larger.
- The drag/total counters and tally columns keep the monospace family the
  stylesheets set, so digit widths stop changing as counts tick and
  white-space: pre stays aligned.
- applyDeckListFont() drops the cached tally rows before re-measuring, so
  previewing a larger DeckList font no longer leaves the tally clipped.
- Tally labels and the constructor/fontsChanged pairs in the shared-deck
  preview, quick setup, analytics panel, home box and public decks build
  their font once in a local lambda instead of twice.
2026-11-02 10:28:01 +01:00

61 lines
1.5 KiB
C++

/**
* @file game_view.h
* @ingroup GameGraphics
*/
//! \todo Document this file.
#ifndef GAMEVIEW_H
#define GAMEVIEW_H
#include "tally/tally.h"
#include <QGraphicsView>
#include <QList>
#include <QPointF>
#include <QRect>
#include <QRectF>
#include <QSize>
#include <qtmetamacros.h>
class GameScene;
class QGridLayout;
class QLabel;
class QRubberBand;
class QAction;
class QWidget;
class GameView : public QGraphicsView
{
Q_OBJECT
private:
QAction *aCloseMostRecentZoneView;
QRubberBand *rubberBand;
QLabel *dragCountLabel;
QLabel *totalCountLabel;
QWidget *tallyContainer;
QGridLayout *tallyLayout;
QPointF selectionOrigin;
QRect previousBandRect; ///< Last rubber-band rect for targeted repaint
QList<TallyRow> cachedTallyRows; ///< Cached entries to avoid redundant rebuilds
QSize rebuildTallyLabels(const QList<TallyRow> &entries);
void clearTallyLabels();
protected:
void resizeEvent(QResizeEvent *event) override;
private slots:
void startRubberBand(const QPointF &selectionOrigin);
void resizeRubberBand(const QPointF &cursorPoint, int selectedCount);
void stopRubberBand();
void refreshShortcuts();
void updateTotalSelectionCount(const QSize &viewSize = QSize());
void setFocusDisabled(bool disabled);
void applyDeckOverlayFonts();
public slots:
void updateSceneRect(const QRectF &rect);
public:
explicit GameView(GameScene *scene, QWidget *parent = nullptr);
};
#endif