summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/Client.cpp21
-rw-r--r--src/client/Client.h2
-rw-r--r--src/client/ClientListener.h1
3 files changed, 24 insertions, 0 deletions
diff --git a/src/client/Client.cpp b/src/client/Client.cpp
index 3a46e23..d851e55 100644
--- a/src/client/Client.cpp
+++ b/src/client/Client.cpp
@@ -211,11 +211,31 @@ void Client::notifyUpdateAvailable()
}
}
+void Client::notifyAuthUserChanged()
+{
+ for (std::vector<ClientListener*>::iterator iterator = listeners.begin(), end = listeners.end(); iterator != end; ++iterator)
+ {
+ (*iterator)->NotifyAuthUserChanged(this);
+ }
+}
+
void Client::AddListener(ClientListener * listener)
{
listeners.push_back(listener);
}
+void Client::RemoveListener(ClientListener * listener)
+{
+ for (std::vector<ClientListener*>::iterator iterator = listeners.begin(), end = listeners.end(); iterator != end; ++iterator)
+ {
+ if((*iterator) == listener)
+ {
+ listeners.erase(iterator);
+ return;
+ }
+ }
+}
+
void Client::Shutdown()
{
ClearThumbnailRequests();
@@ -256,6 +276,7 @@ Client::~Client()
void Client::SetAuthUser(User user)
{
authUser = user;
+ notifyAuthUserChanged();
}
User Client::GetAuthUser()
diff --git a/src/client/Client.h b/src/client/Client.h
index b2822d4..adaa449 100644
--- a/src/client/Client.h
+++ b/src/client/Client.h
@@ -67,6 +67,7 @@ private:
void updateStamps();
static vector<std::string> explodePropertyString(std::string property);
void notifyUpdateAvailable();
+ void notifyAuthUserChanged();
//Config file handle
json::Object configDocument;
@@ -79,6 +80,7 @@ public:
~Client();
void AddListener(ClientListener * listener);
+ void RemoveListener(ClientListener * listener);
RequestStatus ExecVote(int saveID, int direction);
RequestStatus UploadSave(SaveInfo * save);
diff --git a/src/client/ClientListener.h b/src/client/ClientListener.h
index 308721c..4fc2d89 100644
--- a/src/client/ClientListener.h
+++ b/src/client/ClientListener.h
@@ -16,6 +16,7 @@ public:
virtual ~ClientListener() {}
virtual void NotifyUpdateAvailable(Client * sender) {}
+ virtual void NotifyAuthUserChanged(Client * sender) {}
};