diff options
-rw-r--r-- | Documentation/SConscript | 2 | ||||
-rw-r--r-- | Documentation/SwiftUserGuide/.gitignore | 5 | ||||
-rw-r--r-- | Documentation/SwiftUserGuide/SConscript | 15 | ||||
-rw-r--r-- | Documentation/SwiftUserGuide/Swift Users Guide.xml | 94 | ||||
-rw-r--r-- | Swift/Controllers/Chat/ChatsManager.cpp | 8 | ||||
-rw-r--r-- | Swift/Controllers/Chat/ChatsManager.h | 3 | ||||
-rw-r--r-- | Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp | 2 | ||||
-rw-r--r-- | Swift/Controllers/MainController.cpp | 2 |
8 files changed, 124 insertions, 7 deletions
diff --git a/Documentation/SConscript b/Documentation/SConscript index da93894..03305a7 100644 --- a/Documentation/SConscript +++ b/Documentation/SConscript @@ -1,4 +1,4 @@ Import("env") if env["SCONS_STAGE"] == "build" : - SConscript(dirs = ["SwiftenDevelopersGuide", "API"]) + SConscript(dirs = ["SwiftenDevelopersGuide", "SwiftUserGuide", "API"]) diff --git a/Documentation/SwiftUserGuide/.gitignore b/Documentation/SwiftUserGuide/.gitignore new file mode 100644 index 0000000..6f7b520 --- /dev/null +++ b/Documentation/SwiftUserGuide/.gitignore @@ -0,0 +1,5 @@ +catalog.xml +fop.cfg +*.pdf +*.html +*.fo diff --git a/Documentation/SwiftUserGuide/SConscript b/Documentation/SwiftUserGuide/SConscript new file mode 100644 index 0000000..50f60bc --- /dev/null +++ b/Documentation/SwiftUserGuide/SConscript @@ -0,0 +1,15 @@ +Import("env") + +env.Tool("DocBook", toolpath = ["#/BuildTools/DocBook/SCons"]) + +################################################################################ +# Code generation helper +################################################################################ + +import sys, re, os.path + +################################################################################ + +if "doc" in ARGUMENTS : + env.DocBook("Swift Users Guide.xml") + diff --git a/Documentation/SwiftUserGuide/Swift Users Guide.xml b/Documentation/SwiftUserGuide/Swift Users Guide.xml new file mode 100644 index 0000000..7cbec60 --- /dev/null +++ b/Documentation/SwiftUserGuide/Swift Users Guide.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> + +<book> + <title>Swift User Guide</title> + + <chapter> + <title>Introduction</title> + <section> + <title>Swift</title> + <para> + Swift is a chat client using the XMPP protocol. This document describes use of the client for end users; for a further description of the protocol read + <citetitle>XMPP: The Definitive Guide</citetitle> + <citation><biblioref linkend="XMPP-TDG"/></citation> + or for development using XMPP see the + <citetitle>Swiften Developer's Guide</citetitle> + <citation><biblioref linkend="Swiften-Developers-Guide" /></citation> + </para> + </section> + </chapter> + + <chapter> + <title>Getting Started</title> + <para> + </para> + </chapter> + + <chapter> + <title>Managing Contacts</title> + <para> + </para> + </chapter> + + <chapter> + <title>Chatting to Contacts</title> + <para> + </para> + </chapter> + + <chapter> + <title>Chatting in Rooms (MUCs)</title> + <para> + </para> + </chapter> + + <chapter> + <title>Room (MUC) Administration</title> + <para> + </para> + </chapter> + + <chapter> + <title>Server Configuration</title> + <para> + </para> + </chapter> + + <chapter> + <title>Eagle Mode</title> + <para> + </para> + </chapter> + + <bibliography> + <title>Bibliography</title> + + <biblioentry id="XMPP-TDG"> + <abbrev>XMPP-TDG</abbrev> + <title><ulink url="http://oreilly.com/catalog/9780596157197/">XMPP: The + Definitive Guide</ulink></title> + <author> + <firstname>Peter</firstname> + <surname>Saint-Andre</surname> + </author> + <author> + <firstname>Kevin</firstname> + <surname>Smith</surname> + </author> + <author> + <firstname>Remko</firstname> + <surname>Tronçon</surname> + </author> + </biblioentry> + + <biblioentry id='Swiften-Developers-Guide'> + <abbrev>Swiften-dev</abbrev> + <title><ulink url='http://swift.im/swiften/guide/'>Swiften Developer's Guide</ulink></title> + <author> + <firstname>Remko</firstname> + <surname>Tronçon</surname> + </author> + </biblioentry> + </bibliography> +</book>
\ No newline at end of file diff --git a/Swift/Controllers/Chat/ChatsManager.cpp b/Swift/Controllers/Chat/ChatsManager.cpp index e6441e1..83a09d4 100644 --- a/Swift/Controllers/Chat/ChatsManager.cpp +++ b/Swift/Controllers/Chat/ChatsManager.cpp @@ -60,14 +60,16 @@ ChatsManager::ChatsManager( MUCManager* mucManager, MUCSearchWindowFactory* mucSearchWindowFactory, ProfileSettingsProvider* settings, - FileTransferOverview* ftOverview) : + FileTransferOverview* ftOverview, + bool eagleMode) : jid_(jid), joinMUCWindowFactory_(joinMUCWindowFactory), useDelayForLatency_(useDelayForLatency), mucRegistry_(mucRegistry), entityCapsProvider_(entityCapsProvider), mucManager(mucManager), - ftOverview_(ftOverview) { + ftOverview_(ftOverview), + eagleMode_(eagleMode) { timerFactory_ = timerFactory; eventController_ = eventController; stanzaChannel_ = stanzaChannel; @@ -119,7 +121,7 @@ void ChatsManager::saveRecents() { /* Work around Boost bug https://svn.boost.org/trac/boost/ticket/4751 */ activity.push_back(""); } - std::string recent = chat.jid.toString() + "\t" + activity[0] + "\t" + (chat.isMUC ? "true" : "false") + "\t" + chat.nick; + std::string recent = chat.jid.toString() + "\t" + (eagleMode_ ? "" : activity[0]) + "\t" + (chat.isMUC ? "true" : "false") + "\t" + chat.nick; recents += recent + "\n"; if (i++ > 25) { break; diff --git a/Swift/Controllers/Chat/ChatsManager.h b/Swift/Controllers/Chat/ChatsManager.h index 8e94d9a..5d8d555 100644 --- a/Swift/Controllers/Chat/ChatsManager.h +++ b/Swift/Controllers/Chat/ChatsManager.h @@ -48,7 +48,7 @@ namespace Swift { class ChatsManager { public: - ChatsManager(JID jid, StanzaChannel* stanzaChannel, IQRouter* iqRouter, EventController* eventController, ChatWindowFactory* chatWindowFactory, JoinMUCWindowFactory* joinMUCWindowFactory, NickResolver* nickResolver, PresenceOracle* presenceOracle, PresenceSender* presenceSender, UIEventStream* uiEventStream, ChatListWindowFactory* chatListWindowFactory, bool useDelayForLatency, TimerFactory* timerFactory, MUCRegistry* mucRegistry, EntityCapsProvider* entityCapsProvider, MUCManager* mucManager, MUCSearchWindowFactory* mucSearchWindowFactory, ProfileSettingsProvider* settings, FileTransferOverview* ftOverview); + ChatsManager(JID jid, StanzaChannel* stanzaChannel, IQRouter* iqRouter, EventController* eventController, ChatWindowFactory* chatWindowFactory, JoinMUCWindowFactory* joinMUCWindowFactory, NickResolver* nickResolver, PresenceOracle* presenceOracle, PresenceSender* presenceSender, UIEventStream* uiEventStream, ChatListWindowFactory* chatListWindowFactory, bool useDelayForLatency, TimerFactory* timerFactory, MUCRegistry* mucRegistry, EntityCapsProvider* entityCapsProvider, MUCManager* mucManager, MUCSearchWindowFactory* mucSearchWindowFactory, ProfileSettingsProvider* settings, FileTransferOverview* ftOverview, bool eagleMode); virtual ~ChatsManager(); void setAvatarManager(AvatarManager* avatarManager); void setOnline(bool enabled); @@ -115,5 +115,6 @@ namespace Swift { std::list<ChatListWindow::Chat> recentChats_; ProfileSettingsProvider* profileSettings_; FileTransferOverview* ftOverview_; + bool eagleMode_; }; } diff --git a/Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp b/Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp index 5339703..df519e8 100644 --- a/Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp +++ b/Swift/Controllers/Chat/UnitTest/ChatsManagerTest.cpp @@ -94,7 +94,7 @@ public: ftManager_ = new DummyFileTransferManager(); ftOverview_ = new FileTransferOverview(ftManager_); mocks_->ExpectCall(chatListWindowFactory_, ChatListWindowFactory::createChatListWindow).With(uiEventStream_).Return(chatListWindow_); - manager_ = new ChatsManager(jid_, stanzaChannel_, iqRouter_, eventController_, chatWindowFactory_, joinMUCWindowFactory_, nickResolver_, presenceOracle_, directedPresenceSender_, uiEventStream_, chatListWindowFactory_, true, NULL, mucRegistry_, entityCapsManager_, mucManager_, mucSearchWindowFactory_, profileSettings_, ftOverview_); + manager_ = new ChatsManager(jid_, stanzaChannel_, iqRouter_, eventController_, chatWindowFactory_, joinMUCWindowFactory_, nickResolver_, presenceOracle_, directedPresenceSender_, uiEventStream_, chatListWindowFactory_, true, NULL, mucRegistry_, entityCapsManager_, mucManager_, mucSearchWindowFactory_, profileSettings_, ftOverview_, false); avatarManager_ = new NullAvatarManager(); manager_->setAvatarManager(avatarManager_); diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index c1ba9d0..f4e7adc 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -293,7 +293,7 @@ void MainController::handleConnected() { contactEditController_ = new ContactEditController(rosterController_, uiFactory_, uiEventStream_); - chatsManager_ = new ChatsManager(jid_, client_->getStanzaChannel(), client_->getIQRouter(), eventController_, uiFactory_, uiFactory_, client_->getNickResolver(), client_->getPresenceOracle(), client_->getPresenceSender(), uiEventStream_, uiFactory_, useDelayForLatency_, networkFactories_->getTimerFactory(), client_->getMUCRegistry(), client_->getEntityCapsProvider(), client_->getMUCManager(), uiFactory_, profileSettings_, ftOverview_); + chatsManager_ = new ChatsManager(jid_, client_->getStanzaChannel(), client_->getIQRouter(), eventController_, uiFactory_, uiFactory_, client_->getNickResolver(), client_->getPresenceOracle(), client_->getPresenceSender(), uiEventStream_, uiFactory_, useDelayForLatency_, networkFactories_->getTimerFactory(), client_->getMUCRegistry(), client_->getEntityCapsProvider(), client_->getMUCManager(), uiFactory_, profileSettings_, ftOverview_, eagleMode_); client_->onMessageReceived.connect(boost::bind(&ChatsManager::handleIncomingMessage, chatsManager_, _1)); chatsManager_->setAvatarManager(client_->getAvatarManager()); |