added loading progress frame

This commit is contained in:
Rafael 2016-03-27 10:30:33 +02:00
parent 7d099291ad
commit 32f3c79071
5 changed files with 100 additions and 12 deletions

View File

@ -33,7 +33,7 @@ ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *cre
ui(new Ui::ProfileInterface)
{
ui->setupUi(this);
ui->labProfileContent->setVisible(false);
ui->saProfile->setVisible(false);
contentStr = ui->labProfileContent->text();
profileFolder = "";
}
@ -51,11 +51,11 @@ void ProfileInterface::setProfileFolder(QString folder, QString profile)
void ProfileInterface::setupProfileInterface()
{
ui->labProfileContent->setText(contentStr.arg(profileName));
ProfileLoader *profileLoader = new ProfileLoader(profileFolder, crewDB);
QObject::connect(profileLoader, SIGNAL(savegameLoaded(SavegameData*, QString)), this, SLOT(on_savegameLoaded(SavegameData*, QString)));
QObject::connect(profileLoader, SIGNAL(pictureLoaded(SnapmaticPicture*, QString)), this, SLOT(on_pictureLoaded(SnapmaticPicture*, QString)));
QObject::connect(profileLoader, SIGNAL(loadingProgress(int,int)), this, SLOT(on_loadingProgress(int,int)));
QObject::connect(profileLoader, SIGNAL(finished()), this, SLOT(on_profileLoaded()));
profileLoader->start();
}
@ -73,6 +73,23 @@ void ProfileInterface::on_pictureLoaded(SnapmaticPicture *picture, QString pictu
ui->vlSnapmatic->addWidget(picWidget);
}
void ProfileInterface::on_loadingProgress(int value, int maximum)
{
ui->pbPictureLoading->setMaximum(maximum);
ui->pbPictureLoading->setValue(value);
ui->labProfileContent->setText(contentStr.arg(QString::number(value), QString::number(maximum)));
}
void ProfileInterface::on_profileLoaded()
{
QSpacerItem *saSpacerItem = new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
ui->saProfileContent->layout()->addItem(saSpacerItem);
ui->saProfile->setVisible(true);
ui->pbPictureLoading->setVisible(false);
ui->labProfileContent->setVisible(false);
ui->frmLoading->setVisible(false);
}
void ProfileInterface::on_cmdCloseProfile_clicked()
{
this->close();

View File

@ -42,6 +42,8 @@ private slots:
void on_cmdCloseProfile_clicked();
void on_pictureLoaded(SnapmaticPicture *picture, QString picturePath);
void on_savegameLoaded(SavegameData *savegame, QString savegamePath);
void on_loadingProgress(int value, int maximum);
void on_profileLoaded();
private:
ProfileDatabase *profileDB;

View File

@ -27,13 +27,70 @@
<number>0</number>
</property>
<item>
<widget class="QLabel" name="labProfileContent">
<property name="text">
<string>Content of Profile %1</string>
<widget class="QFrame" name="frmLoading">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="vlLoading">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<spacer name="vsLoading2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="labProfileContent">
<property name="text">
<string>Loading %1 files of %2</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QProgressBar" name="pbPictureLoading">
<property name="value">
<number>0</number>
</property>
<property name="textVisible">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<spacer name="vsLoading1">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
@ -47,7 +104,7 @@
<x>0</x>
<y>0</y>
<width>398</width>
<height>232</height>
<height>121</height>
</rect>
</property>
<layout class="QVBoxLayout" name="vlProfile">

View File

@ -32,15 +32,25 @@ ProfileLoader::ProfileLoader(QString profileFolder, CrewDatabase *crewDB, QObjec
void ProfileLoader::run()
{
int loadedV = 0;
QDir profileDir;
profileDir.setPath(profileFolder);
profileDir.setNameFilters(QStringList("SGTA*"));
QStringList SavegameFiles = profileDir.entryList(QDir::Files | QDir::NoDot, QDir::NoSort);
QStringList BackupFiles = SavegameFiles.filter(".bak", Qt::CaseInsensitive);
profileDir.setNameFilters(QStringList("PGTA*"));
QStringList SnapmaticPics = profileDir.entryList(QDir::Files | QDir::NoDot, QDir::NoSort);
SavegameFiles.removeDuplicates();
SnapmaticPics.removeDuplicates();
foreach(const QString &BackupFile, BackupFiles)
{
SavegameFiles.removeAll(BackupFile);
}
int maximumV = SavegameFiles.length() + SnapmaticPics.length();
foreach(const QString &SavegameFile, SavegameFiles)
{
QString sgdPath = profileFolder + "/" + SavegameFile;
@ -49,10 +59,9 @@ void ProfileLoader::run()
{
emit savegameLoaded(savegame, sgdPath);
}
loadedV++;
emit loadingProgress(loadedV, maximumV);
}
profileDir.setNameFilters(QStringList("PGTA*"));
QStringList SnapmaticPics = profileDir.entryList(QDir::Files | QDir::NoDot, QDir::NoSort);
foreach(const QString &SnapmaticPic, SnapmaticPics)
{
QString picturePath = profileFolder + "/" + SnapmaticPic;
@ -62,5 +71,7 @@ void ProfileLoader::run()
emit pictureLoaded(picture, picturePath);
crewDB->addCrew(picture->getCrewNumber());
}
loadedV++;
emit loadingProgress(loadedV, maximumV);
}
}

View File

@ -41,6 +41,7 @@ private:
signals:
void pictureLoaded(SnapmaticPicture *picture, QString picturePath);
void savegameLoaded(SavegameData *savegame, QString savegamePath);
void loadingProgress(int value, int maximum);
};
#endif // PROFILELOADER_H