mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 09:33:25 -08:00
- 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.
61 lines
1.5 KiB
C++
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
|