Zoom/center the page map so that all locations are in view

This commit is contained in:
Volker Krause
2023-06-18 11:08:03 +02:00
parent a3b8168744
commit 64a1316f9b
5 changed files with 79 additions and 0 deletions

22
src/locationhelper.h Normal file
View File

@@ -0,0 +1,22 @@
// SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
// SPDX-License-Identifier: LGPL-2.0-or-later
#include "linkpreviewer.h"
#include <QMetaType>
#include <QRectF>
/** Location related helper functions for QML. */
class LocationHelper
{
Q_GADGET
public:
/** Unite two rectanlges. */
Q_INVOKABLE static QRectF unite(const QRectF &r1, const QRectF &r2);
/** Returns the center of @p r. */
Q_INVOKABLE static QPointF center(const QRectF &r);
/** Returns the highest zoom level to fit @r into a map of size @p mapWidth x @p mapHeight. */
Q_INVOKABLE static float zoomToFit(const QRectF &r, float mapWidth, float mapHeight);
};
Q_DECLARE_METATYPE(LocationHelper)