summaryrefslogtreecommitdiff
path: root/src/console/ConsoleModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/console/ConsoleModel.cpp')
-rw-r--r--src/console/ConsoleModel.cpp14
1 files changed, 12 insertions, 2 deletions
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()));
}