22 months agoFix expanding networks in Chat Monitor settings
Shane Synan [Sat, 14 Jan 2017 20:54:53 +0000 (14:54 -0600)]
Fix expanding networks in Chat Monitor settings

Update the network expanded/collapsed state when setting a model,
including filtered models.

This fixes the Chat Monitor settings page not updating the expanded
and collapsed networks on first load.  It might be excessive to apply
on every model change; if performance issues arise, it can be moved
to BufferView::setFilteredModel() or elsewhere.

Add comments!

Resolves GH-271.

(cherry picked from commit efee441a243efb88929e1e275d71ee27991bf074)

22 months agocommon: Don't return a bool from main()
Manuel Nickschas [Thu, 13 Apr 2017 20:01:30 +0000 (22:01 +0200)]
common: Don't return a bool from main()

gcc now warns about this (rightfully).

(cherry picked from commit b962956cd82ba1900cc6d3390b691b90401bc1b4)

22 months agoSplit messages on newlines as per IRC protocol
Shane Synan [Tue, 27 Dec 2016 13:26:03 +0000 (08:26 -0500)]
Split messages on newlines as per IRC protocol

When handling user input sent over the protocol, split apart messages
on QChar::LineFeed, processing and displaying each as individual
messages sent one after the other.  This applies to /query, /say,
/notice, and /me.  Otherwise, the IRC protocol interprets anything
after each line break as a new message.

Fixes inability to send multi-line content via copy-paste on
Quasseldroid.  Quassel desktop currently works around this issue by
sending multiple individual messages for every line break.

Test case:
1.  Install Quasseldroid (stable or alpha), connect to a core
2.  Copy some text to the Android clipboard that has a line break in
    it (not just word-wrap).
3.  Paste into Quasseldroid
4.  Send message

Before: Message shows up with line break (LF character on desktop),
        IRC server treats all lines after first as raw commands.

After:  Message gets split into multiple smaller messages at each
        line break.

This should also work for /query, /say, /notice, and /me.

See: https://tools.ietf.org/html/rfc1459#page-8

Closes GH-263.

(cherry picked from commit 97a9b1646bb0d6362cef14bac3a577481cc01e49)

22 months agoMake reloadCerts also handle the IPv6 server
Willem Jan Palenstijn [Sun, 27 Nov 2016 13:34:07 +0000 (14:34 +0100)]
Make reloadCerts also handle the IPv6 server

Closes GH-264.

(cherry picked from commit 2bcdfeb7291667014106f6add98f8e7866bb1cc7)

22 months agoDo a full install by default
Hannah von Reth [Sat, 22 Oct 2016 13:37:55 +0000 (15:37 +0200)]
Do a full install by default

Closes GH-261.

(cherry picked from commit feb81a05d218102d525a09a1959a1cb98b323827)

22 months agoFix typo Chocolately -> Chocolatey
Shane Synan [Mon, 28 Nov 2016 11:46:31 +0000 (05:46 -0600)]
Fix typo Chocolately -> Chocolatey

Official name is Chocolatey, e.g. https://chocolatey.org/ .

(The number of times I've mistyped this myself...)

(cherry picked from commit 03440c041fa76b6b7d39c9cc61b96bcfbb0699b8)

22 months agoRetry Chocolatey install to workaround failures
Shane Synan [Mon, 28 Nov 2016 11:39:49 +0000 (05:39 -0600)]
Retry Chocolatey install to workaround failures

Automatically retry up to 3 times on failure when installing
Chocolatey modules, using the 'appveyor-retry' script.  This can be
removed later if needed.

Sometimes Chocolatey returns a 404 for a package that exists.  This
happens a lot.  The official fix is to get the Business edition for
the more-stable private CDN, but since we're an open-source community
effort, sometimes a little kludgery goes a long way.

See http://help.appveyor.com/discussions/suggestions/816-generic-wrapper-for-retry#comment_40579488
And https://github.com/appveyor/ci/issues/418

(cherry picked from commit 19f50b66742c42f9139d34a61a3198981dfbe5ed)

22 months agoFix hang for single result search after others
Shane Synan [Thu, 13 Oct 2016 08:39:14 +0000 (03:39 -0500)]
Fix hang for single result search after others

Add check for equal start and end indices in updateHighlights, stop
the search loop when this happens.  Regular search still seems to
work fine (if you found this via 'git blame', whoops).

Unfortunately, this seems specific to the contents of a buffer.
First, find a buffer that you've encountered freezing, and keep track
of what was loaded, where it was, and the two most recent search

For example...
1.  Load some backlog to a buffer
2.  Search for term with any number of matches
3.  Making sure to -type over existing words without first
    backspacing-, search for another term with only one match

Expected: Search results found, no freezing
Actual:   Quassel hangs.  startPos and endPos = same place,
          start = 0, end = 0, _currentHighlight appears to retain
          values from the previous search.

Resolves GH-259.

(cherry picked from commit 6d35d3ab0b4885c2db40e5aa25574a5764e52c51)

22 months agoRe-add execute permissions to bundled inxi
Shane Synan [Tue, 4 Oct 2016 06:54:42 +0000 (01:54 -0500)]
Re-add execute permissions to bundled inxi

Re-add execute permissions to bundled copy of inxi, letting Quassel
run it via /exec (including /sysinfo and /inxi).

Finishes up upgrade started in 83923d7c121dbcf514d4ff5b0ac2abb6eb08c6b9

Resolves GH-258.

(cherry picked from commit f323363cfe7d1545928e60f609d5a2926907f579)

22 months agoDisable high DPI scaling on anything but Windows
Martin T. H. Sandsmark [Sun, 25 Sep 2016 14:18:35 +0000 (16:18 +0200)]
Disable high DPI scaling on anything but Windows

The automatic scaling only works well on Windows.

See e. g. e33532e048fa12ee32429ca83ee31aa8f065147d in qttools,
QTBUG-50698 and QTBUG-52318.

Resolves GH-254.

(cherry picked from commit 27f186f9c78928d8c929d534f9f845978ba5bc83)

22 months agocommon: Work around SFINAE issues in MSVC
Manuel Nickschas [Thu, 6 Oct 2016 17:42:38 +0000 (19:42 +0200)]
common: Work around SFINAE issues in MSVC

MSVC 2015 still has... issues with SFINAE, so the usual way to use
std::enable_if doesn't compile. So let's try and SFINAE this in a
different way until MS fixes their compiler.

(cherry picked from commit bfa14a673eabd3a3f17d68843a634703c821df9c)

22 months agocommon: Remove unused Exception type
Manuel Nickschas [Tue, 4 Oct 2016 21:01:40 +0000 (23:01 +0200)]
common: Remove unused Exception type

Also fix a typo in docs.

(cherry picked from commit 850493dbdb0a5580f7feceeaecdcb898c41f7b94)

22 months agocommon: Add generic stream operators for enum types
Manuel Nickschas [Tue, 4 Oct 2016 20:53:01 +0000 (22:53 +0200)]
common: Add generic stream operators for enum types

These operators use the underlying type of a given enum to
(de)serialize to and from QDataStream.

(cherry picked from commit 933e1bf5264b6bbd91941f1f06e6e9675e24221a)

22 months agoUse override in a few more places to avoid compiler warnings
Manuel Nickschas [Tue, 27 Sep 2016 21:03:30 +0000 (23:03 +0200)]
Use override in a few more places to avoid compiler warnings

Clang complains about inconsistent use of virtual and override, and
for some reason the only offender when building against Qt 5 was
multilineedit.h. This commit fixes the ungodly amount of warnings that
that one header produced.

When building against Qt 4 we still get warnings from the various
application classes; however fixing them triggers a million new
warnings related to Q_OBJECT which is beyond our control, so we'll
just have to wait until we can finally deprecate support for Qt 4
for good...

(cherry picked from commit 4e53ef2a62b2b6b4f103b016bf2f4260a9c02ad4)

22 months agoAvoid deprecation warnings with Qt 5.7
Manuel Nickschas [Tue, 27 Sep 2016 20:28:46 +0000 (22:28 +0200)]
Avoid deprecation warnings with Qt 5.7

The versioned QStyleOption derivatives are deprecated in Qt 5,
and Qt 5.7 actually gets noisy about that. So remove these by
the unversioned class names.

(cherry picked from commit 8eab2bd6ca5c9b8de11ed1db6d0900d9c9360a5d)

22 months agoFix my AboutData entry
Michael Marley [Mon, 19 Sep 2016 21:59:21 +0000 (17:59 -0400)]
Fix my AboutData entry

My PPAs only work for Ubuntu, not Debian.

Resolves GH-251.

(cherry picked from commit b707eb2ccc87feafa6a4f88a55462c9ef84c86f3)

22 months agoUpdate ThanksTo in the AboutDlg
Manuel Nickschas [Tue, 20 Sep 2016 21:06:10 +0000 (23:06 +0200)]
Update ThanksTo in the AboutDlg

This was pretty outdated and mentioned companies that no longer exist.
Bring the content of that tab into the present. Add new icons, remove

Also modernize the code a tiny bit, and ease the life of translators
by factoring out most of the RichText stuff.

(cherry picked from commit 69e767d13b6c2880a46d8a84cfab6678b15b26cf)


22 months agoUpdates old links/urls in the about dialog
Bernhard Scheirle [Thu, 15 Sep 2016 11:11:34 +0000 (13:11 +0200)]
Updates old links/urls in the about dialog

(cherry picked from commit b9e68a13d276ee7e1d0338fa1f94f3ae8e5902bc)

22 months agoUpdate ChangeLog
Manuel Nickschas [Mon, 19 Sep 2016 21:18:39 +0000 (23:18 +0200)]
Update ChangeLog

(cherry picked from commit 5874811543d0e6a9e14ff621a2bc0489dd38ab25)

22 months agoUpdate AboutData
Manuel Nickschas [Mon, 19 Sep 2016 21:17:50 +0000 (23:17 +0200)]
Update AboutData

New contributors, and one new author!

(cherry picked from commit cbf0154ea097d4c2c5c51169e63147d1a8a069af)

22 months agoUse Qt::AA_UseHighDpiPixmaps
Hannah von Reth [Thu, 8 Sep 2016 11:30:26 +0000 (13:30 +0200)]
Use Qt::AA_UseHighDpiPixmaps

This will fix some issues... and introduce new ones:

* Some pixmaps are now cut
* Old banner pixmap still pixelated
* Overall looks much less pixelated

Resolves GH-248.

(cherry picked from commit d29a6e9521e27e5d4d86fec82b5daa71085f87a5)

22 months agoOnly load the `EnableSpellCheck` setting for KDE4 users.
Bernhard Scheirle [Fri, 19 Aug 2016 06:06:40 +0000 (08:06 +0200)]
Only load the `EnableSpellCheck` setting for KDE4 users.

Others either have no spell checking at all or use KF5 Sonnet with
its own settings / settings page.

Resolves GH-242.

(cherry picked from commit b7a5431d9528e467e48c77be6614e08e0b9eab8d)

22 months agoPrevent the spelling highlighter from disabling itself
Bernhard Scheirle [Fri, 19 Aug 2016 06:15:03 +0000 (08:15 +0200)]
Prevent the spelling highlighter from disabling itself

Resolves GH-241.

(cherry picked from commit 97e06500c62eccc20c50d10e6ed09bc3fcebcde4)

22 months agoFix multiline textedit not expanding on OS X
A. V. Lukyanov [Thu, 11 Aug 2016 07:57:27 +0000 (10:57 +0300)]
Fix multiline textedit not expanding on OS X

Fixes #1212. Resolves GH-240.

(cherry picked from commit 03d1b64ddb8638465eafb4dca2dfd592739603cf)

22 months agoOn OS X restore from both dock and tray
A. V. Lukyanov [Wed, 3 Aug 2016 18:47:26 +0000 (21:47 +0300)]
On OS X restore from both dock and tray

(cherry picked from commit b6028cdd595b736e8cffa1bddb6ad60df364301e)

22 months agoOn OS X restore from dock
A. V. Lukyanov [Wed, 3 Aug 2016 02:16:29 +0000 (05:16 +0300)]
On OS X restore from dock

(cherry picked from commit c67fec44128f48c1ac2ab7ef2b6f73a27fb67f66)

22 months agoOn OS X allow minimize on close
A. V. Lukyanov [Tue, 2 Aug 2016 18:34:56 +0000 (21:34 +0300)]
On OS X allow minimize on close

(cherry picked from commit d499638e2350488b9029f27caed6e38c2dbde33f)

22 months agoQueryBufferItem disconnect IrcUser when removing
Shane Synan [Wed, 27 Jul 2016 06:53:53 +0000 (02:53 -0400)]
QueryBufferItem disconnect IrcUser when removing

Add call to disconnect() when removing IrcUser from QueryBufferItem,
preventing _ircUser from triggering removeIrcUser() again when it's
destroyed by going out of scope.  Additionally, limit dataChanged()
to when IrcUser is removed.  May offer slight speed benefits.

Fixes at least one case of the client showing some nicknames as
offline when they're actually available (e.g. restarting the client
without restarting the core reveals them as online).

Test case from Bitlbee - receive following (no delay between AWAYs):
:nick!name@gmail.com JOIN :&bitlbee
:nick!name@gmail.com AWAY :Away (Testing)
:nick!name@gmail.com QUIT :Leaving...
:nick!name@gmail.com AWAY :User is offline

Before, 'nick' was wrongly shown as not available.  After, 'nick' is
shown as away with the message "User is offline".

(Bitlbee does this as GTalk/XMPP allow for messaging offline users)

Resolves GH-239.

(cherry picked from commit 5f81caea6345ed85a91e2d03d5a626081392d12c)

22 months agoShow IRC server error messages when unexpected
Shane Synan [Tue, 6 Sep 2016 21:33:58 +0000 (16:33 -0500)]
Show IRC server error messages when unexpected

Handle ERROR replies from IRC servers, displaying the error message
in the status buffer.

Add method 'disconnectExpected' to CoreNetwork to expose when a
disconnect is expected.  As we're expecting a server error message
when issuing QUIT, hide it to avoid showing redundant information.

This fixes users getting disconnected by the server without any way
to find out why.

Resolves GH-238.

(cherry picked from commit 56b2bf3a1a742971a5de7ced1b57024424fc78b8)

22 months agoFix disconnected networks not collapsing on login
Shane Synan [Tue, 26 Jul 2016 21:42:45 +0000 (17:42 -0400)]
Fix disconnected networks not collapsing on login

Remove call to expandAll() - later calls to setExpandedState() should
automatically expand connected networks.

Before, Qt4 would collapse disconnected networks and expand connected
networks, but Qt5 would always expand both.  After, both collapse
disconnected and expand connected.

Resolves GH-237.

(cherry picked from commit af3b5761f118a0be37f9713e529efd874bf8e11e)

22 months agoUse Qt5.7 for appveyor.
Hannah von Reth [Sat, 9 Jul 2016 18:04:59 +0000 (20:04 +0200)]
Use Qt5.7 for appveyor.

Also use gcc 5.3 shipped by Qt.

Resolves GH-231.

(cherry picked from commit ee6d3c8ffac3da41346c0f396a4a780714cdbea1)

22 months agoRemove CoreInfo from the ClientRegistered handshake message
Manuel Nickschas [Tue, 13 Sep 2016 22:46:07 +0000 (00:46 +0200)]
Remove CoreInfo from the ClientRegistered handshake message

This string was only used by pre-0.5 clients, and even then only
for displaying information on the connection dialog during the
handshake phase, so it is safe to remove. This prevents the core
from leaking information about itself before a successful login.

(cherry picked from commit 3856cfd6126cdea97c91a22be7ded92ccc0a3577)

22 months agoSnapcraft packaging for quasselcore
Christian [Sat, 16 Jul 2016 14:48:10 +0000 (16:48 +0200)]
Snapcraft packaging for quasselcore

Resolves GH-235.

(cherry picked from commit 2f3e8eee76e73ba48581509a9fd95b87f45ded48)

22 months agoUpdate INSTALL for WebEngine/WebKit
Manuel Nickschas [Wed, 7 Sep 2016 23:40:09 +0000 (01:40 +0200)]
Update INSTALL for WebEngine/WebKit

WebEngine is a new feature, and WebKit is deprecated and unmaintained.
Update INSTALL to reflect the changes.

(cherry picked from commit 342b2df76f0a2a9e0bf234c681c3072a56216e14)


22 months agoAdapt macosx_makePackage.sh for svg icon support
romibi [Sat, 16 Jul 2016 13:02:12 +0000 (15:02 +0200)]
Adapt macosx_makePackage.sh for svg icon support

Resolves GH-234.

(cherry picked from commit 7d73788c24bd88e3ace7fc44444c3a02fc736579)


22 months agoEnable Breeze on Appveyor
romibi [Fri, 15 Jul 2016 20:24:32 +0000 (22:24 +0200)]
Enable Breeze on Appveyor

(cherry picked from commit c1de4b1b8abea79fbef14b700662c6521bfcee1b)

23 months agoAdd spacers to Chat & Nick Lists settings page
Shane Synan [Wed, 13 Jul 2016 14:51:11 +0000 (10:51 -0400)]
Add spacers to Chat & Nick Lists settings page

Add horizontal and vertical spacers to Use Custom Colors and
Custom Nick List toggles on Chat & Nick Lists settings page.  Adjust
the grid layout to maintain similar spacing as prior.

This keeps it from stretching across the entire screen when the
settings dialog is very wide (e.g. maximized).

Resolves GH-232.

(cherry picked from commit 84c1954b281f42c9915c6a20861269d4121da660)

23 months agoAdd horizontal spacer to Appearance settings page
Shane Synan [Wed, 13 Jul 2016 14:27:37 +0000 (10:27 -0400)]
Add horizontal spacer to Appearance settings page

Add horizontal spacer to Message Redirection toggles on Appearance
settings page.  Adjust the grid layout to maintain similar spacing as

This keeps it from stretching across the entire screen when the
settings dialog is very wide (e.g. maximized).

(cherry picked from commit 2f5718ceaa6f2ef998333fb0002f302d4d12346e)

23 months agoAuto-resize Settings to fit wide widgets
Shane Synan [Wed, 13 Jul 2016 15:27:43 +0000 (11:27 -0400)]
Auto-resize Settings to fit wide widgets

Add check for settingsTree width.  If it's not at the maximum width,
resize the Settings dialog to fit it.  Qt should keep the dialog
within bounds of the screen, and the user can always resize the
dialog if needed.

This fixes the Settings dialog squashing the settings tree with the
Sonnet spell-checking widget, Ubuntu 16.04 on en_US, and a 1920×1080

(cherry picked from commit 65c463f0154b12bbcd15d3b51ac231dd530fad3a)

23 months agoEnable Qt's high-DPI scaling introduced in Qt5.6
romibi [Thu, 14 Jul 2016 09:36:07 +0000 (11:36 +0200)]
Enable Qt's high-DPI scaling introduced in Qt5.6

Resolves GH-233.

(cherry picked from commit d6129e6eb33cabdda455b1c2a71f9fb9bf4efb9d)

23 months agoFix cmd+Q invalidating the layout somehow
romibi [Sat, 9 Jul 2016 16:30:44 +0000 (18:30 +0200)]
Fix cmd+Q invalidating the layout somehow

On Mac OSX Qt Applications (with Frameworks packaged) receive the
CloseEvent twice. (See https://bugreports.qt.io/browse/QTBUG-43344)
This triggers a bug where Quassels Main-Window stays hidden and all
Layout states get reset on next launch.
Workaround by checking if event already received...

Resolves GH-230.

(cherry picked from commit 89175f57858e885d23dac1401f6f14db20ba9002)

23 months agoFix Mac Deploy scripts for newer Xcode and git
romibi [Tue, 5 Jul 2016 19:39:39 +0000 (21:39 +0200)]
Fix Mac Deploy scripts for newer Xcode and git

Resolves GH-229.

(cherry picked from commit 236ad337e4f2bb4227547efe590942fe2b6c6052)

23 months agoEnable OSX dmg deployment on Travis
romibi [Tue, 5 Jul 2016 19:33:42 +0000 (21:33 +0200)]
Enable OSX dmg deployment on Travis

Resolves GH-228.

(cherry picked from commit 644305459a762c910c808bd6b0b64143da275228)

23 months agoDisable webkit by default
Martin T. H. Sandsmark [Sat, 2 Jul 2016 16:24:05 +0000 (18:24 +0200)]
Disable webkit by default

Qt WebKit is deprecated and a bit of a walking security hole, so it
makes sense to disable by default.

Resolves GH-225.

(cherry picked from commit a27d49cabc3e0fc2831fb65d786d37601c43fed9)

23 months agoProperly handle 0 seconds in secondsToString()
Michael Marley [Sat, 2 Jul 2016 14:20:58 +0000 (10:20 -0400)]
Properly handle 0 seconds in secondsToString()

Previously if 0 seconds was passed in, an empty string would be
returned.  Instead, "0 sec" should be returned.

Resolves GH-223.

(cherry picked from commit 757dc75aada1e4c5077cf46969f6422bffa08ce3)

23 months agoAllow client-side channel buffer merges, and associated changes.
selabnayr [Fri, 24 Jun 2016 21:38:04 +0000 (14:38 -0700)]
Allow client-side channel buffer merges, and associated changes.

networkmodel.cpp: Mark ChannelBufferItems as being a drop target, to
allow for channel buffer merging.

bufferviewfilter.cpp: Rework BufferViewFilter::flags() to make it more
clear what's going on, and remove the restriction that made
QueryBuffers the only merge-able buffers.

bufferview.cpp: Rework BufferView::dropEvent() to add a bunch of
comments, and allow ChannelBuffers to be merged as well as QueryBuffers.
ChannelBuffers can only be the source for a merge if they are not
currently joined, to prevent UI weirdness of being in a channel but not
having any associated UI elements.

Resolves GH-220.

(cherry picked from commit 6ee26fd6d0a163314002616d277e5444f11b7720)

23 months agoAllow core-side channel buffer merges
selabnayr [Fri, 24 Jun 2016 21:20:50 +0000 (14:20 -0700)]
Allow core-side channel buffer merges

Also fix a typo in the warning for a merge that fails the tests.

(cherry picked from commit 809f86daa290cf67f9b30445b26378fff0030672)

23 months agoSimplify CMake code
Rolf Eike Beer [Fri, 1 Jul 2016 16:47:06 +0000 (18:47 +0200)]
Simplify CMake code

(cherry picked from commit 8cacd45fd61aeaa5a50ed9985577022cae00fcff)

23 months agoDon't redefine activated signal.
Hannah von Reth [Fri, 24 Jun 2016 06:55:22 +0000 (08:55 +0200)]
Don't redefine activated signal.

Resolves GH-219.

(cherry picked from commit e4b63b5b8feb90942f8221377727d0ee2ef277cb)

23 months agoOnly register deregister quassel with snore if it wasn't done yet.
Hannah von Reth [Fri, 24 Jun 2016 06:54:57 +0000 (08:54 +0200)]
Only register deregister quassel with snore if it wasn't done yet.

(cherry picked from commit 1fb64c8c58a96d40f64724827430658fca5eddef)

23 months agoAdd AppData metadata for quassel, quasselclient.
Ben Rosser [Wed, 15 Jun 2016 22:18:27 +0000 (18:18 -0400)]
Add AppData metadata for quassel, quasselclient.

The freedesktop.org AppData standard defines metadata for GUI
applications that wish to show up in various graphical software
centers, such as GNOME Software. See the specification for
more details: https://people.freedesktop.org/~hughsient/appdata/

Applications without metadata will not show up in GNOME Software,
and possibly other graphical package managers. As GNOME Software
is the recommended way on Fedora Workstation to install software,
this means that without these files users won't be able to find
quassel or quasselclient.

Fixes #1400. Resolves GH-216.

(cherry picked from commit 91cdf2d76f6b57de2860f3d632cd2a40c17fb0b4)

23 months agoReload SSL certificates on signal SIGHUP
Shane Synan [Mon, 5 Sep 2016 19:19:03 +0000 (14:19 -0500)]
Reload SSL certificates on signal SIGHUP

Catch SIGHUP, use it to reload configuration (SSL certs), similar to
nginx and other server programs.  This allows easy automation of
reloading certificates, an important factor with services such as
Let's Encrypt.

If reloading certificates fails, the old certificates are kept to
avoid disrupting new connections until the situation is sorted out.

Resolves GH-208.

(cherry picked from commit 25a3ae50ac0d9835283e4f5f10fcfcc10ed5575d)

23 months agoDisconnect CoreSession _networks before delete
Shane Synan [Mon, 5 Sep 2016 19:09:17 +0000 (14:09 -0500)]
Disconnect CoreSession _networks before delete

Explicitly call disconnect for each CoreNetwork, process events, then
wait for each network to disconnect before deleting it.

This overwrides the automatic cleanup in CoreNetwork to handle
shutting down tens of networks at once.  This allows all CoreNetworks
to start disconnecting at once before waiting for each to individually
shut down.

Resolves GH-207.

(cherry picked from commit d414dd5212cc00f1d43615528bb97470a65143b5)

23 months agoProcess events when destroying CoreNetwork
Shane Synan [Mon, 5 Sep 2016 19:07:51 +0000 (14:07 -0500)]
Process events when destroying CoreNetwork

During shutdown, process events in CoreNetwork, and wait for the
socket to disconnect.  This fixes the QUIT command not getting sent
to IRC networks.

[Unreal 3.2]
> Before
<-- dcircuit_dev (quasseldev@hostmask.IP) has quit (Input/output error)
> After
<-- dcircuit_dev (quasseldev@hostmask.IP) has quit (Quit: My Message!)
> Before
<-- dcircuit_dev (~quasselde@hostmask) has quit (Remote host closed the connection)
> After
<-- dcircuit_dev (~quasselde@hostmask) has quit (Quit: My Message!)

Where "My Message!" is specified in Configure Quassel -> IRC
-> Identities -> Advanced -> Quit Reason

Note: Freenode hides quit messages from clients that disconnect soon
after connecting.  Stay connected ~10 minutes before testing QUIT.

(cherry picked from commit 59ed0127591f946a68a6ee7f30b23deb37d26821)

23 months agoDon't log socket error when disconnecting
Shane Synan [Tue, 7 Jun 2016 09:43:38 +0000 (05:43 -0400)]
Don't log socket error when disconnecting

Add flag _disconnectExpected, set to true in disconnectFromIrc() in
order to ignore RemoteHostClosed socket errors.  It's not really an
error when it's expected behavior, no?

(cherry picked from commit ff2aeb5dad907f833b4311243213e5ee9fe12dfc)

23 months agoFix crash if topic has a CarriageReturn
romibi [Thu, 16 Jun 2016 22:50:40 +0000 (00:50 +0200)]
Fix crash if topic has a CarriageReturn

Resolves GH-218.

(cherry picked from commit d3f99ef6bfc13599dcbddc2f84d29351b7a07d87)

23 months agoFix maybe-uninitialized compile warning
Shane Synan [Wed, 15 Jun 2016 20:09:57 +0000 (16:09 -0400)]
Fix maybe-uninitialized compile warning

Declare hashVersion as latest version before loading results from
database.  This resolves a warning when building inside
Qt Creator 3.0.1.

Resolves GH-215.

(cherry picked from commit af787c6830e12c665572044db1beab65473607b9)

23 months agoFix a crash with MSVC debug builds.
Hannah von Reth [Sat, 11 Jun 2016 15:30:08 +0000 (17:30 +0200)]
Fix a crash with MSVC debug builds.

When staticMetaObject.className() was called before qApp->exec(),
the application crashed. This happend only in debug builds.

Resolves GH-213.

(cherry picked from commit 991142d7dfd2e36f0b30089a223aafda3d9b4409)

23 months agoDisable dbus on Windows.
Hannah von Reth [Sat, 11 Jun 2016 12:48:27 +0000 (14:48 +0200)]
Disable dbus on Windows.

Closes GH-212.

(cherry picked from commit 0ac7d74296835deb853a39f4804ca7583374751a)

23 months agoStrip format codes when checking for highlights
Shane Synan [Fri, 10 Jun 2016 21:14:21 +0000 (17:14 -0400)]
Strip format codes when checking for highlights

Strip format codes from message content when checking for highlights.
This fixes color-coded messages not triggering highlights, e.g.
messages from the qAnnounce bot in #quassel.

Closes GH-211.

(cherry picked from commit f34bb7b60263683e8527b7b19cc5d1590390c4b1)

23 months agoModify Mac Deploy-Script for QtWebEngine
romibi [Wed, 6 Jul 2016 11:53:53 +0000 (13:53 +0200)]
Modify Mac Deploy-Script for QtWebEngine

Closes GH-210.

(cherry picked from commit 3146f78bbaea728e59aee86aa91c7e68ceac6322)

23 months agoUpdate Appveyor Script to use QtWebEngine
romibi [Wed, 6 Jul 2016 11:31:53 +0000 (13:31 +0200)]
Update Appveyor Script to use QtWebEngine

mingw does not support QtWebEngine
and Qt5.6 does not have QtWebKit

(cherry picked from commit 0b744bc12437a45cfcc6a2cc297138e0a5252141)

23 months agoFix WebPreview not updating when using QtWebEngine
romibi [Fri, 10 Jun 2016 09:07:19 +0000 (11:07 +0200)]
Fix WebPreview not updating when using QtWebEngine

(cherry picked from commit 101848c405a81911bf0404b35c0046664c1d2303)

23 months agoUse QtWebEngine instead of QtWebKit if available
romibi [Fri, 10 Jun 2016 09:05:20 +0000 (11:05 +0200)]
Use QtWebEngine instead of QtWebKit if available

(cherry picked from commit 138e6d461c259df8052497d7228391ce6548bd5f)

23 months agoFancify README with Markdown, build status, links
Shane Synan [Wed, 8 Jun 2016 17:57:51 +0000 (13:57 -0400)]
Fancify README with Markdown, build status, links

Transition README into Markdown formatting, still persisting the
ability to read it as plain-text, asides from the status badges.

Add AppVeyor and Travis CI status badges to the top of the page.  Not
only does this make it easier to access build history, it's a pretty
quick way to tell if the build is working or not.

Add a few more handy links to (hopefully) help those stumbling across
Quassel's dev repo without prior knowledge.

Closes GH-209.

(cherry picked from commit 6d191d78dfafd07daeb3b39e140677c10a1e4a6a)

23 months agoUpdate inxi to version 2.3.0
Michael Marley [Mon, 6 Jun 2016 21:46:02 +0000 (17:46 -0400)]
Update inxi to version 2.3.0

Closes GH-204.

(cherry picked from commit 83923d7c121dbcf514d4ff5b0ac2abb6eb08c6b9)

23 months agoAllow prioritizing QUIT over other commands
Shane Synan [Thu, 9 Jun 2016 11:38:38 +0000 (07:38 -0400)]
Allow prioritizing QUIT over other commands

Add a forceImmediate flag to issueQuit, allowing the QUIT command to
jump the command queue.

A future update will prioritize QUIT when core is shutting down so
other messages won't block showing the user's quit message.

Don't prioritize QUIT normally in case the user sends some messages,
thinks they've all been delivered, then sends a QUIT.

(Eventually, Quassel should display queued messages differently from
messages that have been sent)

Closes GH-201.

(cherry picked from commit 3966090a1e7093c417560f7ee13ab310215d9ccd)

23 months agoAdd command queue prepend, prioritize PING/PONG
Shane Synan [Wed, 1 Jun 2016 23:00:38 +0000 (19:00 -0400)]
Add command queue prepend, prioritize PING/PONG

Add optional flag to putRawLine and putCmd to put any given lines or
commands to the front of the queue (prepend instead of append).

Enable queue prepend for sending PINGs and PONG replies.  This fixes
the issue where Quassel will ping-timeout when trying to send huge
messages (e.g. 40 lines at once), or multiple commands.

Unfortunately, some IRC servers don't behave properly so Quassel may
still get disconnected.  Hopefully other servers will get fixed soon.

Add more documentation, of course.  Document all the things!

(cherry picked from commit 45a0d954542db252ceb62b61243ee5c2253383de)

23 months agoCreate a custom popup menu for mainwindow, add menubar hide option to it
Martin T. H. Sandsmark [Tue, 1 Mar 2016 21:49:03 +0000 (22:49 +0100)]
Create a custom popup menu for mainwindow, add menubar hide option to it

(cherry picked from commit 6c8d44d3c5adbcb2bb2c1c733e96bb1104e45ff9)

23 months agoSlightly reorder travis config
Daniel Albers [Tue, 5 Jul 2016 19:16:48 +0000 (21:16 +0200)]
Slightly reorder travis config

(cherry picked from commit 5091c3c6443e4693ee5ac0e6bbeac6d9fc2cb48c)

23 months agoEnable Mac OSX builds on travis
romibi [Sun, 3 Jul 2016 15:12:58 +0000 (17:12 +0200)]
Enable Mac OSX builds on travis

(cherry picked from commit c6afa95b347cd29fa6def550a21d16f9fc0f996a)

23 months agoCheck touch device type on TouchEvents
romibi [Sun, 3 Jul 2016 13:36:19 +0000 (15:36 +0200)]
Check touch device type on TouchEvents

Check the touch device type to prevent touch pads from being handled as touch

No check required on TouchUpdate and TouchEnd, because if TouchBegin is not
accepted (return true) no following TouchUpdate/End Events are received.

(cherry picked from commit 127226e3619358013ef821acdf9e80f615370b12)

23 months agoSimplify checking if CMake policies need to be set
Rolf Eike Beer [Wed, 18 May 2016 06:54:22 +0000 (08:54 +0200)]
Simplify checking if CMake policies need to be set

Remove the magic knowledge about when a policy was introduced, simply
check if the policy exists.

Closes GH-196.

(cherry picked from commit 8714e651551428b0fed15b7a98d1be514921af7d)

23 months agoSome cleanups
Manuel Nickschas [Wed, 15 Jun 2016 20:12:57 +0000 (22:12 +0200)]
Some cleanups

Closes GH-187.

(cherry picked from commit b509e40498a11254ba39b791ee7131fd319b60ab)

23 months agoDocumentation
romibi [Fri, 10 Jun 2016 22:42:26 +0000 (00:42 +0200)]

and some fixed indentations

(cherry picked from commit d57c91811b8f989bcaa4d5a238c65e9ffcc3b1d4)

23 months agoChange Selection Behaviour
romibi [Fri, 19 Feb 2016 19:47:52 +0000 (20:47 +0100)]
Change Selection Behaviour

Before: (slow) double tap for selection
After: start movement horizontal
(cherry picked from commit eb1db9563e94831770974fcbdb864d855c73017a)

23 months agoRefactoring: Pull Up Duplicate Code
romibi [Fri, 10 Jun 2016 23:52:03 +0000 (01:52 +0200)]
Refactoring: Pull Up Duplicate Code

The event override for NickView and BufferView was Copy&Paste.
To reduce duplicate code i moved that to a new class (TreeViewTouch) now
between QTreeView and the mentioned Classes.

(cherry picked from commit de2c1a4f9bbae7070cf8fd8247db765a23d28a9c)

23 months agoEnable Touch Scroll in Nick-View
romibi [Fri, 10 Jun 2016 23:48:11 +0000 (01:48 +0200)]
Enable Touch Scroll in Nick-View

(cherry picked from commit 7582027d5f569c8487d17959d6aa9e6ca6d2aa33)

23 months agoEnable Touch Scroll in Buffer-View
romibi [Fri, 10 Jun 2016 23:56:17 +0000 (01:56 +0200)]
Enable Touch Scroll in Buffer-View

(cherry picked from commit 4c0c5a52458009b578a23d4abb4e726a13550c12)

23 months agoEnable Touch Scroll in Chat-View
romibi [Wed, 17 Feb 2016 12:54:18 +0000 (13:54 +0100)]
Enable Touch Scroll in Chat-View

(cherry picked from commit 29c7d46de1bb0703e51033ddcec34cb785d6f8c6)

23 months agoAdd docs to IrcUser::updateNickFromMask
Shane Synan [Fri, 27 May 2016 04:39:43 +0000 (00:39 -0400)]
Add docs to IrcUser::updateNickFromMask

(cherry picked from commit a0bcb6393bc23734c9df0283a3ddbe4ec63c2f11)

23 months agoExclude Qt Creator user settings from repository
Shane Synan [Fri, 20 May 2016 06:42:37 +0000 (02:42 -0400)]
Exclude Qt Creator user settings from repository

Add 'CMakeLists.txt.user' to .gitignore to ignore Qt Creator's project
settings.  If needed, it can easily be generated by opening
CMakeLists.txt with Qt Creator.

(cherry picked from commit b163ae76ce6d064942854e1415a4ee0e495adec8)

23 months agoUse Qt 5.6 and msvc2015 (#197)
Hannah von Reth [Thu, 9 Jun 2016 10:49:12 +0000 (12:49 +0200)]
Use Qt 5.6 and msvc2015 (#197)

This commit also adds a copy of the helper appvayor
helper script to the quassel sources.

As Qt 5.6 no longer supports QtWebkit we continue
to provide a mingw Qt 5.5 builds with Webkit.

For builds without Webkit we can probably further reduce the installer size
by removing dll which are no longer needed.

(cherry picked from commit 45dd63cd61a310b3f7b902cf800f0d7a7ec550e4)

23 months agoEnable ccache on Travis
Daniel Albers [Tue, 7 Jun 2016 00:34:29 +0000 (02:34 +0200)]
Enable ccache on Travis

(cherry picked from commit e24224c2f550e60ae5679a9af6d14ae66515b664)

23 months agoUpdate travis build configuration to trusty
Daniel Albers [Mon, 6 Jun 2016 22:09:06 +0000 (00:09 +0200)]
Update travis build configuration to trusty

Also adds packages required to build all features marked as recommended
as well as translations.

Versions currently being installed:
gcc 4.8.4
clang 3.5.0
Qt 4.8.5
Qt 5.2.1

(cherry picked from commit 8aa5180d5db5072c8f15b287df40d2209c3e3685)

23 months agoFix the SSL check with Qt 5.6 and GCC 5 (#199)
martin [Mon, 6 Jun 2016 22:37:22 +0000 (00:37 +0200)]
Fix the SSL check with Qt 5.6 and GCC 5 (#199)

(cherry picked from commit 4768c9e99f99b581d4e32e797db91d0182391696)

23 months agoReplace build date with commit date (#159)
romibi [Mon, 6 Jun 2016 22:05:49 +0000 (00:05 +0200)]
Replace build date with commit date (#159)

Alternative to and based on PR #127

This makes it possible to create reproducible builds.

(cherry picked from commit 620cd1aa35e05099b3f84400dd33afc207c98244)

23 months agoFix two typos (#200)
Alf Gaida [Mon, 6 Jun 2016 21:37:17 +0000 (23:37 +0200)]
Fix two typos (#200)

(cherry picked from commit ef3a1eebb101c108dea196e21e29cc4f6f00459a)

23 months agoFix wrong zh_CN translation
Shengjing Zhu [Mon, 14 Mar 2016 08:54:47 +0000 (16:54 +0800)]
Fix wrong zh_CN translation

(cherry picked from commit 9585227400dd89f8a4d6bbc723f2d36ca0dc1a70)

23 months agoFix inconsistent use of override in NickListWidget
Manuel Nickschas [Tue, 1 Mar 2016 19:01:14 +0000 (20:01 +0100)]
Fix inconsistent use of override in NickListWidget

Clang warns about this.

(cherry picked from commit 7ad7c792cae055a6549916ad190d6c8479bf674e)

23 months agoSet CMake policy for visibility
Manuel Nickschas [Tue, 1 Mar 2016 18:55:53 +0000 (19:55 +0100)]
Set CMake policy for visibility

CMake 3.3+ changed behavior for handling visibility for target types
other than dynamic libraries. This commit adds a cmake_policy call
to allow the new behavior, removing a dev warning in the process.

(cherry picked from commit ea83d86631bc3fa82a2b9a8f415c2424a8bc1a2a)

23 months agoMinor string cleanup
phuzion [Mon, 29 Feb 2016 17:51:10 +0000 (17:51 +0000)]
Minor string cleanup

(cherry picked from commit ae2eb446f695652b1acf00f82c5cc6eb035a94eb)

23 months agoMake "/ " use the rest of the message as a literal
esainane [Sat, 19 Dec 2015 23:31:41 +0000 (12:31 +1300)]
Make "/ " use the rest of the message as a literal

"/ /asdf" now works the same as "//asdf". This is just a convenience for
those of us used to irssi habits, which tend to die hard. :)

(cherry picked from commit d0bab24864dd57e036547240de62dbdbdf654a3d)

2 years agoFix sasl authentication to fail on servers which don't support sasl
Adam [Tue, 15 Nov 2016 16:48:58 +0000 (11:48 -0500)]
Fix sasl authentication to fail on servers which don't support sasl

Resolves GH-262.

3 years agoAdd some more needed DLL's for Link-Preview support
romibi [Sun, 14 Feb 2016 14:06:50 +0000 (15:06 +0100)]
Add some more needed DLL's for Link-Preview support

3 years agoBump version for release 0.12.4
Manuel Nickschas [Sun, 24 Apr 2016 20:23:44 +0000 (22:23 +0200)]
Bump version for release

3 years agoUpdate ChangeLog
Manuel Nickschas [Sun, 24 Apr 2016 20:22:36 +0000 (22:22 +0200)]
Update ChangeLog

3 years agoAdd documentation to isStatusMsg
Shane Synan [Wed, 30 Mar 2016 23:50:46 +0000 (18:50 -0500)]
Add documentation to isStatusMsg

3 years agoHandle STATUSMSG messages
Michael Marley [Wed, 23 Mar 2016 20:47:02 +0000 (16:47 -0400)]
Handle STATUSMSG messages

Previously PRIVMSGs to channels prefixed with certain characters
(usually "+" or "@") (example "@#quassel") would appear in new
query buffers instead of in the channel buffer.  People were using
that problem to broadcast query SPAM in active channels such as

This patch fixes the issue by detecting the condition, first in
ircparser.cpp where it will use the channel name instead of the
sender's nick as the target.  ctcpparser.cpp then sees the prefixed
channel name and reacts by truncating the prefix(es) and setting a
new flag so that the client can tell the message was a STATUSMSG.
A look-ahead system is used to ensure that the channel prefix
character is not stripped even when the channel prefix characters
and STATUSMSG prefix characters overlap.

The server-provided STATUSMSG prefixes are used if available,
otherwise "@" and "+" are used.

This patch doesn't make the client display the STATUSMSGs any
differently than regular messages.  I omitted this because there
was some discussion on the channel about the best way to display
these messages, but no conclusion was ever reached.  This patch
will at least stop the query SPAM and also provides the
infrastructure necessary to change the display format later.

3 years agoEnable Link-Preview on appveyor builds
romibi [Sun, 14 Feb 2016 13:12:53 +0000 (14:12 +0100)]
Enable Link-Preview on appveyor builds