mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-13 03:30:42 +02:00
Merge 5891 via qt_console_history_persist
This commit is contained in:
commit
7663851899
@ -594,6 +594,41 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
|
|||||||
consoleFontSize = settings.value(fontSizeSettingsKey, QFont().pointSize()).toInt();
|
consoleFontSize = settings.value(fontSizeSettingsKey, QFont().pointSize()).toInt();
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
|
// load history
|
||||||
|
QMap<size_t, QString> rewrite_replace;
|
||||||
|
int size = settings.beginReadArray("nRPCConsoleWindowHistory");
|
||||||
|
history.clear();
|
||||||
|
for (int i = 0; i < size; ++i) {
|
||||||
|
settings.setArrayIndex(i);
|
||||||
|
QString cmd = settings.value("cmd").toString();
|
||||||
|
QString filtered_cmd;
|
||||||
|
{
|
||||||
|
std::string strFilteredCmd, dummy;
|
||||||
|
if (RPCParseCommandLine(nullptr, dummy, cmd.toStdString(), false, &strFilteredCmd)) {
|
||||||
|
filtered_cmd = QString::fromStdString(strFilteredCmd);
|
||||||
|
} else {
|
||||||
|
// Failed to parse command, so we cannot even filter it for the history
|
||||||
|
filtered_cmd = cmd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cmd != filtered_cmd) {
|
||||||
|
// Overwrite this line, and trigger an immediate rewrite of history to purge it
|
||||||
|
cmd = QString(cmd.size(), 'x');
|
||||||
|
rewrite_replace[history.size()] = filtered_cmd;
|
||||||
|
}
|
||||||
|
history.append(cmd);
|
||||||
|
}
|
||||||
|
historyPtr = history.size();
|
||||||
|
settings.endArray();
|
||||||
|
if (!rewrite_replace.empty()) {
|
||||||
|
WriteCommandHistory();
|
||||||
|
for (QMapIterator<size_t, QString> i(rewrite_replace); i.hasNext(); ) {
|
||||||
|
i.next();
|
||||||
|
history[i.key()] = i.value();
|
||||||
|
}
|
||||||
|
WriteCommandHistory();
|
||||||
|
}
|
||||||
|
|
||||||
GUIUtil::handleCloseWindowShortcut(this);
|
GUIUtil::handleCloseWindowShortcut(this);
|
||||||
|
|
||||||
QObject::connect(new QShortcut(QKeySequence(QStringLiteral("Ctrl+D")), ui->tab_console), &QShortcut::activated, this, &QWidget::close);
|
QObject::connect(new QShortcut(QKeySequence(QStringLiteral("Ctrl+D")), ui->tab_console), &QShortcut::activated, this, &QWidget::close);
|
||||||
@ -601,6 +636,18 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
|
|||||||
updateWindowTitle();
|
updateWindowTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RPCConsole::WriteCommandHistory()
|
||||||
|
{
|
||||||
|
// persist history
|
||||||
|
QSettings settings;
|
||||||
|
settings.beginWriteArray("nRPCConsoleWindowHistory");
|
||||||
|
for (int i = 0; i < history.size(); ++i) {
|
||||||
|
settings.setArrayIndex(i);
|
||||||
|
settings.setValue("cmd", history.at(i));
|
||||||
|
}
|
||||||
|
settings.endArray();
|
||||||
|
}
|
||||||
|
|
||||||
RPCConsole::~RPCConsole()
|
RPCConsole::~RPCConsole()
|
||||||
{
|
{
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
@ -619,6 +666,8 @@ RPCConsole::~RPCConsole()
|
|||||||
settings.setValue("PeersTabPeerHeaderState", m_peer_widget_header_state);
|
settings.setValue("PeersTabPeerHeaderState", m_peer_widget_header_state);
|
||||||
settings.setValue("PeersTabBanlistHeaderState", m_banlist_widget_header_state);
|
settings.setValue("PeersTabBanlistHeaderState", m_banlist_widget_header_state);
|
||||||
|
|
||||||
|
WriteCommandHistory();
|
||||||
|
|
||||||
m_node.rpcUnsetTimerInterface(rpcTimerInterface);
|
m_node.rpcUnsetTimerInterface(rpcTimerInterface);
|
||||||
delete rpcTimerInterface;
|
delete rpcTimerInterface;
|
||||||
delete ui;
|
delete ui;
|
||||||
|
@ -153,6 +153,7 @@ private:
|
|||||||
|
|
||||||
void startExecutor();
|
void startExecutor();
|
||||||
void setTrafficGraphRange(int mins);
|
void setTrafficGraphRange(int mins);
|
||||||
|
void WriteCommandHistory();
|
||||||
|
|
||||||
enum ColumnWidths
|
enum ColumnWidths
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user