projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cmake: Fix build with Qt 5.11
[quassel.git]
/
src
/
common
/
ircuser.cpp
diff --git
a/src/common/ircuser.cpp
b/src/common/ircuser.cpp
index
4d5f572
..
b793d68
100644
(file)
--- a/
src/common/ircuser.cpp
+++ b/
src/common/ircuser.cpp
@@
-1,5
+1,5
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2005-201
2
by the Quassel Project *
+ * Copyright (C) 2005-201
8
by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-42,6
+42,7
@@
IrcUser::IrcUser(const QString &hostmask, Network *network) : SyncableObject(net
_ircOperator(),
_lastAwayMessage(0),
_whoisServiceReply(),
_ircOperator(),
_lastAwayMessage(0),
_whoisServiceReply(),
+ _encrypted(false),
_network(network),
_codecForEncoding(0),
_codecForDecoding(0)
_network(network),
_codecForEncoding(0),
_codecForDecoding(0)
@@
-86,7
+87,7
@@
QStringList IrcUser::channels() const
void IrcUser::setCodecForEncoding(const QString &name)
{
void IrcUser::setCodecForEncoding(const QString &name)
{
- setCodecForEncoding(QTextCodec::codecForName(name.to
Ascii
()));
+ setCodecForEncoding(QTextCodec::codecForName(name.to
Latin1
()));
}
}
@@
-98,7
+99,7
@@
void IrcUser::setCodecForEncoding(QTextCodec *codec)
void IrcUser::setCodecForDecoding(const QString &name)
{
void IrcUser::setCodecForDecoding(const QString &name)
{
- setCodecForDecoding(QTextCodec::codecForName(name.to
Ascii
()));
+ setCodecForDecoding(QTextCodec::codecForName(name.to
Latin1
()));
}
}
@@
-145,6
+146,15
@@
void IrcUser::setRealName(const QString &realName)
}
}
+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::setAway(const bool &away)
{
if (away != _away) {
@@
-248,6
+258,14
@@
void IrcUser::setSuserHost(const QString &suserHost)
}
}
+void IrcUser::setEncrypted(bool encrypted)
+{
+ _encrypted = encrypted;
+ emit encryptedSet(encrypted);
+ SYNC(ARG(encrypted))
+}
+
+
void IrcUser::updateObjectName()
{
renameObject(QString::number(network()->networkId().toInt()) + "/" + _nick);
void IrcUser::updateObjectName()
{
renameObject(QString::number(network()->networkId().toInt()) + "/" + _nick);
@@
-266,12
+284,13
@@
void IrcUser::updateHostmask(const QString &mask)
}
}
-void IrcUser::joinChannel(IrcChannel *channel)
+void IrcUser::joinChannel(IrcChannel *channel
, bool skip_channel_join
)
{
Q_ASSERT(channel);
if (!_channels.contains(channel)) {
_channels.insert(channel);
{
Q_ASSERT(channel);
if (!_channels.contains(channel)) {
_channels.insert(channel);
- channel->joinIrcUser(this);
+ if (!skip_channel_join)
+ channel->joinIrcUser(this);
}
}
}
}
@@
-336,9
+355,11
@@
void IrcUser::channelDestroyed()
void IrcUser::setUserModes(const QString &modes)
{
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);
+ }
}
}
@@
-347,13
+368,19
@@
void IrcUser::addUserModes(const QString &modes)
if (modes.isEmpty())
return;
if (modes.isEmpty())
return;
+ // Don't needlessly sync when no changes are made
+ bool changesMade = false;
for (int i = 0; i < modes.count(); i++) {
for (int i = 0; i < modes.count(); i++) {
- if (!_userModes.contains(modes[i]))
+ if (!_userModes.contains(modes[i]))
{
_userModes += modes[i];
_userModes += modes[i];
+ changesMade = true;
+ }
}
}
- SYNC(ARG(modes))
- emit userModesAdded(modes);
+ if (changesMade) {
+ SYNC(ARG(modes))
+ emit userModesAdded(modes);
+ }
}
}