Skip to content

Commit 4824a7d

Browse files
committed
gui: Add Intro::UpdateFreeSpaceLabel()
If a new custom datadir has enough free space, the prune checkbox gets unchecked, unless -prune=NNN command-line option is provided.
1 parent daa3f3f commit 4824a7d

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

src/qt/intro.cpp

+19-12
Original file line numberDiff line numberDiff line change
@@ -251,24 +251,31 @@ void Intro::setStatus(int status, const QString &message, quint64 bytesAvailable
251251
{
252252
ui->freeSpace->setText("");
253253
} else {
254-
QString freeString = tr("%n GB of free space available", "", bytesAvailable/GB_BYTES);
255-
if (bytesAvailable < m_required_space_gb * GB_BYTES) {
256-
freeString += " " + tr("(of %n GB needed)", "", m_required_space_gb);
257-
ui->freeSpace->setStyleSheet("QLabel { color: #800000 }");
258-
ui->prune->setChecked(true);
259-
} else if (bytesAvailable / GB_BYTES - m_required_space_gb < 10) {
260-
freeString += " " + tr("(%n GB needed for full chain)", "", m_required_space_gb);
261-
ui->freeSpace->setStyleSheet("QLabel { color: #999900 }");
262-
ui->prune->setChecked(true);
263-
} else {
264-
ui->freeSpace->setStyleSheet("");
254+
m_bytes_available = bytesAvailable;
255+
if (ui->prune->isEnabled()) {
256+
ui->prune->setChecked(m_bytes_available < (m_blockchain_size_gb + m_chain_state_size_gb + 10) * GB_BYTES);
265257
}
266-
ui->freeSpace->setText(freeString + ".");
258+
UpdateFreeSpaceLabel();
267259
}
268260
/* Don't allow confirm in ERROR state */
269261
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(status != FreespaceChecker::ST_ERROR);
270262
}
271263

264+
void Intro::UpdateFreeSpaceLabel()
265+
{
266+
QString freeString = tr("%n GB of free space available", "", m_bytes_available / GB_BYTES);
267+
if (m_bytes_available < m_required_space_gb * GB_BYTES) {
268+
freeString += " " + tr("(of %n GB needed)", "", m_required_space_gb);
269+
ui->freeSpace->setStyleSheet("QLabel { color: #800000 }");
270+
} else if (m_bytes_available / GB_BYTES - m_required_space_gb < 10) {
271+
freeString += " " + tr("(%n GB needed for full chain)", "", m_required_space_gb);
272+
ui->freeSpace->setStyleSheet("QLabel { color: #999900 }");
273+
} else {
274+
ui->freeSpace->setStyleSheet("");
275+
}
276+
ui->freeSpace->setText(freeString + ".");
277+
}
278+
272279
void Intro::on_dataDirectory_textChanged(const QString &dataDirStr)
273280
{
274281
/* Disable OK button until check result comes in */

src/qt/intro.h

+2
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ private Q_SLOTS:
7171
const int64_t m_chain_state_size_gb;
7272
//! Total required space (in GB) depending on user choice (prune or not prune).
7373
int64_t m_required_space_gb{0};
74+
uint64_t m_bytes_available{0};
7475

7576
void startThread();
7677
void checkPath(const QString &dataDir);
7778
QString getPathToCheck();
7879
void UpdatePruneLabels(int64_t prune_target_gb);
80+
void UpdateFreeSpaceLabel();
7981

8082
friend class FreespaceChecker;
8183
};

0 commit comments

Comments
 (0)