59 lines
1.7 KiB
C++
59 lines
1.7 KiB
C++
#ifndef IMAGECROPPER_P_H
|
|
#define IMAGECROPPER_P_H
|
|
|
|
#include "imagecropper_e.h"
|
|
|
|
#include <QtCore/QRect>
|
|
#include <QtGui/QPixmap>
|
|
#include <QtGui/QColor>
|
|
|
|
namespace {
|
|
const QRect INIT_CROPPING_RECT = QRect();
|
|
const QSizeF INIT_PROPORTION = QSizeF(1.0, 1.0);
|
|
}
|
|
|
|
class ImageCropperPrivate {
|
|
public:
|
|
ImageCropperPrivate() :
|
|
imageForCropping(QPixmap()),
|
|
croppingRect(INIT_CROPPING_RECT),
|
|
lastStaticCroppingRect(QRect()),
|
|
cursorPosition(CursorPositionUndefined),
|
|
isMousePressed(false),
|
|
isProportionFixed(false),
|
|
startMousePos(QPoint()),
|
|
proportion(INIT_PROPORTION),
|
|
deltas(INIT_PROPORTION),
|
|
backgroundColor(Qt::black),
|
|
croppingRectBorderColor(Qt::white)
|
|
{}
|
|
|
|
public:
|
|
// Изображение для обрезки
|
|
QPixmap imageForCropping;
|
|
// Область обрезки
|
|
QRectF croppingRect;
|
|
// Последняя фиксированная область обрезки
|
|
QRectF lastStaticCroppingRect;
|
|
// Позиция курсора относительно области обрезки
|
|
CursorPosition cursorPosition;
|
|
// Зажата ли левая кнопка мыши
|
|
bool isMousePressed;
|
|
// Фиксировать пропорции области обрезки
|
|
bool isProportionFixed;
|
|
// Начальная позиция курсора при изменении размера области обрезки
|
|
QPointF startMousePos;
|
|
// Пропорции
|
|
QSizeF proportion;
|
|
// Приращения
|
|
// width - приращение по x
|
|
// height - приращение по y
|
|
QSizeF deltas;
|
|
// Цвет заливки фона под изображением
|
|
QColor backgroundColor;
|
|
// Цвет рамки области обрезки
|
|
QColor croppingRectBorderColor;
|
|
};
|
|
|
|
#endif // IMAGECROPPER_P_H
|