Fix MapRuler dimensions tooltip and refactor

This commit is contained in:
BigBahss
2020-10-25 23:49:00 -04:00
committed by huderlem
parent 5927f3dd7b
commit bc0127430b
10 changed files with 110 additions and 97 deletions

View File

@@ -204,7 +204,6 @@ private slots:
void onHoveredMapMovementPermissionCleared();
void onSelectedMetatilesChanged();
void onWheelZoom(int);
void onMapRulerLengthChanged();
signals:
void objectsChanged();
@@ -213,6 +212,7 @@ signals:
void wildMonDataChanged();
void warpEventDoubleClicked(QString mapName, QString warpNum);
void currentMetatilesSelectionChanged();
void mapRulerStatusChanged(const QString &);
};
#endif // EDITOR_H

View File

@@ -128,6 +128,7 @@ private slots:
void openNewMapPopupWindow(int, QVariant);
void onNewMapCreated();
void onMapCacheCleared();
void onMapRulerStatusChanged(const QString &);
void on_action_NewMap_triggered();
void on_actionNew_Tileset_triggered();
@@ -207,6 +208,7 @@ private slots:
void on_lineEdit_filterBox_textChanged(const QString &arg1);
void moveEvent(QMoveEvent *event);
void closeEvent(QCloseEvent *);
void eventTabChanged(int index);
@@ -229,6 +231,7 @@ private slots:
private:
Ui::MainWindow *ui;
QLabel *label_MapRulerStatus;
TilesetEditor *tilesetEditor = nullptr;
RegionMapEditor *regionMapEditor = nullptr;
MapImageExporter *mapImageExporter = nullptr;

View File

@@ -22,6 +22,7 @@ protected:
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void drawForeground(QPainter *painter, const QRectF &rect);
void moveEvent(QMoveEvent *event);
};
//Q_DECLARE_METATYPE(GraphicsView)

View File

@@ -2,8 +2,7 @@
#define MAPRULER_H
#include <QGraphicsObject>
#include <QPainter>
#include <QColor>
#include <QLine>
class MapRuler : public QGraphicsObject, private QLine
@@ -14,11 +13,15 @@ public:
MapRuler(QColor innerColor = Qt::yellow, QColor borderColor = Qt::black) :
innerColor(innerColor),
borderColor(borderColor),
mapSize(QSize())
{
init();
}
void init();
mapSize(QSize()),
statusMessage(QString()),
xRuler(QRect()),
yRuler(QRect()),
cornerTick(QLine()),
anchored(false),
locked(false)
{ }
QRectF boundingRect() const override;
QPainterPath shape() const override;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override;
@@ -45,16 +48,18 @@ public:
// Ruler height in metatiles
int height() const { return qAbs(deltaY()); }
QString statusMessage;
public slots:
void mouseEvent(QGraphicsSceneMouseEvent *event);
void setMapDimensions(const QSize &size);
signals:
void statusChanged(const QString &statusMessage);
private:
QColor innerColor;
QColor borderColor;
QSize mapSize;
QString statusMessage;
QRect xRuler;
QRect yRuler;
QLineF cornerTick;
@@ -63,19 +68,13 @@ private:
static int thickness;
void init();
void setAnchor(const QPointF &scenePos);
void setEndPos(const QPointF &scenePos);
QPoint snapToWithinBounds(QPoint pos) const;
void setAnchor(const QPointF &scenePos, const QPoint &screenPos);
void endAnchor();
void setEndPos(const QPointF &scenePos, const QPoint &screenPos);
void showDimensions(const QPoint &screenPos) const;
void hideDimensions() const;
void updateGeometry();
int pixWidth() const { return width() * 16; }
int pixHeight() const { return height() * 16; }
signals:
void lengthChanged();
void deactivated(const QPoint &endPos);
};
#endif // MAPRULER_H