Migration fixes (#1247)
* clean some network specific qt settings on migration * ask user to choose datadir if default dir is not the one we expected
This commit is contained in:
parent
a9e1361fc2
commit
7e9ad0e26c
@ -864,6 +864,18 @@ bool SetStartOnSystemStartup(bool fAutoStart) { return false; }
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void migrateQtSettings()
|
||||||
|
{
|
||||||
|
// Migration (12.1)
|
||||||
|
QSettings settings;
|
||||||
|
if(!settings.value("fMigrationDone121", false).toBool()) {
|
||||||
|
settings.remove("theme");
|
||||||
|
settings.remove("nWindowPos");
|
||||||
|
settings.remove("nWindowSize");
|
||||||
|
settings.setValue("fMigrationDone121", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void saveWindowGeometry(const QString& strSetting, QWidget *parent)
|
void saveWindowGeometry(const QString& strSetting, QWidget *parent)
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
|
@ -186,6 +186,9 @@ namespace GUIUtil
|
|||||||
bool GetStartOnSystemStartup();
|
bool GetStartOnSystemStartup();
|
||||||
bool SetStartOnSystemStartup(bool fAutoStart);
|
bool SetStartOnSystemStartup(bool fAutoStart);
|
||||||
|
|
||||||
|
/** Modify Qt network specific settings on migration */
|
||||||
|
void migrateQtSettings();
|
||||||
|
|
||||||
/** Save window size and position */
|
/** Save window size and position */
|
||||||
void saveWindowGeometry(const QString& strSetting, QWidget *parent);
|
void saveWindowGeometry(const QString& strSetting, QWidget *parent);
|
||||||
/** Restore window size and position */
|
/** Restore window size and position */
|
||||||
|
@ -169,15 +169,17 @@ void Intro::pickDataDirectory()
|
|||||||
if(!GetArg("-datadir", "").empty())
|
if(!GetArg("-datadir", "").empty())
|
||||||
return;
|
return;
|
||||||
/* 1) Default data directory for operating system */
|
/* 1) Default data directory for operating system */
|
||||||
QString dataDir = getDefaultDataDirectory();
|
QString dataDirDefaultCurrent = getDefaultDataDirectory();
|
||||||
/* 2) Allow QSettings to override default dir */
|
/* 2) Allow QSettings to override default dir */
|
||||||
dataDir = settings.value("strDataDir", dataDir).toString();
|
QString dataDir = settings.value("strDataDir", dataDirDefaultCurrent).toString();
|
||||||
|
/* 3) Check to see if default datadir is the one we expect */
|
||||||
|
QString dataDirDefaultSettings = settings.value("strDataDirDefault", dataDirDefaultCurrent).toString();
|
||||||
|
|
||||||
if(!fs::exists(GUIUtil::qstringToBoostPath(dataDir)) || GetBoolArg("-choosedatadir", DEFAULT_CHOOSE_DATADIR))
|
if(!fs::exists(GUIUtil::qstringToBoostPath(dataDir)) || GetBoolArg("-choosedatadir", DEFAULT_CHOOSE_DATADIR) || dataDirDefaultCurrent != dataDirDefaultSettings)
|
||||||
{
|
{
|
||||||
/* If current default data directory does not exist, let the user choose one */
|
/* Let the user choose one */
|
||||||
Intro intro;
|
Intro intro;
|
||||||
intro.setDataDirectory(dataDir);
|
intro.setDataDirectory(dataDirDefaultCurrent);
|
||||||
intro.setWindowIcon(QIcon(":icons/bitcoin"));
|
intro.setWindowIcon(QIcon(":icons/bitcoin"));
|
||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
@ -199,12 +201,13 @@ void Intro::pickDataDirectory()
|
|||||||
}
|
}
|
||||||
|
|
||||||
settings.setValue("strDataDir", dataDir);
|
settings.setValue("strDataDir", dataDir);
|
||||||
|
settings.setValue("strDataDirDefault", dataDirDefaultCurrent);
|
||||||
}
|
}
|
||||||
/* Only override -datadir if different from the default, to make it possible to
|
/* Only override -datadir if different from the default, to make it possible to
|
||||||
* override -datadir in the dash.conf file in the default data directory
|
* override -datadir in the dash.conf file in the default data directory
|
||||||
* (to be consistent with dashd behavior)
|
* (to be consistent with dashd behavior)
|
||||||
*/
|
*/
|
||||||
if(dataDir != getDefaultDataDirectory())
|
if(dataDir != dataDirDefaultCurrent)
|
||||||
SoftSetArg("-datadir", GUIUtil::qstringToBoostPath(dataDir).string()); // use OS locale for path setting
|
SoftSetArg("-datadir", GUIUtil::qstringToBoostPath(dataDir).string()); // use OS locale for path setting
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +64,8 @@ NetworkStyle::NetworkStyle(const QString &appName, const int iconColorHueShift,
|
|||||||
{
|
{
|
||||||
// Allow for separate UI settings for testnets
|
// Allow for separate UI settings for testnets
|
||||||
QApplication::setApplicationName(appName);
|
QApplication::setApplicationName(appName);
|
||||||
|
// Make sure settings migrated properly
|
||||||
|
GUIUtil::migrateQtSettings();
|
||||||
// Grab theme from settings
|
// Grab theme from settings
|
||||||
QString theme = GUIUtil::getThemeName();
|
QString theme = GUIUtil::getThemeName();
|
||||||
// load pixmap
|
// load pixmap
|
||||||
|
Loading…
Reference in New Issue
Block a user