summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-10-20 07:58:12 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-10-20 08:04:21 (GMT)
commitd46ebaac1cf7161fd0a551c34cf80f441f6d19ab (patch)
treea47705e770329b386b48b6fb5883965740cf438d /Swift/Controllers/Chat/MUCController.h
parenta49ca97a7b2ad61385d0f6f22ec598a63d889ae7 (diff)
downloadswift-d46ebaac1cf7161fd0a551c34cf80f441f6d19ab.zip
swift-d46ebaac1cf7161fd0a551c34cf80f441f6d19ab.tar.bz2
Tell MUCController to handle disconnect/reconnect rejoins.
This causes the MUCController to deal with reconnects by requesting a rejoin. It also prepares for doing time-based context requests. Although I've traced the code down, and confirmed that presenceSender->sendPresence(joinPresence); is being called, the stanza is never sent. This needs further investigation, as currently it prevents the rejoins working. Resolves: #625
Diffstat (limited to 'Swift/Controllers/Chat/MUCController.h')
-rw-r--r--Swift/Controllers/Chat/MUCController.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/Swift/Controllers/Chat/MUCController.h b/Swift/Controllers/Chat/MUCController.h
index 3f226ef..6924b48 100644
--- a/Swift/Controllers/Chat/MUCController.h
+++ b/Swift/Controllers/Chat/MUCController.h
@@ -44,7 +44,7 @@ namespace Swift {
MUCController(const JID& self, const JID &muc, const String &nick, StanzaChannel* stanzaChannel, PresenceSender* presenceSender, IQRouter* iqRouter, ChatWindowFactory* chatWindowFactory, PresenceOracle* presenceOracle, AvatarManager* avatarManager, UIEventStream* events, bool useDelayForLatency, TimerFactory* timerFactory, EventController* eventController);
~MUCController();
boost::signal<void ()> onUserLeft;
- virtual void setEnabled(bool enabled);
+ virtual void setOnline(bool online);
void rejoin();
static void appendToJoinParts(std::vector<NickJoinPart>& joinParts, const NickJoinPart& newEvent);
static String generateJoinPartString(std::vector<NickJoinPart> joinParts);
@@ -76,6 +76,7 @@ namespace Swift {
void updateJoinParts();
bool shouldUpdateJoinParts();
void dayTicked() {lastWasPresence_ = false;}
+ void processUserPart();
private:
MUC* muc_;
UIEventStream* events_;
@@ -85,6 +86,7 @@ namespace Swift {
bool parting_;
bool joined_;
bool lastWasPresence_;
+ bool shouldJoinOnReconnect_;
boost::bsignals::scoped_connection avatarChangedConnection_;
boost::shared_ptr<Timer> loginCheckTimer_;
std::set<String> currentOccupants_;