/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
}
+void IrcUser::setAccount(const QString &account)
+{
+ if (_account != account) {
+ _account = account;
+ SYNC(ARG(account))
+ }
+}
+
+
void IrcUser::setAway(const bool &away)
{
if (away != _away) {
}
-void IrcUser::joinChannel(IrcChannel *channel)
+void IrcUser::joinChannel(IrcChannel *channel, bool skip_channel_join)
{
Q_ASSERT(channel);
if (!_channels.contains(channel)) {
_channels.insert(channel);
- channel->joinIrcUser(this);
+ if (!skip_channel_join)
+ channel->joinIrcUser(this);
}
}
void IrcUser::setUserModes(const QString &modes)
{
- _userModes = modes;
- SYNC(ARG(modes))
- emit userModesSet(modes);
+ if (_userModes != modes) {
+ _userModes = modes;
+ SYNC(ARG(modes))
+ emit userModesSet(modes);
+ }
}
if (modes.isEmpty())
return;
+ // Don't needlessly sync when no changes are made
+ bool changesMade = false;
for (int i = 0; i < modes.count(); i++) {
- if (!_userModes.contains(modes[i]))
+ if (!_userModes.contains(modes[i])) {
_userModes += modes[i];
+ changesMade = true;
+ }
}
- SYNC(ARG(modes))
- emit userModesAdded(modes);
+ if (changesMade) {
+ SYNC(ARG(modes))
+ emit userModesAdded(modes);
+ }
}