okular/core/annotations_p.h
Albert Astals Cid 8941e43488 Port away from more QLinkedLists
QLinkedList is gone from Qt6

The 1:1 port is std::list but we don't need iterator stability on
removal/insertion so just port to QList (one case to std::vector since
QList needs a copy constructor)
2022-03-22 00:11:55 +01:00

82 lines
2 KiB
C++

/*
SPDX-FileCopyrightText: 2007 Pino Toscano <pino@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef OKULAR_ANNOTATIONS_P_H
#define OKULAR_ANNOTATIONS_P_H
#include "annotations.h"
#include "area.h"
// qt/kde includes
#include <QColor>
#include <QDateTime>
#include <QString>
#include <QVariant>
class QTransform;
namespace Okular
{
class PagePrivate;
class AnnotationPrivate
{
public:
AnnotationPrivate();
OKULARCORE_EXPORT static AnnotationPrivate *get(Annotation *a);
virtual ~AnnotationPrivate();
AnnotationPrivate(const AnnotationPrivate &) = delete;
AnnotationPrivate &operator=(const AnnotationPrivate &) = delete;
/**
* Transforms the annotation coordinates with the transformation
* defined by @p matrix.
*/
void annotationTransform(const QTransform &matrix);
virtual void transform(const QTransform &matrix);
virtual void baseTransform(const QTransform &matrix);
virtual void resetTransformation();
virtual void translate(const NormalizedPoint &coord);
virtual void adjust(const NormalizedPoint &deltaCoord1, const NormalizedPoint &deltaCoord2);
virtual bool openDialogAfterCreation() const;
virtual void setAnnotationProperties(const QDomNode &node);
virtual bool canBeResized() const;
virtual AnnotationPrivate *getNewAnnotationPrivate() = 0;
/**
* Determines the distance of the closest point of the annotation to the
* given point @p x @p y @p xScale @p yScale
* @since 0.17
*/
virtual double distanceSqr(double x, double y, double xScale, double yScale) const;
PagePrivate *m_page;
QString m_author;
QString m_contents;
QString m_uniqueName;
QDateTime m_modifyDate;
QDateTime m_creationDate;
int m_flags;
NormalizedRect m_boundary;
NormalizedRect m_transformedBoundary;
Okular::Annotation::Style m_style;
Okular::Annotation::Window m_window;
QList<Okular::Annotation::Revision> m_revisions;
Annotation::DisposeDataFunction m_disposeFunc;
QVariant m_nativeId;
};
}
#endif