picture navigation in fullscreen added
This commit is contained in:
parent
e27fb34908
commit
f5be86aec4
5 changed files with 301 additions and 168 deletions
|
@ -17,6 +17,7 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include "PictureDialog.h"
|
#include "PictureDialog.h"
|
||||||
|
#include "PictureWidget.h"
|
||||||
#include "ProfileDatabase.h"
|
#include "ProfileDatabase.h"
|
||||||
#include "ui_PictureDialog.h"
|
#include "ui_PictureDialog.h"
|
||||||
#include "SidebarGenerator.h"
|
#include "SidebarGenerator.h"
|
||||||
|
@ -91,13 +92,21 @@ bool PictureDialog::eventFilter(QObject *obj, QEvent *ev)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PictureDialog::dialogNextPictureRequested()
|
||||||
|
{
|
||||||
|
emit nextPictureRequested();
|
||||||
|
}
|
||||||
|
|
||||||
|
void PictureDialog::dialogPreviousPictureRequested()
|
||||||
|
{
|
||||||
|
emit previousPictureRequested();
|
||||||
|
}
|
||||||
|
|
||||||
void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, QString picturePath, bool readOk, bool _indexed, int _index)
|
void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, QString picturePath, bool readOk, bool _indexed, int _index)
|
||||||
{
|
{
|
||||||
|
snapmaticPicture = QImage();
|
||||||
indexed = _indexed;
|
indexed = _indexed;
|
||||||
index = _index;
|
index = _index;
|
||||||
|
|
||||||
// Showing error if reading error
|
|
||||||
QImage snapmaticPicture;
|
|
||||||
picPath = picturePath;
|
picPath = picturePath;
|
||||||
smpic = picture;
|
smpic = picture;
|
||||||
if (!readOk)
|
if (!readOk)
|
||||||
|
@ -105,7 +114,6 @@ void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, QString pictu
|
||||||
QMessageBox::warning(this, tr("Snapmatic Picture Viewer"), tr("Failed at %1").arg(picture->getLastStep()));
|
QMessageBox::warning(this, tr("Snapmatic Picture Viewer"), tr("Failed at %1").arg(picture->getLastStep()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (picture->isPicOk())
|
if (picture->isPicOk())
|
||||||
{
|
{
|
||||||
snapmaticPicture = picture->getPicture();
|
snapmaticPicture = picture->getPicture();
|
||||||
|
@ -152,6 +160,7 @@ void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, QString pictu
|
||||||
ui->labJSON->setText(jsonDrawString.arg("0.0", "0.0", "0.0", tr("No player"), tr("No crew")));
|
ui->labJSON->setText(jsonDrawString.arg("0.0", "0.0", "0.0", tr("No player"), tr("No crew")));
|
||||||
QMessageBox::warning(this,tr("Snapmatic Picture Viewer"),tr("Failed at %1").arg(picture->getLastStep()));
|
QMessageBox::warning(this,tr("Snapmatic Picture Viewer"),tr("Failed at %1").arg(picture->getLastStep()));
|
||||||
}
|
}
|
||||||
|
emit newPictureCommited(snapmaticPicture);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, QString picPath, bool readOk)
|
void PictureDialog::setSnapmaticPicture(SnapmaticPicture *picture, QString picPath, bool readOk)
|
||||||
|
@ -224,33 +233,21 @@ void PictureDialog::copySnapmaticPicture()
|
||||||
|
|
||||||
void PictureDialog::on_labPicture_mouseDoubleClicked()
|
void PictureDialog::on_labPicture_mouseDoubleClicked()
|
||||||
{
|
{
|
||||||
QDialog *pictureWidget = new QDialog(this);
|
QRect desktopRect = QApplication::desktop()->screenGeometry();
|
||||||
QRect rec = QApplication::desktop()->screenGeometry();
|
PictureWidget *pictureWidget = new PictureWidget(this);
|
||||||
QHBoxLayout *widgetLayout = new QHBoxLayout(pictureWidget);
|
|
||||||
widgetLayout->setSpacing(0);
|
|
||||||
widgetLayout->setContentsMargins(0, 0, 0, 0);
|
|
||||||
|
|
||||||
UiModLabel *pictureLabel = new UiModLabel(pictureWidget);
|
|
||||||
pictureLabel->setPixmap(ui->labPicture->pixmap()->scaled(rec.width(), rec.height(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
|
|
||||||
pictureLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
|
||||||
pictureLabel->setAlignment(Qt::AlignCenter);
|
|
||||||
widgetLayout->addWidget(pictureLabel);
|
|
||||||
|
|
||||||
QObject::connect(pictureLabel, SIGNAL(mouseDoubleClicked()), pictureWidget, SLOT(close()));
|
|
||||||
|
|
||||||
pictureWidget->setLayout(widgetLayout);
|
|
||||||
pictureWidget->setWindowFlags(pictureWidget->windowFlags()^Qt::WindowContextHelpButtonHint);
|
pictureWidget->setWindowFlags(pictureWidget->windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||||
pictureWidget->setWindowTitle(this->windowTitle());
|
pictureWidget->setWindowTitle(this->windowTitle());
|
||||||
pictureWidget->setStyleSheet("background-color: black;");
|
pictureWidget->setStyleSheet("background-color: black;");
|
||||||
|
pictureWidget->setImage(snapmaticPicture, desktopRect);
|
||||||
|
|
||||||
|
QObject::connect(this, SIGNAL(newPictureCommited(QImage)), pictureWidget, SLOT(setImage(QImage)));
|
||||||
|
QObject::connect(pictureWidget, SIGNAL(nextPictureRequested()), this, SLOT(dialogNextPictureRequested()));
|
||||||
|
QObject::connect(pictureWidget, SIGNAL(previousPictureRequested()), this, SLOT(dialogPreviousPictureRequested()));
|
||||||
|
|
||||||
pictureWidget->showFullScreen();
|
pictureWidget->showFullScreen();
|
||||||
pictureWidget->setModal(true);
|
pictureWidget->setModal(true);
|
||||||
pictureWidget->exec();
|
pictureWidget->exec();
|
||||||
|
|
||||||
widgetLayout->deleteLater();
|
|
||||||
delete widgetLayout;
|
|
||||||
pictureLabel->deleteLater();
|
|
||||||
delete pictureLabel;
|
|
||||||
pictureWidget->deleteLater();
|
|
||||||
delete pictureWidget;
|
delete pictureWidget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,8 @@ public:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void playerNameUpdated();
|
void playerNameUpdated();
|
||||||
|
void dialogNextPictureRequested();
|
||||||
|
void dialogPreviousPictureRequested();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void copySnapmaticPicture();
|
void copySnapmaticPicture();
|
||||||
|
@ -55,6 +57,7 @@ private slots:
|
||||||
signals:
|
signals:
|
||||||
void nextPictureRequested();
|
void nextPictureRequested();
|
||||||
void previousPictureRequested();
|
void previousPictureRequested();
|
||||||
|
void newPictureCommited(QImage picture);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *obj, QEvent *ev);
|
bool eventFilter(QObject *obj, QEvent *ev);
|
||||||
|
@ -63,6 +66,7 @@ private:
|
||||||
ProfileDatabase *profileDB;
|
ProfileDatabase *profileDB;
|
||||||
Ui::PictureDialog *ui;
|
Ui::PictureDialog *ui;
|
||||||
SnapmaticPicture *smpic;
|
SnapmaticPicture *smpic;
|
||||||
|
QImage snapmaticPicture;
|
||||||
QString jsonDrawString;
|
QString jsonDrawString;
|
||||||
QString windowTitleStr;
|
QString windowTitleStr;
|
||||||
QStringList plyrsList;
|
QStringList plyrsList;
|
||||||
|
|
79
PictureWidget.cpp
Normal file
79
PictureWidget.cpp
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/*****************************************************************************
|
||||||
|
* gta5sync GRAND THEFT AUTO V SYNC
|
||||||
|
* Copyright (C) 2016 Syping
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "PictureWidget.h"
|
||||||
|
#include "UiModLabel.h"
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QKeyEvent>
|
||||||
|
#include <QPixmap>
|
||||||
|
#include <QEvent>
|
||||||
|
|
||||||
|
PictureWidget::PictureWidget(QWidget *parent) : QDialog(parent)
|
||||||
|
{
|
||||||
|
installEventFilter(this);
|
||||||
|
|
||||||
|
widgetLayout = new QHBoxLayout(this);
|
||||||
|
widgetLayout->setSpacing(0);
|
||||||
|
widgetLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
|
pictureLabel = new UiModLabel(this);
|
||||||
|
pictureLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
pictureLabel->setAlignment(Qt::AlignCenter);
|
||||||
|
widgetLayout->addWidget(pictureLabel);
|
||||||
|
|
||||||
|
QObject::connect(pictureLabel, SIGNAL(mouseDoubleClicked()), this, SLOT(close()));
|
||||||
|
|
||||||
|
setLayout(widgetLayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
PictureWidget::~PictureWidget()
|
||||||
|
{
|
||||||
|
widgetLayout->removeWidget(pictureLabel);
|
||||||
|
delete pictureLabel;
|
||||||
|
delete widgetLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PictureWidget::eventFilter(QObject *obj, QEvent *ev)
|
||||||
|
{
|
||||||
|
if (obj == this)
|
||||||
|
{
|
||||||
|
if (ev->type() == QEvent::KeyPress)
|
||||||
|
{
|
||||||
|
QKeyEvent *keyEvent = (QKeyEvent*)ev;
|
||||||
|
switch (keyEvent->key()){
|
||||||
|
case Qt::Key_Left:
|
||||||
|
emit previousPictureRequested();
|
||||||
|
break;
|
||||||
|
case Qt::Key_Right:
|
||||||
|
emit nextPictureRequested();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PictureWidget::setImage(QImage image, QRect rec)
|
||||||
|
{
|
||||||
|
pictureLabel->setPixmap(QPixmap::fromImage(image.scaled(rec.width(), rec.height(), Qt::KeepAspectRatio, Qt::SmoothTransformation)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void PictureWidget::setImage(QImage image)
|
||||||
|
{
|
||||||
|
pictureLabel->setPixmap(QPixmap::fromImage(image.scaled(geometry().width(), geometry().height(), Qt::KeepAspectRatio, Qt::SmoothTransformation)));
|
||||||
|
}
|
51
PictureWidget.h
Normal file
51
PictureWidget.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*****************************************************************************
|
||||||
|
* gta5sync GRAND THEFT AUTO V SYNC
|
||||||
|
* Copyright (C) 2016 Syping
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef PICTUREWIDGET_H
|
||||||
|
#define PICTUREWIDGET_H
|
||||||
|
|
||||||
|
#include "UiModLabel.h"
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QEvent>
|
||||||
|
|
||||||
|
class PictureWidget : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit PictureWidget(QWidget *parent = 0);
|
||||||
|
void setImage(QImage image, QRect rec);
|
||||||
|
~PictureWidget();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void setImage(QImage image);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool eventFilter(QObject *obj, QEvent *ev);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QHBoxLayout *widgetLayout;
|
||||||
|
UiModLabel *pictureLabel;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void nextPictureRequested();
|
||||||
|
void previousPictureRequested();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // PICTUREWIDGET_H
|
|
@ -34,6 +34,7 @@ SOURCES += main.cpp \
|
||||||
PictureCopy.cpp \
|
PictureCopy.cpp \
|
||||||
PictureDialog.cpp \
|
PictureDialog.cpp \
|
||||||
PictureExport.cpp \
|
PictureExport.cpp \
|
||||||
|
PictureWidget.cpp \
|
||||||
ProfileDatabase.cpp \
|
ProfileDatabase.cpp \
|
||||||
ProfileInterface.cpp \
|
ProfileInterface.cpp \
|
||||||
ProfileLoader.cpp \
|
ProfileLoader.cpp \
|
||||||
|
@ -61,6 +62,7 @@ HEADERS += \
|
||||||
PictureCopy.h \
|
PictureCopy.h \
|
||||||
PictureDialog.h \
|
PictureDialog.h \
|
||||||
PictureExport.h \
|
PictureExport.h \
|
||||||
|
PictureWidget.h \
|
||||||
ProfileDatabase.h \
|
ProfileDatabase.h \
|
||||||
ProfileInterface.h \
|
ProfileInterface.h \
|
||||||
ProfileLoader.h \
|
ProfileLoader.h \
|
||||||
|
|
Loading…
Reference in a new issue