From d786e1aeff062ef4f0a962d55ddce7d41c5f512e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sat, 21 Aug 2010 20:29:50 +0200
Subject: Revert "Store avatars per profile."


diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp
index cef09eb..b267dd2 100644
--- a/Swift/Controllers/MainController.cpp
+++ b/Swift/Controllers/MainController.cpp
@@ -51,7 +51,6 @@
 #include "Swiften/Queries/Requests/GetDiscoInfoRequest.h"
 #include "Swiften/Queries/Requests/GetVCardRequest.h"
 #include "Swiften/Avatars/AvatarFileStorage.h"
-#include "Swiften/Avatars/AvatarStorageFactory.h"
 #include "Swiften/Avatars/AvatarManager.h"
 #include "Swiften/StringCodecs/SHA1.h"
 #include "Swiften/StringCodecs/Hexify.h"
@@ -64,7 +63,7 @@ static const String CLIENT_VERSION = "1.0-devel";
 static const String CLIENT_NODE = "http://swift.im";
 
 
-MainController::MainController(ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, EventWindowFactory* eventWindowFactory, SettingsProvider *settings, SystemTray* systemTray, SoundPlayer* soundPlayer, XMLConsoleWidgetFactory* xmlConsoleWidgetFactory, ChatListWindowFactory* chatListWindowFactory, MUCSearchWindowFactory* mucSearchWindowFactory, AvatarStorageFactory* avatarStorageFactory, ApplicationMessageDisplay* applicationMessageDisplay, bool useDelayForLatency)
+MainController::MainController(ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, EventWindowFactory* eventWindowFactory, SettingsProvider *settings, SystemTray* systemTray, SoundPlayer* soundPlayer, XMLConsoleWidgetFactory* xmlConsoleWidgetFactory, ChatListWindowFactory* chatListWindowFactory, MUCSearchWindowFactory* mucSearchWindowFactory, AvatarStorage* avatarStorage, ApplicationMessageDisplay* applicationMessageDisplay, bool useDelayForLatency)
 	: timerFactory_(&boostIOServiceThread_.getIOService()), idleDetector_(&idleQuerier_, &timerFactory_, 100), chatWindowFactory_(chatWindowFactory), mainWindowFactory_(mainWindowFactory), loginWindowFactory_(loginWindowFactory), settings_(settings), loginWindow_(NULL), useDelayForLatency_(useDelayForLatency)  {
 	presenceOracle_ = NULL;
 	avatarManager_ = NULL;
@@ -89,7 +88,7 @@ MainController::MainController(ChatWindowFactory* chatWindowFactory, MainWindowF
 	chatListWindowFactory_ = chatListWindowFactory;
 	uiEventStream_ = new UIEventStream();
 
-	avatarStorageFactory_ = avatarStorageFactory;
+	avatarStorage_ = avatarStorage;
 	eventController_ = new EventController();
 	eventController_->onEventQueueLengthChange.connect(boost::bind(&MainController::handleEventQueueLengthChange, this, _1));
 
@@ -131,15 +130,11 @@ MainController::MainController(ChatWindowFactory* chatWindowFactory, MainWindowF
 MainController::~MainController() {
 	delete systemTrayController_;
 	delete soundEventController_;
-	delete avatarStorageFactory_;
+	delete avatarStorage_;
 	delete xmlConsoleController_;
 	delete uiEventStream_;
 	delete eventController_;
 	resetClient();
-	for(std::map<JID, AvatarStorage*>::const_iterator i = avatarStorages_.begin(); i != avatarStorages_.end(); ++i) {
-		delete i->second;
-	}
-	avatarStorages_.clear();
 }
 
 void MainController::resetClient() {
@@ -205,7 +200,7 @@ void MainController::handleConnected() {
 		presenceOracle_ = new PresenceOracle(client_);
 		nickResolver_ = new NickResolver(xmppRoster_);		
 
-		avatarManager_ = new AvatarManager(client_, client_, getAvatarStorageForProfile(jid_));
+		avatarManager_ = new AvatarManager(client_, client_, avatarStorage_);
 
 		rosterController_ = new RosterController(jid_, xmppRoster_, avatarManager_, mainWindowFactory_, nickResolver_, presenceOracle_, eventController_, uiEventStream_, client_);
 		rosterController_->onChangeStatusRequest.connect(boost::bind(&MainController::handleChangeStatusRequest, this, _1, _2));
@@ -475,13 +470,4 @@ void MainController::handleOwnVCardReceived(boost::shared_ptr<VCard> vCard, cons
 	}
 }
 
-AvatarStorage* MainController::getAvatarStorageForProfile(const JID& jid) {
-	std::pair< std::map<JID, AvatarStorage*>::iterator, bool > r = avatarStorages_.insert(std::make_pair<JID,AvatarStorage*>(jid, NULL));
-	if (r.second) {
-		r.first->second = avatarStorageFactory_->createAvatarStorage(jid);
-	}
-	return r.first->second;
-}
-
-
 }
diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h
index e68e6d5..e220211 100644
--- a/Swift/Controllers/MainController.h
+++ b/Swift/Controllers/MainController.h
@@ -9,7 +9,6 @@
 #include "Swiften/Base/boost_bsignals.h"
 #include <boost/shared_ptr.hpp>
 #include <vector>
-#include <map>
 
 #include "Swiften/Network/BoostIOServiceThread.h"
 #include "Swiften/Network/BoostTimerFactory.h"
@@ -29,7 +28,6 @@
 #include "Swiften/Roster/XMPPRoster.h"
 
 namespace Swift {
-	class AvatarStorageFactory;
 	class AvatarStorage;
 	class Application;
 	class Client;
@@ -68,12 +66,11 @@ namespace Swift {
 
 	class MainController {
 		public:
-			MainController(ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, EventWindowFactory* eventWindowFactory, SettingsProvider *settings, SystemTray* systemTray, SoundPlayer* soundPlayer, XMLConsoleWidgetFactory* xmlConsoleWidgetFactory, ChatListWindowFactory* chatListWindowFactory_, MUCSearchWindowFactory* mucSearchWindowFactory, AvatarStorageFactory* avatarStorageFactory, ApplicationMessageDisplay* applicationMessageDisplay, bool useDelayForLatency);
+			MainController(ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, EventWindowFactory* eventWindowFactory, SettingsProvider *settings, SystemTray* systemTray, SoundPlayer* soundPlayer, XMLConsoleWidgetFactory* xmlConsoleWidgetFactory, ChatListWindowFactory* chatListWindowFactory_, MUCSearchWindowFactory* mucSearchWindowFactory, AvatarStorage* avatarStorage, ApplicationMessageDisplay* applicationMessageDisplay, bool useDelayForLatency);
 			~MainController();
 
 
 		private:
-			AvatarStorage* getAvatarStorageForProfile(const JID&);
 			void resetClient();
 			void handleConnected();
 			void handleLoginRequest(const String& username, const String& password, const String& certificateFile, bool remember, bool loginAutomatically);
@@ -107,7 +104,7 @@ namespace Swift {
 			EventWindowFactory* eventWindowFactory_;
 			SettingsProvider *settings_;
 			ProfileSettingsProvider* profileSettings_;
-			AvatarStorageFactory* avatarStorageFactory_;
+			AvatarStorage* avatarStorage_;
 			ApplicationMessageDisplay* applicationMessageDisplay_;
 			ChatController* chatController_;
 			XMPPRosterController* xmppRosterController_;
@@ -140,6 +137,5 @@ namespace Swift {
 			int timeBeforeNextReconnect_;
 			Timer::ref reconnectTimer_;
 			StatusTracker* statusTracker_;
-			std::map<JID, AvatarStorage*> avatarStorages_;
 	};
 }
diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp
index 897fae8..55bc112 100644
--- a/Swift/QtUI/QtSwift.cpp
+++ b/Swift/QtUI/QtSwift.cpp
@@ -23,7 +23,7 @@
 #include "Swiften/Application/Application.h"
 #include "Swiften/Application/PlatformApplication.h"
 #include "Swiften/Application/PlatformApplicationPathProvider.h"
-#include "Swiften/Avatars/AvatarFileStorageFactory.h"
+#include "Swiften/Avatars/AvatarFileStorage.h"
 #include "Swiften/Base/String.h"
 #include "Swiften/Base/Platform.h"
 #include "Swiften/Elements/Presence.h"
@@ -78,7 +78,7 @@ QtSwift::QtSwift(po::variables_map options) : autoUpdater_(NULL) {
 	settings_ = new QtSettingsProvider();
 	application_ = new PlatformApplication(SWIFT_APPLICATION_NAME);
 	applicationPathProvider_ = new PlatformApplicationPathProvider(SWIFT_APPLICATION_NAME);
-	avatarStorageFactory_ = new AvatarFileStorageFactory(applicationPathProvider_->getAvatarDir());
+	avatarStorage_ = new AvatarFileStorage(applicationPathProvider_->getAvatarDir());
 	chatWindowFactory_ = new QtChatWindowFactory(splitter_, settings_, tabs_);
 	soundPlayer_ = new QtSoundPlayer(applicationPathProvider_);
 	if (splitter_) {
@@ -100,7 +100,7 @@ QtSwift::QtSwift(po::variables_map options) : autoUpdater_(NULL) {
 		chatListWindowFactories_.push_back(chatListWindowFactory);
 		QtMUCSearchWindowFactory* mucSearchWindowFactory = new QtMUCSearchWindowFactory();
 		mucSearchWindowFactories_.push_back(mucSearchWindowFactory);
-		MainController* mainController = new MainController(chatWindowFactory_, rosterWindowFactory, loginWindowFactory, eventWindowFactory, settings_, systemTray, soundPlayer_, xmlConsoleWidgetFactory, chatListWindowFactory, mucSearchWindowFactory, avatarStorageFactory_, application_->getApplicationMessageDisplay(), options.count("latency-debug") > 0);
+		MainController* mainController = new MainController(chatWindowFactory_, rosterWindowFactory, loginWindowFactory, eventWindowFactory, settings_, systemTray, soundPlayer_, xmlConsoleWidgetFactory, chatListWindowFactory, mucSearchWindowFactory, avatarStorage_, application_->getApplicationMessageDisplay(), options.count("latency-debug") > 0);
 		mainControllers_.push_back(mainController);
 	}
 
@@ -114,7 +114,6 @@ QtSwift::QtSwift(po::variables_map options) : autoUpdater_(NULL) {
 
 QtSwift::~QtSwift() {
 	delete autoUpdater_;
-	delete avatarStorageFactory_;
 	delete chatWindowFactory_;
 	foreach (QtMainWindowFactory* factory, rosterWindowFactories_) {
 		delete factory;
diff --git a/Swift/QtUI/QtSwift.h b/Swift/QtUI/QtSwift.h
index d877e66..d205f9f 100644
--- a/Swift/QtUI/QtSwift.h
+++ b/Swift/QtUI/QtSwift.h
@@ -25,7 +25,7 @@ namespace Swift {
 	class AutoUpdater;
 	class Application;
 	class ApplicationPathProvider;
-	class AvatarStorageFactory;
+	class AvatarStorage;
 	class MainController;
 	class QtChatWindowFactory;
 	class QtMainWindowFactory;
@@ -60,7 +60,7 @@ namespace Swift {
 			QtChatTabs* tabs_;
 			Application* application_;
 			ApplicationPathProvider* applicationPathProvider_;
-			AvatarStorageFactory* avatarStorageFactory_;
+			AvatarStorage* avatarStorage_;
 			AutoUpdater* autoUpdater_;
 
 	};
diff --git a/Swiften/Avatars/AvatarFileStorage.cpp b/Swiften/Avatars/AvatarFileStorage.cpp
index aeb8db5..a0ebd21 100644
--- a/Swiften/Avatars/AvatarFileStorage.cpp
+++ b/Swiften/Avatars/AvatarFileStorage.cpp
@@ -12,7 +12,6 @@
 namespace Swift {
 
 AvatarFileStorage::AvatarFileStorage(const boost::filesystem::path& path) : path_(path) {
-	std::cerr << "Creating avatar file storage: " << path.string() << std::endl;
 	try {
 		boost::filesystem::create_directory(path_);
 	}
diff --git a/Swiften/Avatars/AvatarFileStorageFactory.h b/Swiften/Avatars/AvatarFileStorageFactory.h
deleted file mode 100644
index fb5963c..0000000
--- a/Swiften/Avatars/AvatarFileStorageFactory.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2010 Remko Tronçon
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
- */
-
-#pragma once
-
-#include <boost/filesystem.hpp>
-
-#include "AvatarStorageFactory.h"
-#include "AvatarFileStorage.h"
-
-namespace Swift {
-	class AvatarFileStorageFactory: public AvatarStorageFactory {
-		public:
-			AvatarFileStorageFactory(const boost::filesystem::path& basePath) : basePath(basePath) {
-			}
-
-			virtual AvatarStorage* createAvatarStorage(const JID& profile) {
-				return new AvatarFileStorage(basePath / profile.getBare().getUTF8String());
-			}
-
-		private:
-			boost::filesystem::path basePath;
-	};
-}
diff --git a/Swiften/Avatars/AvatarStorageFactory.cpp b/Swiften/Avatars/AvatarStorageFactory.cpp
deleted file mode 100644
index b525909..0000000
--- a/Swiften/Avatars/AvatarStorageFactory.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright (c) 2010 Remko Tronçon
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
- */
-
-#include "Swiften/Avatars/AvatarStorageFactory.h"
-
-namespace Swift {
-
-AvatarStorageFactory::~AvatarStorageFactory() {
-
-}
-
-}
diff --git a/Swiften/Avatars/AvatarStorageFactory.h b/Swiften/Avatars/AvatarStorageFactory.h
deleted file mode 100644
index efc26e9..0000000
--- a/Swiften/Avatars/AvatarStorageFactory.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (c) 2010 Remko Tronçon
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
- */
-
-#pragma once
-
-namespace Swift {
-	class AvatarStorage;
-	class JID;
-
-	class AvatarStorageFactory {
-		public:
-			virtual ~AvatarStorageFactory();
-
-			virtual AvatarStorage* createAvatarStorage(const JID& profile) = 0;
-	};
-}
diff --git a/Swiften/SConscript b/Swiften/SConscript
index 0a4530a..3d4d5f6 100644
--- a/Swiften/SConscript
+++ b/Swiften/SConscript
@@ -27,7 +27,6 @@ if env["SCONS_STAGE"] == "build" :
 			"Avatars/AvatarFileStorage.cpp",
 			"Avatars/AvatarManager.cpp",
 			"Avatars/AvatarStorage.cpp",
-			"Avatars/AvatarStorageFactory.cpp",
 			"Chat/ChatStateTracker.cpp",
 			"Chat/ChatStateNotifier.cpp",
 			"Chat/ChatStateMessageSender.cpp",
-- 
cgit v0.10.2-6-g49f6