mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Correctly rename and lock imported profiles
Imported profiles are legact 'data' and 'tox_save' files
This commit is contained in:
parent
dc5f812946
commit
694933d24b
|
@ -83,6 +83,8 @@ int main(int argc, char *argv[])
|
||||||
a.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
|
a.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
qsrand(time(0));
|
||||||
|
|
||||||
// Process arguments
|
// Process arguments
|
||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
parser.setApplicationDescription("qTox, version: " + QString(GIT_VERSION) + "\nBuilt: " + __TIME__ + " " + __DATE__);
|
parser.setApplicationDescription("qTox, version: " + QString(GIT_VERSION) + "\nBuilt: " + __TIME__ + " " + __DATE__);
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "src/misc/db/plaindb.h"
|
#include "src/misc/db/plaindb.h"
|
||||||
#include "src/core/core.h"
|
#include "src/core/core.h"
|
||||||
#include "src/widget/gui.h"
|
#include "src/widget/gui.h"
|
||||||
|
#include "src/profilelocker.h"
|
||||||
#ifdef QTOX_PLATFORM_EXT
|
#ifdef QTOX_PLATFORM_EXT
|
||||||
#include "src/platform/autorun.h"
|
#include "src/platform/autorun.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -71,6 +72,19 @@ void Settings::switchProfile(const QString& profile)
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString Settings::genRandomProfileName()
|
||||||
|
{
|
||||||
|
QDir dir(getSettingsDirPath());
|
||||||
|
QString basename = "imported_";
|
||||||
|
QString randname;
|
||||||
|
do {
|
||||||
|
randname = QString().setNum(qrand()*qrand()*qrand(), 16);
|
||||||
|
randname.truncate(6);
|
||||||
|
randname = basename + randname;
|
||||||
|
} while (QFile(dir.filePath(randname)).exists());
|
||||||
|
return randname;
|
||||||
|
}
|
||||||
|
|
||||||
QString Settings::detectProfile()
|
QString Settings::detectProfile()
|
||||||
{
|
{
|
||||||
QDir dir(getSettingsDirPath());
|
QDir dir(getSettingsDirPath());
|
||||||
|
@ -85,9 +99,19 @@ QString Settings::detectProfile()
|
||||||
path = dir.filePath(Core::CONFIG_FILE_NAME);
|
path = dir.filePath(Core::CONFIG_FILE_NAME);
|
||||||
QFile file(path);
|
QFile file(path);
|
||||||
if (file.exists())
|
if (file.exists())
|
||||||
return path;
|
{
|
||||||
|
profile = genRandomProfileName();
|
||||||
|
setCurrentProfile(profile);
|
||||||
|
file.rename(profile + Core::TOX_EXT);
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
else if (QFile(path = dir.filePath("tox_save")).exists()) // also import tox_save if no data
|
else if (QFile(path = dir.filePath("tox_save")).exists()) // also import tox_save if no data
|
||||||
return path;
|
{
|
||||||
|
profile = genRandomProfileName();
|
||||||
|
setCurrentProfile(profile);
|
||||||
|
QFile(path).rename(profile + Core::TOX_EXT);
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
|
|
@ -256,6 +256,9 @@ public:
|
||||||
void save(QString path, bool writePersonal = true);
|
void save(QString path, bool writePersonal = true);
|
||||||
void load();
|
void load();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static QString genRandomProfileName();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static Settings* settings;
|
static Settings* settings;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user