summaryrefslogtreecommitdiff
path: root/src/console
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-21 16:58:45 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-21 16:58:45 (GMT)
commitb7328e03acc683839ee84f3ea3eb12c9dfa8d8f1 (patch)
treeaa8b0954e0659c8ddfffed3ef3916191b8766624 /src/console
parentfb6f36907f3fc2169916b72c572637ee07ec44d8 (diff)
downloadpowder-b7328e03acc683839ee84f3ea3eb12c9dfa8d8f1.zip
powder-b7328e03acc683839ee84f3ea3eb12c9dfa8d8f1.tar.gz
Remember Console history
Diffstat (limited to 'src/console')
-rw-r--r--src/console/ConsoleCommand.h5
-rw-r--r--src/console/ConsoleModel.cpp14
2 files changed, 17 insertions, 2 deletions
diff --git a/src/console/ConsoleCommand.h b/src/console/ConsoleCommand.h
index f6f91a3..a40a688 100644
--- a/src/console/ConsoleCommand.h
+++ b/src/console/ConsoleCommand.h
@@ -19,6 +19,11 @@ public:
std::string Command;
int ReturnStatus;
std::string ReturnValue;
+
+ operator std::string() const
+ {
+ return Command;
+ }
};
diff --git a/src/console/ConsoleModel.cpp b/src/console/ConsoleModel.cpp
index fcbee80..df900a3 100644
--- a/src/console/ConsoleModel.cpp
+++ b/src/console/ConsoleModel.cpp
@@ -5,15 +5,25 @@
* Author: Simon
*/
+#include "client/Client.h"
#include "ConsoleModel.h"
ConsoleModel::ConsoleModel() {
-
+ std::vector<std::string> previousHistory = Client::Ref().GetPrefStringArray("Console.History");
+ for(std::vector<std::string>::reverse_iterator iter = previousHistory.rbegin(), end = previousHistory.rend(); iter != end; ++iter)
+ {
+ if(previousCommands.size()<25)
+ {
+ previousCommands.push_front(ConsoleCommand(*iter, 0, ""));
+ currentCommandIndex = previousCommands.size();
+ }
+ }
}
void ConsoleModel::AddObserver(ConsoleView * observer)
{
observers.push_back(observer);
+ observer->NotifyPreviousCommandsChanged(this);
}
int ConsoleModel::GetCurrentCommandIndex()
@@ -67,6 +77,6 @@ void ConsoleModel::notifyCurrentCommandChanged()
}
ConsoleModel::~ConsoleModel() {
-
+ Client::Ref().SetPref("Console.History", std::vector<std::string>(previousCommands.begin(), previousCommands.end()));
}