unfinished zoom support
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
b0f95d1cae
commit
4e004b1d68
3 changed files with 196 additions and 149 deletions
|
@ -48,8 +48,8 @@ MapLocationDialog::MapLocationDialog(double x, double y, QWidget *parent) :
|
||||||
ui->vlMapDialog->setSpacing(widgetMargin);
|
ui->vlMapDialog->setSpacing(widgetMargin);
|
||||||
setMinimumSize(500 * screenRatio, 600 * screenRatio);
|
setMinimumSize(500 * screenRatio, 600 * screenRatio);
|
||||||
setMaximumSize(500 * screenRatio, 600 * screenRatio);
|
setMaximumSize(500 * screenRatio, 600 * screenRatio);
|
||||||
setMouseTracking(true);
|
|
||||||
|
|
||||||
|
zoomPercent = 100;
|
||||||
changeMode = false;
|
changeMode = false;
|
||||||
propUpdate = false;
|
propUpdate = false;
|
||||||
}
|
}
|
||||||
|
@ -79,10 +79,191 @@ void MapLocationDialog::setCayoPerico(bool isCayoPerico)
|
||||||
ui->hlMapDialog->removeItem(ui->vlPosLayout);
|
ui->hlMapDialog->removeItem(ui->vlPosLayout);
|
||||||
ui->hlMapDialog->addLayout(ui->vlPosLayout);
|
ui->hlMapDialog->addLayout(ui->vlPosLayout);
|
||||||
ui->labPos->setAlignment(Qt::AlignRight);
|
ui->labPos->setAlignment(Qt::AlignRight);
|
||||||
|
mapImage = QImage(":/img/mapcayoperico.jpg");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mapImage = QImage(":/img/mappreview.jpg");
|
||||||
}
|
}
|
||||||
drawPointOnMap(xpos_old, ypos_old);
|
drawPointOnMap(xpos_old, ypos_old);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MapLocationDialog::updatePosFromEvent(double x, double y)
|
||||||
|
{
|
||||||
|
QSize mapPixelSize = size();
|
||||||
|
double x_per = x / mapPixelSize.width(); // get X %
|
||||||
|
double y_per = y / mapPixelSize.height(); // get Y %
|
||||||
|
double x_pos, y_pos;
|
||||||
|
if (p_isCayoPerico) {
|
||||||
|
x_pos = x_per * 2340; // 2340 is 100% for X (Cayo Perico)
|
||||||
|
y_pos = y_per * -2340; // -2340 is 100% for Y (Cayo Perico)
|
||||||
|
x_pos = x_pos + 3560; // +3560 gets corrected for X (Cayo Perico)
|
||||||
|
y_pos = y_pos - 3980; // -3980 gets corrected for Y (Cayo Perico)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x_pos = x_per * 10000; // 10000 is 100% for X (Los Santos)
|
||||||
|
y_pos = y_per * -12000; // -12000 is 100% for Y (Los Santos)
|
||||||
|
x_pos = x_pos - 4000; // -4000 gets corrected for X (Los Santos)
|
||||||
|
y_pos = y_pos + 8000; // +8000 gets corrected for Y (Los Santos)
|
||||||
|
}
|
||||||
|
drawPointOnMap(x_pos, y_pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapLocationDialog::paintEvent(QPaintEvent *ev)
|
||||||
|
{
|
||||||
|
QPainter painter(this);
|
||||||
|
painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
|
||||||
|
|
||||||
|
// Screen Ratio
|
||||||
|
qreal screenRatio = AppEnv::screenRatio();
|
||||||
|
qreal screenRatioPR = AppEnv::screenRatioPR();
|
||||||
|
|
||||||
|
// Paint Map
|
||||||
|
const double zoomLevel = static_cast<double>(zoomPercent) / 100;
|
||||||
|
const QSize mapImageSize = mapImage.size();
|
||||||
|
const QPointF mapImageMid(static_cast<double>(mapImageSize.width()) / 2, static_cast<double>(mapImageSize.height()) / 2);
|
||||||
|
const QSizeF srcImageSize(static_cast<double>(mapImageSize.width()) / zoomLevel , static_cast<double>(mapImageSize.height()) / zoomLevel);
|
||||||
|
const QPointF mapImageTopLeft(mapImageMid.x() - (srcImageSize.width() / 2), mapImageMid.y() - (srcImageSize.height() / 2));
|
||||||
|
const QPointF mapImageBottomRight(mapImageMid.x() + (srcImageSize.width() / 2), mapImageMid.y() + (srcImageSize.height() / 2));
|
||||||
|
painter.drawImage(QRect(QPoint(0, 0), size()), mapImage, QRectF(mapImageTopLeft, mapImageBottomRight));
|
||||||
|
|
||||||
|
// Paint Marker
|
||||||
|
QSize mapPixelSize = size();
|
||||||
|
int pointMarkerSize = 8 * screenRatio;
|
||||||
|
int pointMarkerHalfSize = pointMarkerSize / 2;
|
||||||
|
double xpos_mp, ypos_mp;
|
||||||
|
if (p_isCayoPerico) {
|
||||||
|
double xpos_per = xpos_new - 3560; // correct X in reserve
|
||||||
|
double ypos_per = ypos_new + 3980; // correct y in reserve
|
||||||
|
xpos_per = xpos_per / 2340; // divide 100% for X
|
||||||
|
ypos_per = ypos_per / -2340; // divide 100% for Y
|
||||||
|
xpos_mp = xpos_per * mapPixelSize.width(); // locate window width pos
|
||||||
|
ypos_mp = ypos_per * mapPixelSize.height(); // locate window height pos
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
double xpos_per = xpos_new + 4000; // correct X in reserve
|
||||||
|
double ypos_per = ypos_new - 8000; // correct y in reserve
|
||||||
|
xpos_per = xpos_per / 10000; // divide 100% for X
|
||||||
|
ypos_per = ypos_per / -12000; // divide 100% for Y
|
||||||
|
xpos_mp = xpos_per * mapPixelSize.width(); // locate window width pos
|
||||||
|
ypos_mp = ypos_per * mapPixelSize.height(); // locate window height pos
|
||||||
|
}
|
||||||
|
QPointF pointMarkerPos(xpos_mp, ypos_mp);
|
||||||
|
if (screenRatioPR != 1) {
|
||||||
|
pointMarkerPos.setX(pointMarkerPos.x() - pointMarkerHalfSize + screenRatioPR);
|
||||||
|
pointMarkerPos.setY(pointMarkerPos.y() - pointMarkerHalfSize + screenRatioPR);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pointMarkerPos.setX(pointMarkerPos.x() - pointMarkerHalfSize);
|
||||||
|
pointMarkerPos.setY(pointMarkerPos.y() - pointMarkerHalfSize);
|
||||||
|
}
|
||||||
|
QPixmap mapMarkerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMarkerSize, pointMarkerSize));
|
||||||
|
painter.drawPixmap(pointMarkerPos, mapMarkerPixmap);
|
||||||
|
|
||||||
|
QDialog::paintEvent(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapLocationDialog::mouseMoveEvent(QMouseEvent *ev)
|
||||||
|
{
|
||||||
|
if (changeMode && ev->buttons() & Qt::LeftButton) {
|
||||||
|
#if QT_VERSION >= 0x060000
|
||||||
|
const QPointF localPos = ev->position();
|
||||||
|
#elif QT_VERSION >= 0x050000
|
||||||
|
const QPointF localPos = ev->localPos();
|
||||||
|
#else
|
||||||
|
const QPointF localPos = ev->posF();
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
qreal screenRatioPR = AppEnv::screenRatioPR();
|
||||||
|
if (screenRatioPR != 1) {
|
||||||
|
updatePosFromEvent(localPos.x() - screenRatioPR, localPos.y() - screenRatioPR);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
updatePosFromEvent(localPos.x(), localPos.y());
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
updatePosFromEvent(localPos.x(), localPos.y());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (dragStart && ev->buttons() & Qt::LeftButton) {
|
||||||
|
#if QT_VERSION >= 0x060000
|
||||||
|
const QPointF dragNewPosition = ev->position();
|
||||||
|
#elif QT_VERSION >= 0x050000
|
||||||
|
const QPointF dragNewPosition = ev->localPos();
|
||||||
|
#else
|
||||||
|
const QPointF dragNewPosition = ev->posF();
|
||||||
|
#endif
|
||||||
|
mapDiffPosition = dragNewPosition - dragPosition + mapDiffPosition;
|
||||||
|
dragPosition = dragNewPosition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapLocationDialog::mousePressEvent(QMouseEvent *ev)
|
||||||
|
{
|
||||||
|
if (!changeMode && ev->button() == Qt::LeftButton) {
|
||||||
|
#if QT_VERSION >= 0x060000
|
||||||
|
dragPosition = ev->position();
|
||||||
|
#elif QT_VERSION >= 0x050000
|
||||||
|
dragPosition = ev->localPos();
|
||||||
|
#else
|
||||||
|
dragPosition = ev->posF();
|
||||||
|
#endif
|
||||||
|
dragStart = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapLocationDialog::mouseReleaseEvent(QMouseEvent *ev)
|
||||||
|
{
|
||||||
|
if (changeMode && ev->button() == Qt::LeftButton) {
|
||||||
|
#if QT_VERSION >= 0x060000
|
||||||
|
const QPointF localPos = ev->position();
|
||||||
|
#elif QT_VERSION >= 0x050000
|
||||||
|
const QPointF localPos = ev->localPos();
|
||||||
|
#else
|
||||||
|
const QPointF localPos = ev->posF();
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
qreal screenRatioPR = AppEnv::screenRatioPR();
|
||||||
|
if (screenRatioPR != 1) {
|
||||||
|
updatePosFromEvent(localPos.x() - screenRatioPR, localPos.y() - screenRatioPR);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
updatePosFromEvent(localPos.x(), localPos.y());
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
updatePosFromEvent(localPos.x(), localPos.y());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else if (dragStart && ev->button() == Qt::LeftButton) {
|
||||||
|
dragStart = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapLocationDialog::wheelEvent(QWheelEvent *ev)
|
||||||
|
{
|
||||||
|
const QPoint numPixels = ev->pixelDelta();
|
||||||
|
const QPoint numDegrees = ev->angleDelta();
|
||||||
|
if (!numPixels.isNull()) {
|
||||||
|
if (numPixels.y() < 0 && zoomPercent != 100) {
|
||||||
|
zoomPercent = zoomPercent - 10;
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
else if (numPixels.y() > 0 && zoomPercent != 400) {
|
||||||
|
zoomPercent = zoomPercent + 10;
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!numDegrees.isNull()) {
|
||||||
|
if (numDegrees.y() < 0 && zoomPercent != 100) {
|
||||||
|
zoomPercent = zoomPercent - 10;
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
else if (numDegrees.y() > 0 && zoomPercent != 400) {
|
||||||
|
zoomPercent = zoomPercent + 10;
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MapLocationDialog::on_cmdChange_clicked()
|
void MapLocationDialog::on_cmdChange_clicked()
|
||||||
{
|
{
|
||||||
qreal screenRatio = AppEnv::screenRatio();
|
qreal screenRatio = AppEnv::screenRatio();
|
||||||
|
@ -110,142 +291,6 @@ void MapLocationDialog::on_cmdDone_clicked()
|
||||||
changeMode = false;
|
changeMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapLocationDialog::updatePosFromEvent(double x, double y)
|
|
||||||
{
|
|
||||||
QSize mapPixelSize = size();
|
|
||||||
double x_per = x / mapPixelSize.width(); // get X %
|
|
||||||
double y_per = y / mapPixelSize.height(); // get Y %
|
|
||||||
double x_pos, y_pos;
|
|
||||||
if (p_isCayoPerico) {
|
|
||||||
x_pos = x_per * 2340; // 2340 is 100% for X (Cayo Perico)
|
|
||||||
y_pos = y_per * -2340; // -2340 is 100% for Y (Cayo Perico)
|
|
||||||
x_pos = x_pos + 3560; // +3560 gets corrected for X (Cayo Perico)
|
|
||||||
y_pos = y_pos - 3980; // -3980 gets corrected for Y (Cayo Perico)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
x_pos = x_per * 10000; // 10000 is 100% for X (Los Santos)
|
|
||||||
y_pos = y_per * -12000; // -12000 is 100% for Y (Los Santos)
|
|
||||||
x_pos = x_pos - 4000; // -4000 gets corrected for X (Los Santos)
|
|
||||||
y_pos = y_pos + 8000; // +8000 gets corrected for Y (Los Santos)
|
|
||||||
}
|
|
||||||
drawPointOnMap(x_pos, y_pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MapLocationDialog::paintEvent(QPaintEvent *ev)
|
|
||||||
{
|
|
||||||
QPainter painter(this);
|
|
||||||
qreal screenRatio = AppEnv::screenRatio();
|
|
||||||
qreal screenRatioPR = AppEnv::screenRatioPR();
|
|
||||||
|
|
||||||
// Paint Map
|
|
||||||
QImage mapImage;
|
|
||||||
if (p_isCayoPerico) {
|
|
||||||
mapImage = QImage(":/img/mapcayoperico.jpg");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
mapImage = QImage(":/img/mappreview.jpg");
|
|
||||||
}
|
|
||||||
painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
|
|
||||||
painter.drawImage(QRect(QPoint(0, 0), size()), mapImage);
|
|
||||||
|
|
||||||
// Paint Marker
|
|
||||||
QSize mapPixelSize = size();
|
|
||||||
int pointMarkerSize = 8 * screenRatio;
|
|
||||||
int pointMarkerHalfSize = pointMarkerSize / 2;
|
|
||||||
double xpos_mp, ypos_mp;
|
|
||||||
if (p_isCayoPerico) {
|
|
||||||
double xpos_per = xpos_new - 3560; // correct X in reserve
|
|
||||||
double ypos_per = ypos_new + 3980; // correct y in reserve
|
|
||||||
xpos_per = xpos_per / 2340; // divide 100% for X
|
|
||||||
ypos_per = ypos_per / -2340; // divide 100% for Y
|
|
||||||
xpos_mp = xpos_per * mapPixelSize.width(); // locate window width pos
|
|
||||||
ypos_mp = ypos_per * mapPixelSize.height(); // locate window height pos
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
double xpos_per = xpos_new + 4000; // correct X in reserve
|
|
||||||
double ypos_per = ypos_new - 8000; // correct y in reserve
|
|
||||||
xpos_per = xpos_per / 10000; // divide 100% for X
|
|
||||||
ypos_per = ypos_per / -12000; // divide 100% for Y
|
|
||||||
xpos_mp = xpos_per * mapPixelSize.width(); // locate window width pos
|
|
||||||
ypos_mp = ypos_per * mapPixelSize.height(); // locate window height pos
|
|
||||||
}
|
|
||||||
long xpos_pr, ypos_pr;
|
|
||||||
if (screenRatioPR != 1) {
|
|
||||||
xpos_pr = xpos_mp - pointMarkerHalfSize + screenRatioPR;
|
|
||||||
ypos_pr = ypos_mp - pointMarkerHalfSize + screenRatioPR;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
xpos_pr = xpos_mp - pointMarkerHalfSize;
|
|
||||||
ypos_pr = ypos_mp - pointMarkerHalfSize;
|
|
||||||
}
|
|
||||||
QPixmap mapMarkerPixmap = IconLoader::loadingPointmakerIcon().pixmap(QSize(pointMarkerSize, pointMarkerSize));
|
|
||||||
painter.drawPixmap(xpos_pr, ypos_pr, pointMarkerSize, pointMarkerSize, mapMarkerPixmap);
|
|
||||||
|
|
||||||
QDialog::paintEvent(ev);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MapLocationDialog::mouseMoveEvent(QMouseEvent *ev)
|
|
||||||
{
|
|
||||||
if (!changeMode) {
|
|
||||||
ev->ignore();
|
|
||||||
}
|
|
||||||
else if (ev->buttons() & Qt::LeftButton) {
|
|
||||||
#if QT_VERSION >= 0x060000
|
|
||||||
const QPointF localPos = ev->position();
|
|
||||||
#elif QT_VERSION >= 0x050000
|
|
||||||
const QPointF localPos = ev->localPos();
|
|
||||||
#else
|
|
||||||
const QPointF localPos = ev->posF();
|
|
||||||
#endif
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
qreal screenRatioPR = AppEnv::screenRatioPR();
|
|
||||||
if (screenRatioPR != 1) {
|
|
||||||
updatePosFromEvent(localPos.x() - screenRatioPR, localPos.y() - screenRatioPR);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
updatePosFromEvent(localPos.x(), localPos.y());
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
updatePosFromEvent(localPos.x(), localPos.y());
|
|
||||||
#endif
|
|
||||||
ev->accept();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ev->ignore();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MapLocationDialog::mouseReleaseEvent(QMouseEvent *ev)
|
|
||||||
{
|
|
||||||
if (!changeMode) {
|
|
||||||
ev->ignore();
|
|
||||||
}
|
|
||||||
else if (ev->button() == Qt::LeftButton) {
|
|
||||||
#if QT_VERSION >= 0x060000
|
|
||||||
const QPointF localPos = ev->position();
|
|
||||||
#elif QT_VERSION >= 0x050000
|
|
||||||
const QPointF localPos = ev->localPos();
|
|
||||||
#else
|
|
||||||
const QPointF localPos = ev->posF();
|
|
||||||
#endif
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
qreal screenRatioPR = AppEnv::screenRatioPR();
|
|
||||||
if (screenRatioPR != 1) {
|
|
||||||
updatePosFromEvent(localPos.x() - screenRatioPR, localPos.y() - screenRatioPR);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
updatePosFromEvent(localPos.x(), localPos.y());
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
updatePosFromEvent(localPos.x(), localPos.y());
|
|
||||||
#endif
|
|
||||||
ev->accept();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ev->ignore();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MapLocationDialog::on_cmdApply_clicked()
|
void MapLocationDialog::on_cmdApply_clicked()
|
||||||
{
|
{
|
||||||
propUpdate = true;
|
propUpdate = true;
|
||||||
|
|
|
@ -42,24 +42,31 @@ public:
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *ev);
|
void paintEvent(QPaintEvent *ev);
|
||||||
void mouseMoveEvent(QMouseEvent *ev);
|
void mouseMoveEvent(QMouseEvent *ev);
|
||||||
|
void mousePressEvent(QMouseEvent *ev);
|
||||||
void mouseReleaseEvent(QMouseEvent *ev);
|
void mouseReleaseEvent(QMouseEvent *ev);
|
||||||
|
void wheelEvent(QWheelEvent *ev);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_cmdDone_clicked();
|
|
||||||
void on_cmdApply_clicked();
|
void on_cmdApply_clicked();
|
||||||
|
void on_cmdDone_clicked();
|
||||||
|
void on_cmdClose_clicked();
|
||||||
void on_cmdChange_clicked();
|
void on_cmdChange_clicked();
|
||||||
void on_cmdRevert_clicked();
|
void on_cmdRevert_clicked();
|
||||||
void updatePosFromEvent(double x, double y);
|
void updatePosFromEvent(double x, double y);
|
||||||
void on_cmdClose_clicked();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
int zoomPercent;
|
||||||
double xpos_old;
|
double xpos_old;
|
||||||
double ypos_old;
|
double ypos_old;
|
||||||
double xpos_new;
|
double xpos_new;
|
||||||
double ypos_new;
|
double ypos_new;
|
||||||
|
bool dragStart;
|
||||||
bool propUpdate;
|
bool propUpdate;
|
||||||
bool changeMode;
|
bool changeMode;
|
||||||
bool p_isCayoPerico;
|
bool p_isCayoPerico;
|
||||||
|
QImage mapImage;
|
||||||
|
QPointF dragPosition;
|
||||||
|
QPointF mapDiffPosition;
|
||||||
Ui::MapLocationDialog *ui;
|
Ui::MapLocationDialog *ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -305,17 +305,12 @@ void PictureDialog::styliseDialog()
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
|
#if QT_VERSION >= 0x050000
|
||||||
#if QT_VERSION >= 0x060000
|
#if QT_VERSION >= 0x060000
|
||||||
bool PictureDialog::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
|
bool PictureDialog::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
|
||||||
{
|
#else
|
||||||
MSG *msg = reinterpret_cast<MSG*>(message);
|
|
||||||
if (msg->message == 0x031e || msg->message == 0x0320) {
|
|
||||||
styliseDialog();
|
|
||||||
}
|
|
||||||
return QWidget::nativeEvent(eventType, message, result);
|
|
||||||
}
|
|
||||||
#elif QT_VERSION >= 0x050000
|
|
||||||
bool PictureDialog::nativeEvent(const QByteArray &eventType, void *message, long *result)
|
bool PictureDialog::nativeEvent(const QByteArray &eventType, void *message, long *result)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
MSG *msg = reinterpret_cast<MSG*>(message);
|
MSG *msg = reinterpret_cast<MSG*>(message);
|
||||||
if (msg->message == 0x031e || msg->message == 0x0320) {
|
if (msg->message == 0x031e || msg->message == 0x0320) {
|
||||||
|
@ -411,11 +406,11 @@ bool PictureDialog::eventFilter(QObject *obj, QEvent *ev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ev->type() == QEvent::MouseMove && dragStart) {
|
if (dragStart && ev->type() == QEvent::MouseMove) {
|
||||||
QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(ev);
|
QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent*>(ev);
|
||||||
if (mouseEvent->pos().y() <= layout()->menuBar()->height()) {
|
if (mouseEvent->pos().y() <= layout()->menuBar()->height()) {
|
||||||
if (mouseEvent->buttons() & Qt::LeftButton) {
|
if (mouseEvent->buttons() & Qt::LeftButton) {
|
||||||
QPoint diff = mouseEvent->pos() - dragPosition;
|
const QPoint diff = mouseEvent->pos() - dragPosition;
|
||||||
move(QPoint(pos() + diff));
|
move(QPoint(pos() + diff));
|
||||||
updateGeometry();
|
updateGeometry();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue