summaryrefslogtreecommitdiff
path: root/src/console
diff options
context:
space:
mode:
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()));
}