|
|
|
|
@ -305,6 +305,9 @@ bool NodeConfig::load() {
|
|
|
|
|
else if (key == "debug_file") m_debugFile = val; |
|
|
|
|
else if (key == "debug_level") m_debugLevel = val; |
|
|
|
|
else if (key == "debug_categories") m_debugCategories = val; |
|
|
|
|
} else if (debugSection) { |
|
|
|
|
if (!m_debugCategories.isEmpty()) m_debugCategories += ','; |
|
|
|
|
m_debugCategories += key + '=' + val; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
f.close(); |
|
|
|
|
@ -354,6 +357,16 @@ bool NodeConfig::saveFull() {
|
|
|
|
|
out << "debug_level=" << (m_debugLevel.isEmpty() ? "info" : m_debugLevel) << "\n"; |
|
|
|
|
out << "debug_categories=" << m_debugCategories << "\n\n"; |
|
|
|
|
|
|
|
|
|
if (!m_debugCategories.isEmpty()) { |
|
|
|
|
out << "[debug]\n"; |
|
|
|
|
QStringList dbg = m_debugCategories.split(',', Qt::SkipEmptyParts); |
|
|
|
|
for (const QString& d : dbg) { |
|
|
|
|
int eq = d.indexOf('='); |
|
|
|
|
if (eq > 0) out << d.left(eq).trimmed() << '=' << d.mid(eq + 1).trimmed() << '\n'; |
|
|
|
|
} |
|
|
|
|
out << '\n'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
out << "[allowed_keys]\n"; |
|
|
|
|
out << "allow_all=yes\n\n"; |
|
|
|
|
|
|
|
|
|
@ -404,6 +417,14 @@ bool NodeConfig::save() {
|
|
|
|
|
config_update_in_lines(lines, "gui", "debug_level", m_debugLevel.isEmpty() ? "info" : m_debugLevel, true); |
|
|
|
|
config_update_in_lines(lines, "gui", "debug_categories", m_debugCategories, true); |
|
|
|
|
|
|
|
|
|
/* [debug] section: each category=level as separate line */ |
|
|
|
|
QStringList dbg = m_debugCategories.split(',', Qt::SkipEmptyParts); |
|
|
|
|
for (const QString& d : dbg) { |
|
|
|
|
int eq = d.indexOf('='); |
|
|
|
|
if (eq > 0) |
|
|
|
|
config_update_in_lines(lines, "debug", d.left(eq).trimmed(), d.mid(eq + 1).trimmed(), true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) return false; |
|
|
|
|
QTextStream out(&f); |
|
|
|
|
for (int i = 0; i < lines.size(); i++) |
|
|
|
|
|