~mamarley/quassel/+git/trunk:0.9

Last commit made on 2014-03-25
Get this branch:
git clone -b 0.9 https://git.launchpad.net/~mamarley/quassel/+git/trunk

Branch merges

Branch information

Name:
0.9
Repository:
lp:~mamarley/quassel/+git/trunk

Recent commits

8928395... by Manuel Nickschas

Bump version.inc for release

e0031a1... by Manuel Nickschas

Update ChangeLog

0f90dda... by Manuel Nickschas

Fix round-robin for networks that support it

Some IRC networks perform round-robin by supplying a list of IP addresses
in their DNS records. However, Qt a) always uses the first address of that
list, and b) caches DNS records for a minute. This results that users who
connect at a roughly similar time (like at core startup) will all pick the
same IP for a given round-robin network address.

We now force Qt (simply by calling QHostInfo::fromName()) to perform a fresh
lookup every time it connects to an IRC network, which solves this problem.
However, this will not help you if your OS uses a system DNS cache that does
not reshuffle the list of IPs for repeated lookups.

39322ca... by Manuel Nickschas

Don't always add a colon to custom commands

The IRC spec mandates that spaces be used as separators between the
arguments for a command. However, the last parameter may itself contain
spaces, and to allow this, one can prefix that argument with a colon.

Instead of checking if the colon is needed, Quassel just always added
a colon to the last argument, which usually works fine. However, it broke
some uses of custom server commands.

This fix now checks if the last argument contains a space or starts with
a colon (which then needs to be escaped), and leaves it alone otherwise.

Fixes #1173 - thanks to Gunnar Beutner for providing the patch.

6707438... by Manuel Nickschas

Simplify clean-up-on-network-disconnect handling

Previously, disconnecting from a network would trigger lots of unnecessary
stuff: because the NetworkModel needs to remove affected IrcChannels and
IrcUsers from its model items, we would trigger (on the core side!) an
IrcUser::quit() for every known user in that network, which would then remove
itself from all channels it's in, triggering the corresponding updates in the
related SyncableObjects, which would send lots of signals to the client which
would then perform its own cleanups per IrcUser, followed by throwing away
all IrcChannels and IrcUsers in that network anyway. By the time we reached
Network::removeChansAndUsers(), everything would actually be already all
gone triggered through syncobject updates.

Except in some rare cases when there was still something left behind, triggering
the dreaded "!_ircChannel && ircChannel" assert, that users have been reporting
for years. I still haven't figured out how that could possibly happen.

In any case, the only side effect that explicit call to IrcUser::quit() was
supposed to trigger was the removal of the relevant references in NetworkModel's
items. So now we just brutally delete all IrcUsers and IrcChannels on disconnect,
and have the NetworkModel items listen to the relevant destroyed() signals so
they can do their cleanup. This saves us from sending lots of stuff over the
network, and also should fix the assert (which we've replaced by a warning now,
just in case).

Fixes #1151 and a bunch of duplicates.

05c43ed... by Manuel Nickschas

Don't crash on very long inputs

Because our style engine uses 16 bit indexes, strings can only be
styled if they're shorter than 2^16 characters. We do check for this
in the style engine and refuse to style strings that are longer.

However, just returning an default-constructed StyledString() is wrong,
because other places rely on there being at least one format and the
plaintext be initialized. So the proper way of handling this is just
using the baseFormat and the full string as plaintext instead of an
empty StyledString.

Fixes #1257.

52c52c9... by =?utf-8?q?Deniz_T=C3=BCrkoglu?= <email address hidden>

Disable webpreview to avoid user interactaction

If the user interacts with the webview, for instance click a button
or type text in it, it crashes the client.

Disable the webview so we still get the previews but can't interact
with them.

f732c3d... by Manuel Nickschas

There won't ever be a Qt 4.9...

... and this should actually have been a check for Qt 4.7+.

db899a1... by Manuel Nickschas

Update AboutDlg

ac1777a... by Ycros

Change ifdefs around Main ToolBar fix to target mac only.