2 years agoReject clients that attempt to login before the core is configured
Michael Marley [Mon, 2 Apr 2018 23:11:31 +0000 (19:11 -0400)]
Reject clients that attempt to login before the core is configured

Properly-implemented clients should never try to do this, but if it
is done, this patch prevents it from crashing the core.

Thanks to @chaign_c (https://twitter.com/chaign_c/) for finding this

(cherry picked from commit e17fca767d60c06ca02bc5898ced04f06d3670bd)

2 years agoImplement custom deserializer to add our own sanity checks
Janne Koschinski [Mon, 2 Apr 2018 20:26:34 +0000 (22:26 +0200)]
Implement custom deserializer to add our own sanity checks

This is a rough first implementation in preparation of writing
proper serializers independently of QDataStream.

Thanks to @chaign_c (https://twitter.com/chaign_c/) for finding
issues with QDataStream that prompted this change.

(cherry picked from commit 2b777e99fc9f74d4ed21491710260664a1721d1f))

2 years agouisupport: Forcefully disable horizontal scrollbar in BufferView
Manuel Nickschas [Thu, 12 Apr 2018 20:38:02 +0000 (22:38 +0200)]
uisupport: Forcefully disable horizontal scrollbar in BufferView

Qt 5.10.1 severly broke QHeaderView and by extension, QTreeView,
resulting in a horizontal scrollbar being shown. In order to avoid
making this issue too obvious for people using that version of Qt
(including the builds currently generated by our CI), force the
scrollbar to be hidden in BufferView.

The contents can still be scrolled sideways e.g. with horizontal
mouse wheel emulation, but that should not hit many users in

Earlier or later versions of Qt seem to not suffer from that issue,
but always hiding the scrollbar doesn't hurt either way.

(cherry picked from commit dd27cd1f84ecceb5fb287894373d4cb42131a03f)

2 years agocmake: Add exception handling support to MSVC compile flags
Manuel Nickschas [Tue, 10 Apr 2018 20:18:33 +0000 (22:18 +0200)]
cmake: Add exception handling support to MSVC compile flags

Since STL types may throw, MSVC needs to get told to support
exceptions by specifying the /EHsc flag. Otherwise, it warns about
the lack thereof, even though Quassel itself does not use nor handle

Closes GH-350.

(cherry picked from commit 7a8ea3eee1dcff4eaa5398d1cf5739fa32eccd9e)

2 years agoSemi-yearly copyright bump
Manuel Nickschas [Tue, 10 Apr 2018 20:05:21 +0000 (22:05 +0200)]
Semi-yearly copyright bump

It's not 2015 anymore.

2 years agoPackage Mac Style plugin (for Qt 5.10+)
romibi [Fri, 6 Apr 2018 17:25:17 +0000 (19:25 +0200)]
Package Mac Style plugin (for Qt 5.10+)

Closes GH-349.

(cherry picked from commit a1c1d335d5a280a66da58301a22f39de517238de)

2 years agoDon't terminate the core due to backend issues while setting up
Manuel Nickschas [Fri, 6 Apr 2018 16:43:26 +0000 (18:43 +0200)]
Don't terminate the core due to backend issues while setting up

If the storage backend selected by the user during core setup cannot
be initialized, the problem shall be communicated to the client and
the user can start over; the core shall not exit in this case.
Ensure that failure to initialize the selected backend only terminates
the core if it's not being setup.

2 years agoPostgreSqlStorage: Fix apparently-incorrect index in requestAllMsgs
Michael Marley [Tue, 27 Mar 2018 23:41:28 +0000 (19:41 -0400)]
PostgreSqlStorage: Fix apparently-incorrect index in requestAllMsgs

This function was using 1 for its date index, which is the same
index as was used for bufferid.  The correct index to use is 2.

Closes GH-346.

(cherry picked from commit 3bf86a5278e26bec5e708a566e6926125f1941f0)

2 years agoSslServer: Add support for Elliptic Curve keys
Michael Marley [Mon, 26 Mar 2018 02:11:39 +0000 (22:11 -0400)]
SslServer: Add support for Elliptic Curve keys

If the key won't load as an RSA key, attempt to load it again as an
EC key.  DSA support was not added because DSA is obsolete and no-
one should be using it.

Note that this only works with Qt5.5 and up as EC support was added
in that version (https://github.com/qt/qtbase/commit/962ea569). An
if macro has been used to allow for continued compilation under Qt4
and Qt5<5.5.

Closes GH-344.

(cherry picked from commit d31101ed316b6449de0d8dad7a1e1e8d097807a5)

2 years agoChange HTTP links to HTTPS for quassel-irc.org and subdomains
phuzion [Tue, 27 Feb 2018 21:25:35 +0000 (21:25 +0000)]
Change HTTP links to HTTPS for quassel-irc.org and subdomains

Closes GH-335.

(cherry picked from commit c2e3479b87e7d0713d302d26fb2d7d01d7b8c9c2)

2 years agoqa: Replace [[fallthrough]] by [[clang::fallthrough]]
Manuel Nickschas [Tue, 27 Feb 2018 10:33:03 +0000 (11:33 +0100)]
qa: Replace [[fallthrough]] by [[clang::fallthrough]]

The [[fallthrough]] attribute is a C++17 extension. It happens to work
in GCC 7, but causes warnings or even failures in other compilers.

In my quest to find a syntax that makes all compilers happy without
having to disable the (useful) warning, I think I have finally
found a way. Using the clang:: namespace seems to solve several

* It is marked as a compiler extension, so compilers not supporting it
  should simply ignore the attribute
* It (obviously) works in Clang, which is nice when using a Clang-based
  IDE like Qt Creator
* For some reason, it also seems to silence warnings in GCC; I guess one
  of GCC's fancy regexes somehow matches

(cherry picked from commit 9ba2ca5186c8598e33910a7df95bbdbf812a1a3d)

2 years agoCorrect issue where messages were over-trimmed
Daniel Silverstone [Wed, 7 Feb 2018 10:51:55 +0000 (10:51 +0000)]
Correct issue where messages were over-trimmed

In an attempt to correct a problem with quasseldroid multiline
messages (97a9b1646bb0d6362cef14bac3a577481cc01e49) the core started
trimming leading whitespace from lines. This broke pasting of things
like formatted code.

This commit ensures that only the splitting is done, and that we skip
empty lines when handling /SAY since they sometimes cause issues on
networks and the clients which split client-side already skip empty

Closes GH-331.

(cherry picked from commit f5abb30ac6ec8089901d686d9c2ec3387f97aaef)

2 years agoqtui: Avoid bogus tr() context warning
Manuel Nickschas [Tue, 27 Feb 2018 22:28:31 +0000 (23:28 +0100)]
qtui: Avoid bogus tr() context warning

lupdate in Qt versions prior to 5.6.1 has issues parsing brace-
initialization in constructors, and complains about "tr() cannot
be called without context". Work around this by explicitly giving
the class name as suggested in QTBUG-34128.

(cherry picked from commit 934fa4151f48fd12549fe0772cfbc995c6e63034)

2 years agoUse craft on appveyor
Hannah von Reth [Wed, 21 Jun 2017 12:17:50 +0000 (14:17 +0200)]
Use craft on appveyor

This will use the well maintained packages from Craft.
It will reduce the maintenance cost for providing a Windows installer.
Additionally we now use up to date binaries built exactly for this compiler,
so we no longer depend on 33dparty openssl binaries etc.

Using and deploying KDE Framework 5 libaries on Windows is also possible now.
This build provides KDE Sonnet

Find out more about Craft: https://community.kde.org/Craft
Contribute to the Quassel blueprint:

Closes GH-312.

(cherry picked from commit d42211c299e2bb0d4371b7508259b26b55547d30)

2 years agouisupport: Also fix doubleclick in nick views
Manuel Nickschas [Tue, 27 Feb 2018 09:59:52 +0000 (10:59 +0100)]
uisupport: Also fix doubleclick in nick views

Since the Q_WS_* macros no longer exist in Qt5, replace them by the
appropriate Q_OS_* macros. Remove some needless ones, too.

(cherry picked from commit fe155e87ffa75bf4c13ae40311b029adba706816)

2 years agouisupport: Join channels on doubleclick on all but Windows and OSX
Manuel Nickschas [Tue, 27 Feb 2018 09:23:39 +0000 (10:23 +0100)]
uisupport: Join channels on doubleclick on all but Windows and OSX

The Q_WS_* macros no longer exist in Qt5, so the OS detection for
the click behavior in bufferviews didn't work correctly. Use the
correct Q_OS_* macros to ensure that a doubleclick is required on
platforms other than Windows and OSX.

(cherry picked from commit deaa4151758de4f22d1f7c113c50af0ffc6ae587)

2 years agoPackage bearer plugin on OSX
romibi [Fri, 2 Feb 2018 11:45:09 +0000 (12:45 +0100)]
Package bearer plugin on OSX

Fixes #1442. Closes GH-324.

(cherry picked from commit 6d32c0e7661d4404c2bd0e44652439b6c55b4545)

2 years agoFix OSX compile and deploy
romibi [Fri, 1 Sep 2017 08:06:10 +0000 (10:06 +0200)]
Fix OSX compile and deploy

Set additional compile flag
Fix DMG creation (sometimes fails if no volume size is provided)

Closes GH-304.

(cherry picked from commit 8a7444f4ed825b65acc874d9c2e8359f82523ac0)


2 years agocore: connectToIrc: Add clarifying comment on DNS lookups
Albert S [Mon, 21 Aug 2017 19:35:41 +0000 (21:35 +0200)]
core: connectToIrc: Add clarifying comment on DNS lookups

Closes GH-298.

(cherry picked from commit a6c3d4252d760a6de70cb000cc3d6ee34a36eb31)

2 years agocore: connectToIrc: Prevent DNS leaks on connection when using proxy
Albert S [Mon, 24 Jul 2017 13:51:56 +0000 (15:51 +0200)]
core: connectToIrc: Prevent DNS leaks on connection when using proxy

96fe7e713 introduced a call to QHostInfo::fromName() in order to avoid
problems related to the caching of DNS queries. It however is also called
when the user has specified that a proxy should be used. This behavior
therefore introduces a DNS leak.

This commit ensures that QHostInfo::fromName() is not called when
a proxy has been specified.

(cherry picked from commit 8aa70869402f71328d1a5f92fa36aa9579dc333b)

2 years agoExplicitly disable printing signatures when running git
Daniel Albers [Wed, 3 Jan 2018 00:41:41 +0000 (01:41 +0100)]
Explicitly disable printing signatures when running git

Make sure version parsing doesn't fail when a signed commit is at the tip and
log.showsignature is enabled.

(cherry picked from commit 738f5436bbc9a8c761a487ae24da65fd74a62ef9)

2 years agoOnly install the application icon if the client is being built
Adriaan de Groot [Sat, 29 Apr 2017 15:04:57 +0000 (17:04 +0200)]
Only install the application icon if the client is being built

The icon should not be installed as part of a core-only build.

Closes GH-292.

(cherry picked from commit f0efd6b5fa2839c9290a36c5a0397f439166f532)

2 years agoqa: Add [[fallthrough]] annotations where appropriate
Manuel Nickschas [Tue, 19 Dec 2017 21:37:45 +0000 (22:37 +0100)]
qa: Add [[fallthrough]] annotations where appropriate

Newer GCCs start to warn about this, so add attributes or rearrange
code as appropriate.

While the [[fallthrough]] attribute has only been standardized in
C++17, it should simply be ignored by older compilers (and it does
shut up GCC even when compiling with -std=c++11).

(cherry picked from commit 45affd4fa815bb21d0b2e46ac80114bb9174f801)

2 years agocmake: Output build type information; add policy
Manuel Nickschas [Tue, 19 Dec 2017 21:05:14 +0000 (22:05 +0100)]
cmake: Output build type information; add policy

CMake 3.10 added a new policy that triggers warnings when running
automoc on generated files.

(cherry picked from commit f6ceb85c6baa3e42dd5711fb62c96aed181ba46f)

2 years ago Update translations from Transifex
Daniel Albers [Mon, 4 Sep 2017 22:06:39 +0000 (00:06 +0200)]
Update translations from Transifex

      26838 translated messages

    Many thanks to:
     - cs: Jaroslav Lichtblau <dragonlord@seznam.cz>
     - da: Joe Hansen <joedalton2@yahoo.dk>
     - el: Kostas Koudaras <warlordfff@gmail.com>
     - fi: Lasse Liehu <larso@gmx.com>
     - fr: Zoddo <transifex.com@zoddo.fr>
     - mr: Raju Devidas Vindane <rajuvindane@gmail.com>
     - pa: A S Alam <apreet.alam@gmail.com>
     - pt_BR: André Marcelo Alvarenga <alvarenga@kde.org>
     - ro: Sergiu Bivol <sergiu@cip.md>
     - ru: Viktor Suprun <popsul1993@gmail.com>
     - sl: Andrej Mernik <andrejm@ubuntu.si>
     - tr: Volkan Gezer <volkangezer@gmail.com>
     - uk: Yuri Chornoivan <yurchor@ukr.net>

(cherry picked from commit 0260fbe00ddbd1ce78b1870f40fce969b8f34ee5)

2 years agocore: connectToIrc: Pick first IRC server specified when not failed
genius3000 [Fri, 14 Apr 2017 00:01:36 +0000 (18:01 -0600)]
core: connectToIrc: Pick first IRC server specified when not failed

When connecting to the IRC network, only clear the
'_previousConnectionAttemptFailed' flag when trying the next server
in the list. Otherwise, reset server index to start from the top.

Currently, Quassel will continue to use the last used (working)
server (or a random server if set to). This doesn't match the
intention of having an ordered list of servers to use. The change
here just makes Quassel start with the first server in the list
unless it's a failed attempt, in which it continues down the list
(same as currently).

This fixes the issue of getting "stuck" on a specific server even if
you manually disconnect and connect.

Reference: http://bugs.quassel-irc.org/issues/693
And: http://bugs.quassel-irc.org/issues/1006
Fixes #693 and #1006
Resolves GH-287

(cherry picked from commit cb53823eeecff3f033adfe2cb1a48d8b8a89dbae)

2 years agoPoint to github in Core Info
esainane [Tue, 4 Apr 2017 05:59:41 +0000 (17:59 +1200)]
Point to github in Core Info

Resolves GH-285.

(cherry picked from commit dc0c6b90a8d6788d6a14b164c5685ce45b3b0a49)

2 years agoFix an issue in the .gitignore
Janne Koschinski [Thu, 16 Mar 2017 21:07:01 +0000 (22:07 +0100)]
Fix an issue in the .gitignore

Resolves GH-279.

(cherry picked from commit f3c7f3d2f7777be64e79547bbbd255015e0f37f7)

2 years agoUpdated gitignore to ignore files generated by JetBrains IDEs
Janne Koschinski [Fri, 17 Mar 2017 17:34:26 +0000 (18:34 +0100)]
Updated gitignore to ignore files generated by JetBrains IDEs

Resolves GH-280.

(cherry picked from commit 46be0fab5db8f96a37d9e0f35251c64169c8751d)

2 years agoFix handling systray notifications
György Balló [Thu, 16 Feb 2017 07:41:08 +0000 (08:41 +0100)]
Fix handling systray notifications

Only toggle/activate the main window if the notification message comes
from quassel.

This fixes the problem that Quassel's main window is opened when the
user clicks on any notification bubbles from other applications.

Resolves GH-272.

(cherry picked from commit 4c414f8fb60a3a84e09f43ae0161677f88d318ca)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)


2 years 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)

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

(cherry picked from commit 5874811543d0e6a9e14ff621a2bc0489dd38ab25)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)


2 years 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)


2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)

2 years 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)