multiple file import added
This commit is contained in:
		
							parent
							
								
									7d508a5480
								
							
						
					
					
						commit
						f7d545d1b7
					
				
					 2 changed files with 92 additions and 69 deletions
				
			
		| 
						 | 
					@ -340,7 +340,7 @@ void ProfileInterface::on_cmdImport_clicked()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
fileDialogPreOpen:
 | 
					fileDialogPreOpen:
 | 
				
			||||||
    QFileDialog fileDialog(this);
 | 
					    QFileDialog fileDialog(this);
 | 
				
			||||||
    fileDialog.setFileMode(QFileDialog::AnyFile);
 | 
					    fileDialog.setFileMode(QFileDialog::ExistingFiles);
 | 
				
			||||||
    fileDialog.setViewMode(QFileDialog::Detail);
 | 
					    fileDialog.setViewMode(QFileDialog::Detail);
 | 
				
			||||||
    fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
 | 
					    fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
 | 
				
			||||||
    fileDialog.setOption(QFileDialog::DontUseNativeDialog, true);
 | 
					    fileDialog.setOption(QFileDialog::DontUseNativeDialog, true);
 | 
				
			||||||
| 
						 | 
					@ -366,71 +366,27 @@ fileDialogPreOpen:
 | 
				
			||||||
        if (selectedFiles.length() == 1)
 | 
					        if (selectedFiles.length() == 1)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            QString selectedFile = selectedFiles.at(0);
 | 
					            QString selectedFile = selectedFiles.at(0);
 | 
				
			||||||
            QFileInfo selectedFileInfo(selectedFile);
 | 
					            if (!importFile(selectedFile, true)) goto fileDialogPreOpen;
 | 
				
			||||||
            QString selectedFileName = selectedFileInfo.fileName();
 | 
					 | 
				
			||||||
            if (QFile::exists(selectedFile))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                if (selectedFileName.left(4) == "PGTA")
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
 | 
					 | 
				
			||||||
                    if (picture->readingPicture())
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        importSnapmaticPicture(picture, selectedFile);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
                    else
 | 
					        else if (selectedFiles.length() > 1)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
                        QMessageBox::warning(this, tr("Import"), tr("Failed to read Snapmatic picture"));
 | 
					            QString errorStr;
 | 
				
			||||||
                        picture->deleteLater();
 | 
					            QStringList failedFiles;
 | 
				
			||||||
                        delete picture;
 | 
					            foreach(const QString &selectedFile, selectedFiles)
 | 
				
			||||||
                        goto fileDialogPreOpen;
 | 
					            {
 | 
				
			||||||
 | 
					                if (!importFile(selectedFile, false))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    failedFiles << QFileInfo(selectedFile).fileName();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
                else if (selectedFileName.left(4) == "SGTA")
 | 
					            foreach (const QString &curErrorStr, failedFiles)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                    SavegameData *savegame = new SavegameData(selectedFile);
 | 
					                errorStr.append(", " + curErrorStr);
 | 
				
			||||||
                    if (savegame->readingSavegame())
 | 
					            }
 | 
				
			||||||
 | 
					            if (errorStr != "")
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                        importSavegameData(savegame, selectedFile);
 | 
					                errorStr.remove(0, 2);
 | 
				
			||||||
                    }
 | 
					                QMessageBox::warning(this, tr("Import"), tr("Import failed with...\n\n%1").arg(errorStr));
 | 
				
			||||||
                    else
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        QMessageBox::warning(this, tr("Import"), tr("Failed to read Savegame file"));
 | 
					 | 
				
			||||||
                        savegame->deleteLater();
 | 
					 | 
				
			||||||
                        delete savegame;
 | 
					 | 
				
			||||||
                        goto fileDialogPreOpen;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
 | 
					 | 
				
			||||||
                    SavegameData *savegame = new SavegameData(selectedFile);
 | 
					 | 
				
			||||||
                    if (picture->readingPicture())
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        importSnapmaticPicture(picture, selectedFile);
 | 
					 | 
				
			||||||
                        savegame->deleteLater();
 | 
					 | 
				
			||||||
                        delete savegame;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    else if (savegame->readingSavegame())
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        importSavegameData(savegame, selectedFile);
 | 
					 | 
				
			||||||
                        picture->deleteLater();
 | 
					 | 
				
			||||||
                        delete picture;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    else
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        savegame->deleteLater();
 | 
					 | 
				
			||||||
                        picture->deleteLater();
 | 
					 | 
				
			||||||
                        delete savegame;
 | 
					 | 
				
			||||||
                        delete picture;
 | 
					 | 
				
			||||||
                        QMessageBox::warning(this, tr("Import"), tr("Can't import %1 because of not valid file format").arg("\""+selectedFileName+"\""));
 | 
					 | 
				
			||||||
                        goto fileDialogPreOpen;
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                QMessageBox::warning(this, tr("Import"), tr("No valid file is selected"));
 | 
					 | 
				
			||||||
                goto fileDialogPreOpen;
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
| 
						 | 
					@ -444,13 +400,79 @@ fileDialogPreOpen:
 | 
				
			||||||
    settings.endGroup();
 | 
					    settings.endGroup();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString picPath)
 | 
					bool ProfileInterface::importFile(QString selectedFile, bool warn)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QString selectedFileName = QFileInfo(selectedFile).fileName();
 | 
				
			||||||
 | 
					    if (QFile::exists(selectedFile))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (selectedFileName.left(4) == "PGTA")
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
 | 
				
			||||||
 | 
					            if (picture->readingPicture())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return importSnapmaticPicture(picture, selectedFile, warn);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to read Snapmatic picture"));
 | 
				
			||||||
 | 
					                picture->deleteLater();
 | 
				
			||||||
 | 
					                delete picture;
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (selectedFileName.left(4) == "SGTA")
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            SavegameData *savegame = new SavegameData(selectedFile);
 | 
				
			||||||
 | 
					            if (savegame->readingSavegame())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return importSavegameData(savegame, selectedFile, warn);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to read Savegame file"));
 | 
				
			||||||
 | 
					                savegame->deleteLater();
 | 
				
			||||||
 | 
					                delete savegame;
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            SnapmaticPicture *picture = new SnapmaticPicture(selectedFile);
 | 
				
			||||||
 | 
					            SavegameData *savegame = new SavegameData(selectedFile);
 | 
				
			||||||
 | 
					            if (picture->readingPicture())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                savegame->deleteLater();
 | 
				
			||||||
 | 
					                delete savegame;
 | 
				
			||||||
 | 
					                return importSnapmaticPicture(picture, selectedFile, warn);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (savegame->readingSavegame())
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                picture->deleteLater();
 | 
				
			||||||
 | 
					                delete picture;
 | 
				
			||||||
 | 
					                return importSavegameData(savegame, selectedFile, warn);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                savegame->deleteLater();
 | 
				
			||||||
 | 
					                picture->deleteLater();
 | 
				
			||||||
 | 
					                delete savegame;
 | 
				
			||||||
 | 
					                delete picture;
 | 
				
			||||||
 | 
					                if (warn) QMessageBox::warning(this, tr("Import"), tr("Can't import %1 because of not valid file format").arg("\""+selectedFileName+"\""));
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (warn) QMessageBox::warning(this, tr("Import"), tr("No valid file is selected"));
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString picPath, bool warn)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    QFileInfo picFileInfo(picPath);
 | 
					    QFileInfo picFileInfo(picPath);
 | 
				
			||||||
    QString picFileName = picFileInfo.fileName();
 | 
					    QString picFileName = picFileInfo.fileName();
 | 
				
			||||||
    if (picFileName.left(4) != "PGTA")
 | 
					    if (picFileName.left(4) != "PGTA")
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, file not begin with PGTA"));
 | 
					        if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, file not begin with PGTA"));
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else if (QFile::copy(picPath, profileFolder + QDir::separator() + picFileName))
 | 
					    else if (QFile::copy(picPath, profileFolder + QDir::separator() + picFileName))
 | 
				
			||||||
| 
						 | 
					@ -460,12 +482,12 @@ bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, can't copy the file into profile"));
 | 
					        if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, can't copy the file into profile"));
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPath)
 | 
					bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPath, bool warn)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    QString sgdFileName;
 | 
					    QString sgdFileName;
 | 
				
			||||||
    bool foundFree = 0;
 | 
					    bool foundFree = 0;
 | 
				
			||||||
| 
						 | 
					@ -496,13 +518,13 @@ bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPat
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            QMessageBox::warning(this, tr("Import"), tr("Failed to import the Savegame, can't copy the file into profile"));
 | 
					            if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Savegame, can't copy the file into profile"));
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        QMessageBox::warning(this, tr("Import"), tr("Failed to import the Savegame, no Savegame slot is left"));
 | 
					        if (warn) QMessageBox::warning(this, tr("Import"), tr("Failed to import the Savegame, no Savegame slot is left"));
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,8 +84,9 @@ private:
 | 
				
			||||||
    QString loadingStr;
 | 
					    QString loadingStr;
 | 
				
			||||||
    int selectedWidgts;
 | 
					    int selectedWidgts;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool importSnapmaticPicture(SnapmaticPicture *picture, QString picPath);
 | 
					    bool importFile(QString selectedFile, bool warn);
 | 
				
			||||||
    bool importSavegameData(SavegameData *savegame, QString sgdPath);
 | 
					    bool importSnapmaticPicture(SnapmaticPicture *picture, QString picPath, bool warn = true);
 | 
				
			||||||
 | 
					    bool importSavegameData(SavegameData *savegame, QString sgdPath, bool warn = true);
 | 
				
			||||||
    void pictureLoaded_f(SnapmaticPicture *picture, QString picturePath, bool inserted);
 | 
					    void pictureLoaded_f(SnapmaticPicture *picture, QString picturePath, bool inserted);
 | 
				
			||||||
    void savegameLoaded_f(SavegameData *savegame, QString savegamePath, bool inserted);
 | 
					    void savegameLoaded_f(SavegameData *savegame, QString savegamePath, bool inserted);
 | 
				
			||||||
    void savegameDeleted_f(QWidget *sgdWidget);
 | 
					    void savegameDeleted_f(QWidget *sgdWidget);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue