picture export function added
This commit is contained in:
parent
28027a9ade
commit
d78ede95da
1 changed files with 99 additions and 1 deletions
|
@ -26,8 +26,16 @@
|
|||
#include <QJsonObject>
|
||||
#include <QVariantMap>
|
||||
#include <QJsonArray>
|
||||
#include <QTimer>
|
||||
#include <QDebug>
|
||||
#include <QList>
|
||||
#include <QUrl>
|
||||
#include <QDir>
|
||||
|
||||
#if QT5_MODE
|
||||
#include <QStandardPaths>
|
||||
#else
|
||||
#include <QDesktopServices>
|
||||
#endif
|
||||
|
||||
PictureDialog::PictureDialog(ProfileDatabase *profileDB, QWidget *parent) :
|
||||
QDialog(parent), profileDB(profileDB),
|
||||
|
@ -123,5 +131,95 @@ void PictureDialog::on_cmdClose_clicked()
|
|||
|
||||
void PictureDialog::on_cmdExport_clicked()
|
||||
{
|
||||
QFileDialog fileDialog(this);
|
||||
fileDialog.setFileMode(QFileDialog::AnyFile);
|
||||
fileDialog.setViewMode(QFileDialog::Detail);
|
||||
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
|
||||
fileDialog.setDefaultSuffix("suffix");
|
||||
fileDialog.setNameFilter(tr("JPEG picture (*.jpg);;Portable Network Graphics (*.png)"));
|
||||
fileDialog.setWindowTitle(tr("Export picture"));
|
||||
fileDialog.setWindowFlags(fileDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||
|
||||
QList<QUrl> sidebarUrls = fileDialog.sidebarUrls();
|
||||
QDir dir;
|
||||
|
||||
// Get Documents + Desktop Location
|
||||
#ifdef QT5_MODE
|
||||
QString documentsLocation = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
|
||||
QString desktopLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
|
||||
#else
|
||||
QString documentsLocation = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
|
||||
QString desktopLocation = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
|
||||
#endif
|
||||
|
||||
// Add Desktop Location to Sidebar
|
||||
dir.setPath(desktopLocation);
|
||||
if (dir.exists())
|
||||
{
|
||||
sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
|
||||
}
|
||||
|
||||
// Add Documents + GTA V Location to Sidebar
|
||||
dir.setPath(documentsLocation);
|
||||
if (dir.exists())
|
||||
{
|
||||
sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
|
||||
if (dir.cd("Rockstar Games/GTA V"))
|
||||
{
|
||||
sidebarUrls.append(QUrl::fromLocalFile(dir.absolutePath()));
|
||||
}
|
||||
}
|
||||
|
||||
fileDialog.setSidebarUrls(sidebarUrls);
|
||||
|
||||
fileDialogPreSave:
|
||||
if (fileDialog.exec())
|
||||
{
|
||||
QStringList selectedFiles = fileDialog.selectedFiles();
|
||||
if (selectedFiles.length() == 1)
|
||||
{
|
||||
QString saveFileFormat;
|
||||
QString selectedFile = selectedFiles.at(0);
|
||||
if (selectedFile.right(4) == ".jpg")
|
||||
{
|
||||
saveFileFormat = "JPEG";
|
||||
}
|
||||
else if (selectedFile.right(4) == ".jpeg")
|
||||
{
|
||||
saveFileFormat = "JPEG";
|
||||
}
|
||||
else if (selectedFile.right(4) == ".png")
|
||||
{
|
||||
saveFileFormat = "PNG";
|
||||
}
|
||||
else if (selectedFile.right(7) == ".suffix")
|
||||
{
|
||||
if (fileDialog.selectedNameFilter() == "JPEG picture (*.jpg)")
|
||||
{
|
||||
selectedFile.replace(".suffix", ".jpg");
|
||||
}
|
||||
else if (fileDialog.selectedNameFilter() == "Portable Network Graphics (*.png)")
|
||||
{
|
||||
selectedFile.replace(".suffix", ".png");
|
||||
}
|
||||
else
|
||||
{
|
||||
selectedFile.replace(".suffix", ".jpg");
|
||||
}
|
||||
}
|
||||
|
||||
bool isSaved = ui->labPicture->pixmap()->save(selectedFile, saveFileFormat.toStdString().c_str(), 100);
|
||||
|
||||
if (!isSaved)
|
||||
{
|
||||
QMessageBox::warning(this, tr("Snapmatic Picture Exporter"), tr("Failed to save the picture"));
|
||||
goto fileDialogPreSave;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Snapmatic Picture Exporter"), tr("No valid file is selected"));
|
||||
goto fileDialogPreSave;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue