projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow prioritizing QUIT over other commands
[quassel.git]
/
src
/
core
/
corenetwork.cpp
diff --git
a/src/core/corenetwork.cpp
b/src/core/corenetwork.cpp
index
dd1bf2e
..
8c03dc8
100644
(file)
--- a/
src/core/corenetwork.cpp
+++ b/
src/core/corenetwork.cpp
@@
-207,7
+207,8
@@
void CoreNetwork::connectToIrc(bool reconnecting)
}
}
-void CoreNetwork::disconnectFromIrc(bool requested, const QString &reason, bool withReconnect)
+void CoreNetwork::disconnectFromIrc(bool requested, const QString &reason, bool withReconnect,
+ bool forceImmediate)
{
_quitRequested = requested; // see socketDisconnected();
if (!withReconnect) {
{
_quitRequested = requested; // see socketDisconnected();
if (!withReconnect) {
@@
-235,7
+236,7
@@
void CoreNetwork::disconnectFromIrc(bool requested, const QString &reason, bool
socketDisconnected();
} else {
if (socket.state() == QAbstractSocket::ConnectedState) {
socketDisconnected();
} else {
if (socket.state() == QAbstractSocket::ConnectedState) {
- userInputHandler()->issueQuit(_quitReason);
+ userInputHandler()->issueQuit(_quitReason
, forceImmediate
);
} else {
socket.close();
}
} else {
socket.close();
}
@@
-253,16
+254,21
@@
void CoreNetwork::userInput(BufferInfo buf, QString msg)
}
}
-void CoreNetwork::putRawLine(
QByteArray s
)
+void CoreNetwork::putRawLine(
const QByteArray s, const bool prepend
)
{
{
- if (_tokenBucket > 0)
+ if (_tokenBucket > 0)
{
writeToSocket(s);
writeToSocket(s);
- else
- _msgQueue.append(s);
+ } else {
+ if (prepend) {
+ _msgQueue.prepend(s);
+ } else {
+ _msgQueue.append(s);
+ }
+ }
}
}
-void CoreNetwork::putCmd(const QString &cmd, const QList<QByteArray> ¶ms, const QByteArray &prefix)
+void CoreNetwork::putCmd(const QString &cmd, const QList<QByteArray> ¶ms, const QByteArray &prefix
, const bool prepend
)
{
QByteArray msg;
{
QByteArray msg;
@@
-279,16
+285,16
@@
void CoreNetwork::putCmd(const QString &cmd, const QList<QByteArray> ¶ms, co
msg += params[i];
}
msg += params[i];
}
- putRawLine(msg);
+ putRawLine(msg
, prepend
);
}
}
-void CoreNetwork::putCmd(const QString &cmd, const QList<QList<QByteArray>> ¶ms, const QByteArray &prefix)
+void CoreNetwork::putCmd(const QString &cmd, const QList<QList<QByteArray>> ¶ms, const QByteArray &prefix
, const bool prependAll
)
{
QListIterator<QList<QByteArray>> i(params);
while (i.hasNext()) {
QList<QByteArray> msg = i.next();
{
QListIterator<QList<QByteArray>> i(params);
while (i.hasNext()) {
QList<QByteArray> msg = i.next();
- putCmd(cmd, msg, prefix);
+ putCmd(cmd, msg, prefix
, prependAll
);
}
}
}
}
@@
-496,7
+502,7
@@
void CoreNetwork::socketInitialized()
else {
nick = identity->nicks()[0];
}
else {
nick = identity->nicks()[0];
}
- putRawLine(serverEncode(QString("NICK
:
%1").arg(nick)));
+ putRawLine(serverEncode(QString("NICK %1").arg(nick)));
putRawLine(serverEncode(QString("USER %1 8 * :%2").arg(identity->ident(), identity->realName())));
}
putRawLine(serverEncode(QString("USER %1 8 * :%2").arg(identity->ident(), identity->realName())));
}