Resolve the qt/guiutil <-> qt/optionsmodal CD
This pull request attempts to resolve the `qt/guiutil` <-> `qt/optionsmodel` circular dependency. The circular dependency is resolved by moving the `Intro::getDefaultDataDirectory` member function to `GUIUtil::getDefaultDataDirectory`.
This commit is contained in:
parent
08bd21a3bd
commit
fa1c8e2978
6 changed files with 16 additions and 18 deletions
|
@ -244,6 +244,11 @@ QList<QModelIndex> getEntryData(QAbstractItemView *view, int column)
|
|||
return view->selectionModel()->selectedRows(column);
|
||||
}
|
||||
|
||||
QString getDefaultDataDirectory()
|
||||
{
|
||||
return boostPathToQString(GetDefaultDataDir());
|
||||
}
|
||||
|
||||
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir,
|
||||
const QString &filter,
|
||||
QString *selectedSuffixOut)
|
||||
|
|
|
@ -79,6 +79,11 @@ namespace GUIUtil
|
|||
|
||||
void setClipboard(const QString& str);
|
||||
|
||||
/**
|
||||
* Determine default data directory for operating system.
|
||||
*/
|
||||
QString getDefaultDataDirectory();
|
||||
|
||||
/** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
||||
when no suffix is provided by the user.
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ QString Intro::getDataDirectory()
|
|||
void Intro::setDataDirectory(const QString &dataDir)
|
||||
{
|
||||
ui->dataDirectory->setText(dataDir);
|
||||
if(dataDir == getDefaultDataDirectory())
|
||||
if(dataDir == GUIUtil::getDefaultDataDirectory())
|
||||
{
|
||||
ui->dataDirDefault->setChecked(true);
|
||||
ui->dataDirectory->setEnabled(false);
|
||||
|
@ -180,11 +180,6 @@ void Intro::setDataDirectory(const QString &dataDir)
|
|||
}
|
||||
}
|
||||
|
||||
QString Intro::getDefaultDataDirectory()
|
||||
{
|
||||
return GUIUtil::boostPathToQString(GetDefaultDataDir());
|
||||
}
|
||||
|
||||
bool Intro::pickDataDirectory(interfaces::Node& node)
|
||||
{
|
||||
QSettings settings;
|
||||
|
@ -193,7 +188,7 @@ bool Intro::pickDataDirectory(interfaces::Node& node)
|
|||
if(!gArgs.GetArg("-datadir", "").empty())
|
||||
return true;
|
||||
/* 1) Default data directory for operating system */
|
||||
QString dataDir = getDefaultDataDirectory();
|
||||
QString dataDir = GUIUtil::getDefaultDataDirectory();
|
||||
/* 2) Allow QSettings to override default dir */
|
||||
dataDir = settings.value("strDataDir", dataDir).toString();
|
||||
|
||||
|
@ -239,7 +234,7 @@ bool Intro::pickDataDirectory(interfaces::Node& node)
|
|||
* override -datadir in the bitcoin.conf file in the default data directory
|
||||
* (to be consistent with bitcoind behavior)
|
||||
*/
|
||||
if(dataDir != getDefaultDataDirectory()) {
|
||||
if(dataDir != GUIUtil::getDefaultDataDirectory()) {
|
||||
node.softSetArg("-datadir", GUIUtil::qstringToBoostPath(dataDir).string()); // use OS locale for path setting
|
||||
}
|
||||
return true;
|
||||
|
@ -293,7 +288,7 @@ void Intro::on_ellipsisButton_clicked()
|
|||
|
||||
void Intro::on_dataDirDefault_clicked()
|
||||
{
|
||||
setDataDirectory(getDefaultDataDirectory());
|
||||
setDataDirectory(GUIUtil::getDefaultDataDirectory());
|
||||
}
|
||||
|
||||
void Intro::on_dataDirCustom_clicked()
|
||||
|
|
|
@ -48,11 +48,6 @@ public:
|
|||
*/
|
||||
static bool pickDataDirectory(interfaces::Node& node);
|
||||
|
||||
/**
|
||||
* Determine default data directory for operating system.
|
||||
*/
|
||||
static QString getDefaultDataDirectory();
|
||||
|
||||
Q_SIGNALS:
|
||||
void requestCheck();
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <net.h>
|
||||
#include <netbase.h>
|
||||
#include <txdb.h> // for -dbcache defaults
|
||||
#include <qt/intro.h>
|
||||
|
||||
#include <QNetworkProxy>
|
||||
#include <QSettings>
|
||||
|
@ -110,7 +109,7 @@ void OptionsModel::Init(bool resetSettings)
|
|||
addOverriddenOption("-par");
|
||||
|
||||
if (!settings.contains("strDataDir"))
|
||||
settings.setValue("strDataDir", Intro::getDefaultDataDirectory());
|
||||
settings.setValue("strDataDir", GUIUtil::getDefaultDataDirectory());
|
||||
|
||||
// Wallet
|
||||
#ifdef ENABLE_WALLET
|
||||
|
@ -187,7 +186,7 @@ void OptionsModel::Reset()
|
|||
BackupSettings(GetDataDir(true) / "guisettings.ini.bak", settings);
|
||||
|
||||
// Save the strDataDir setting
|
||||
QString dataDir = Intro::getDefaultDataDirectory();
|
||||
QString dataDir = GUIUtil::getDefaultDataDirectory();
|
||||
dataDir = settings.value("strDataDir", dataDir).toString();
|
||||
|
||||
// Remove all entries from our QSettings object
|
||||
|
|
|
@ -36,7 +36,6 @@ EXPECTED_CIRCULAR_DEPENDENCIES=(
|
|||
"txmempool -> validation -> validationinterface -> txmempool"
|
||||
"qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/receivecoinsdialog -> qt/addressbookpage"
|
||||
"qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/signverifymessagedialog -> qt/addressbookpage"
|
||||
"qt/guiutil -> qt/walletmodel -> qt/optionsmodel -> qt/intro -> qt/guiutil"
|
||||
"qt/addressbookpage -> qt/bitcoingui -> qt/walletview -> qt/sendcoinsdialog -> qt/sendcoinsentry -> qt/addressbookpage"
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue