quassel.git
19 months agocmake: Fix build with Qt 5.11
Manuel Nickschas [Thu, 3 May 2018 21:19:34 +0000 (23:19 +0200)]
cmake: Fix build with Qt 5.11

Qt 5.11 removes the qt5_use_modules function, so add a copy. If
present, the Qt-provided function will be used instead.

Closes GH-355.

19 months agoImprove channel navigation shortcut in some cases
romibi [Tue, 23 Jan 2018 00:17:42 +0000 (01:17 +0100)]
Improve channel navigation shortcut in some cases

Select first/last if nothing selected yet
Enable wrap around navigation

Closes GH-323.

19 months agocore: handleMode: Fix persistent modes reset
genius3000 [Thu, 11 Jan 2018 04:54:41 +0000 (21:54 -0700)]
core: handleMode: Fix persistent modes reset

The check for '-reset' currently comes after a bufferName is
prepended to params, therefore never being true.
Move this check to be first and add a reply to the client.

Closes GH-322.

19 months agoFix support for extended features on Qt4
Janne Koschinski [Wed, 11 Apr 2018 01:16:21 +0000 (03:16 +0200)]
Fix support for extended features on Qt4

- On Qt4, Q_ENUMS can *not* handle enum class, but only enum
- This patch adds an #ifdef to only use enum class on Qt5

Closes GH-352.

19 months agoUpdate ChangeLog
Manuel Nickschas [Mon, 23 Apr 2018 21:37:04 +0000 (23:37 +0200)]
Update ChangeLog

19 months agoUpdate AboutData
Manuel Nickschas [Mon, 23 Apr 2018 21:36:56 +0000 (23:36 +0200)]
Update AboutData

19 months 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
issue.

19 months 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.

20 months 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
practice.

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

20 months 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
exceptions.

Closes GH-350.

20 months agoSemi-yearly copyright bump
Manuel Nickschas [Tue, 10 Apr 2018 19:59:19 +0000 (21:59 +0200)]
Semi-yearly copyright bump

It's no longer 2016.

20 months 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.

20 months 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.

20 months 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.

20 months 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.

20 months agocore: Fix CAP REQ display for SASL only supported
Shane Synan [Tue, 27 Feb 2018 19:50:43 +0000 (13:50 -0600)]
core: Fix CAP REQ display for SASL only supported

Modify queuedCapsDisplay to only add a ", " when both
_capsQueuedIndividual and _capsQueuedBundled are not empty.  This
avoids adding a spurious ", " when there's only individual caps, e.g.
SASL.  Though the docs don't mention it, QStringList.join() will only
add the separator when there's more than one item in the list.

Before:
* Negotiating capabilities (requesting: sasl, )...
After:
* Negotiating capabilities (requesting: sasl)...

See https://doc.qt.io/qt-5/qstringlist.html#join

Closes GH-334.

20 months agoLock Toolbars too
romibi [Mon, 5 Mar 2018 17:54:15 +0000 (18:54 +0100)]
Lock Toolbars too

Closes GH-324.

20 months agoLock Buffer- and Nick-Lists too
romibi [Wed, 31 Jan 2018 15:13:37 +0000 (16:13 +0100)]
Lock Buffer- and Nick-Lists too

Fixes #1465

20 months agoclient: Remove unused attribute
Manuel Nickschas [Thu, 5 Apr 2018 21:54:02 +0000 (23:54 +0200)]
client: Remove unused attribute

Clang warns about this.

20 months 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
issues:

* 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

20 months 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
lines.

Closes GH-331.

20 months agoSupport $i:account in aliases
Svetlana Tkachenko [Mon, 8 Jan 2018 04:44:17 +0000 (04:44 +0000)]
Support $i:account in aliases

Closes GH-321.

20 months agoSupport $i:ident in aliases
Svetlana Tkachenko [Mon, 8 Jan 2018 00:39:45 +0000 (00:39 +0000)]
Support $i:ident in aliases

https://bugs.quassel-irc.org/issues/1454

Implements #1454.

20 months agoclient: Avoid warning for unused argument
Manuel Nickschas [Wed, 28 Mar 2018 21:17:04 +0000 (23:17 +0200)]
client: Avoid warning for unused argument

20 months agoFix compile error with Qt4
Janne Koschinski [Fri, 22 Dec 2017 02:47:09 +0000 (03:47 +0100)]
Fix compile error with Qt4

In Qt4, signals are protected, therefore we can’t emit a signal on
Client from the ClientUserInputHandler.

Therefore we wrap the signal emitter with a function on the Client.

Closes GH-320.

20 months agoMake /list open the Channel List dialog
Janne Koschinski [Fri, 22 Dec 2017 01:39:43 +0000 (02:39 +0100)]
Make /list open the Channel List dialog

20 months agoIgnore self messages
Janne Koschinski [Sun, 18 Feb 2018 20:14:35 +0000 (21:14 +0100)]
Ignore self messages

Closes GH-317.

20 months agoPer default, set local nick highlight to none
Janne Koschinski [Thu, 21 Dec 2017 23:20:15 +0000 (00:20 +0100)]
Per default, set local nick highlight to none

20 months agoPer popular request, always enable local highlights
Janne Koschinski [Thu, 21 Dec 2017 22:50:26 +0000 (23:50 +0100)]
Per popular request, always enable local highlights

20 months agoFix an issue where empty elements were shown in the highlight list
Janne Koschinski [Thu, 21 Dec 2017 22:48:03 +0000 (23:48 +0100)]
Fix an issue where empty elements were shown in the highlight list

- Replace clearContents with while (rowCount()) removeRow

20 months agoOnly enable the relevant highlight depending on core features
Janne Koschinski [Thu, 21 Dec 2017 21:18:11 +0000 (22:18 +0100)]
Only enable the relevant highlight depending on core features

- If connected to a modern core, disable local highlights
- Otherwise, disable remote highlights

20 months agoAdd an import button to import local rules into the new page
Janne Koschinski [Thu, 21 Dec 2017 21:07:55 +0000 (22:07 +0100)]
Add an import button to import local rules into the new page

20 months agoDisable the highlights page when not connected
Janne Koschinski [Thu, 21 Dec 2017 20:57:03 +0000 (21:57 +0100)]
Disable the highlights page when not connected

20 months agocommon: Set sourcePeer() also for internal (mono) connections
Manuel Nickschas [Mon, 26 Mar 2018 22:04:01 +0000 (00:04 +0200)]
common: Set sourcePeer() also for internal (mono) connections

So far, SignalProxy::sourcePeer() was only set while processing
messages from remote peers. Set this also for internal connections.

Also remove InternalPeer's special-casing for in-thread communication,
as the two connected peers always live in different threads anyways.

Closes GH-345.

20 months agocommon: Represent core/client features as string list in the protocol
Manuel Nickschas [Wed, 21 Mar 2018 23:58:46 +0000 (00:58 +0100)]
common: Represent core/client features as string list in the protocol

The previous way of representing all supported features as a bit-wise
combination of flags is reaching its limits, due to the fact that the
old Features enum didn't have a defined width, and thus the compiler
can (and does) choose to represent it as a 16 bit value even though
the serialization in the protocol is defined as a 32 bit value.

In order to solve this problem, and to make feature negotiation more
robust, a new field "FeatureList" is added to both "ClientInit"
and "ClientInitAck" handshake messages that holds a string list with
the supported features.

Clients still send both "Features" and "FeatureList" fields when
registering, in order to support older cores. The core now omits
the legacy "CoreFeatures" field if the client indicates support
for extended features. Support for extended features is indicated
as the legacy feature 0x8000.

Note that legacy features are a subset of the new extended features.
Clients supporting extended features are encouraged to send the
full list, including legacy ones, in their FeatureList field.

Internally, the string-based feature list is mapped to a
std::vector<bool> to provide for fast lookup of enabled features.
The new methods Client::isCoreFeatureEnabled() and Peer::hasFeature()
allow for convenient checking.

Both client and core now output a log message if there is a mismatch
between the peers.

20 months agocommon: Make the Quassel class a proper singleton, clean up
Manuel Nickschas [Wed, 21 Mar 2018 00:41:28 +0000 (01:41 +0100)]
common: Make the Quassel class a proper singleton, clean up

No longer have the various application classes inherit from the
Quassel class, which is a precondition for making the latter a
QObject down the line. Enable application-specific config reload
and quit behaviors by providing the means to register handler
functions, replacing the previous inheritance-based mechanism.

Make the Quassel class a proper singleton, remove inline functions
and modernize the code.

21 months agouistyle: Ignore format code for Monospace
Manuel Nickschas [Wed, 7 Mar 2018 23:53:50 +0000 (00:53 +0100)]
uistyle: Ignore format code for Monospace

Since the current rendering engine does not easily support switching
fonts in the middle of a message, we can't currently support the
Monospace format code as specified in [1].
However, to avoid weird artifacts when other clients send this, ignore
the format code for now.

[1] https://modern.ircdocs.horse/formatting.html#monospace

Closes GH-342.

21 months agouistyle: Support rendering of strikethrough'd text
Manuel Nickschas [Wed, 7 Mar 2018 23:47:39 +0000 (00:47 +0100)]
uistyle: Support rendering of strikethrough'd text

As defined in [1], format code 0x1e indicates text that is struck
through. Add support for rendering this accordingly.

Extend the stylesheet parser so the format can be defined, and
add to the default stylesheet.

[1] https://modern.ircdocs.horse/formatting.html#strikethrough

21 months agouistyle: Support reverse color rendering
Manuel Nickschas [Wed, 7 Mar 2018 23:22:24 +0000 (00:22 +0100)]
uistyle: Support reverse color rendering

Format codes 0x12 and 0x16 toggle the swap of foreground and
background colors. In the current implementation, the color
swap only applies to custom colors, i.e. mIRC colors and hex
colors. Normal text is not affected.

Since this is not a styleable property, remove support for it
from the stylesheet parser.

21 months agouistyle: Define via stylesheet if color codes have an effect
Manuel Nickschas [Wed, 7 Mar 2018 19:59:37 +0000 (20:59 +0100)]
uistyle: Define via stylesheet if color codes have an effect

In certain situations, color codes should have no effect, e.g. when
selecting text. This required hacks in stylesheets; for example
when setting a foreground color for self or highlighted messages,
the mIRC colors had to be redefined in the stylesheet for that label.
Also the code had some workaround, e.g. for URLs.

With the introduction of the non-styleable extended mIRC and
hex colors, these workarounds are no longer possible.

Solve these issues by introducing two new properties that can be set
in the stylesheet:

allow-foreground-override: true|false
allow-background-override: true|false

The default stylesheet sets them to true by default, and to false
e.g. for selections.

Remove the now unneeded workaround from m4yer's stylesheet, too.

21 months agouistyle: Support rendering of hex colors
Manuel Nickschas [Wed, 7 Mar 2018 18:37:12 +0000 (19:37 +0100)]
uistyle: Support rendering of hex colors

Hex colors are a relatively new addition to IRC, as defined in
<https://modern.ircdocs.horse/formatting.html#hex-color>.

Note that there are known issues with prioritization in the theme
engine (i.e., setting the foreground explicitly in the stylesheet
will always override hex colors), which will be fixed in a follow-up
commit.

21 months agouistyle: Fix weird way of registering Qt types
Manuel Nickschas [Wed, 7 Mar 2018 00:38:53 +0000 (01:38 +0100)]
uistyle: Fix weird way of registering Qt types

Well, maybe it didn't seem so weird a decade ago, but these days
we can do type registration in a nicer way.

21 months agouistyle: Support extended mIRC colors
Manuel Nickschas [Wed, 7 Mar 2018 00:31:34 +0000 (01:31 +0100)]
uistyle: Support extended mIRC colors

Support mIRC color values between 16 and 98, as specified in [1].
Extended color values are not styleable.

[1] https://modern.ircdocs.horse/formatting.html

21 months agouistyle: Add more type-safety to UiStyle, and clean up a bit
Manuel Nickschas [Tue, 6 Mar 2018 20:07:42 +0000 (21:07 +0100)]
uistyle: Add more type-safety to UiStyle, and clean up a bit

Migrate all UiStyle enums to be enum classes. Enforce explicit types
instead of quint32 in most places using them, and handle MessageLabel
in a more obvious fashion. A bunch of bit-wise operators had to be
added to avoid lots of boilerplate when dealing with the enums.

FormatList now holds the formats in a struct rather than as plain enum
(or quint32) values. This will be needed for extended color support;
as the format type cannot hold the hard-coded extended color values,
the colors will be stored explicitly in the list and applied as
appropriate.

Also, in the quest to modernize the codebase, FormatList is now a
std::vector rather than a QList.

21 months agoUpdate stripFormatCodes() for additional formatting characters
Michael Marley [Thu, 1 Mar 2018 22:19:47 +0000 (17:19 -0500)]
Update stripFormatCodes() for additional formatting characters

 - \x04 for hex color (IRCCloud)
 - \x11 for monospace (IRCCloud)
 - \x1e for strikethrough (Textual)

This patch does not actually add support for rendering those
styles, but at least ensures that highlighting still works
correctly if they are used.

Closes GH-337.

21 months agodcc: Disable DCC features until they're ready for public consumption
Manuel Nickschas [Thu, 1 Mar 2018 23:06:21 +0000 (00:06 +0100)]
dcc: Disable DCC features until they're ready for public consumption

Don't advertise that we support DCC when we actually don't yet. Also,
don't create the transfer widget and settings page for now.

21 months agoproxy: Actually fix settings migration logic
Manuel Nickschas [Thu, 1 Mar 2018 21:03:53 +0000 (22:03 +0100)]
proxy: Actually fix settings migration logic

Not sure what the previous code was supposed to accomplish, but
proxy settings are stored in [CoreAccounts] and thus migration needs
to happen for each configured account. Also, the UseProxy flag was
removed and thus must be translated to ProxyType::NoProxy.

Closes GH-181.

21 months agoReorder includes alphabetically
Javier Llorente [Sun, 10 Sep 2017 21:31:03 +0000 (23:31 +0200)]
Reorder includes alphabetically

21 months agoMove account details out of 'ManualProxy'
Javier Llorente [Sun, 10 Sep 2017 21:28:26 +0000 (23:28 +0200)]
Move account details out of 'ManualProxy'

21 months agoUpdate VERSION_MINOR_CURRENT, realign spaces for comment (case 4)
Javier Llorente [Sat, 7 Jan 2017 00:27:37 +0000 (01:27 +0100)]
Update VERSION_MINOR_CURRENT, realign spaces for comment (case 4)

21 months agoAdd case 4 for new proxy type default value
Javier Llorente [Fri, 6 Jan 2017 23:03:12 +0000 (00:03 +0100)]
Add case 4 for new proxy type default value

21 months agoAdd system proxy support for quassel-client
Javier Llorente [Sun, 7 Feb 2016 23:36:17 +0000 (00:36 +0100)]
Add system proxy support for quassel-client

21 months 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.

21 months agoFix compile error with Qt4
Janne Koschinski [Fri, 22 Dec 2017 02:46:12 +0000 (03:46 +0100)]
Fix compile error with Qt4

In Qt4, signals are protected, therefore we can’t emit a signal on
Client from the ClientUserInputHandler.

Therefore we wrap the signal emitter with a function on the Client.

Closes GH-318.

21 months agoImplement /ignore functionality
Janne Koschinski [Thu, 21 Dec 2017 22:22:52 +0000 (23:22 +0100)]
Implement /ignore functionality

- If /ignore <nickname> is used, a new rule for nickname!*@* is added,
  with dynamic strictness, limited to the current network.
- If /ignore <rule> (where rule contains ! or @) is used, that rule is
  added, with dynamic strictness, limited to the current network.
- If /ignore with no parameters is used, the ignore list is shown

21 months agoPolish session list UI
Janne Koschinski [Thu, 21 Dec 2017 20:43:18 +0000 (21:43 +0100)]
Polish session list UI

- Only show disconnect button if available
- Show if client is connected securely
- Make the UI look more native

Closes GH-316.

21 months agoTransmit feature flag for remote disconnecting with peer info
Janne Koschinski [Thu, 21 Dec 2017 20:42:26 +0000 (21:42 +0100)]
Transmit feature flag for remote disconnecting with peer info

21 months agoIntroduce feature flag for remote disconnecting
Janne Koschinski [Thu, 21 Dec 2017 20:42:10 +0000 (21:42 +0100)]
Introduce feature flag for remote disconnecting

21 months 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:
https://github.com/KDE/craft-blueprints-kde/blob/master/qt-apps/quassel/quassel.py

Closes GH-312.

21 months 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.

21 months 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.

22 months agoclient: Fix Chat Monitor missing sender brackets
Shane Synan [Fri, 22 Sep 2017 23:56:49 +0000 (18:56 -0500)]
client: Fix Chat Monitor missing sender brackets

Always re-add hidden sender brackets for the Chat Monitor as the
normal sender prefixes get replaced with Network, Buffer, and Sender
names.

Sender brackets shown:
> Copy-pasted
  Chat Monitor: <Bitlbee:#channel> digitalcircuit does things
  Channel:      -*- digitalcircuit does things

Before:
> Copy-pasted with sender brackets hidden (wrong)
  Chat Monitor: Bitlbee:#channel digitalcircuit does things
  Channel:      -*- digitalcircuit does things

After:
> Copy-pasted with sender brackets hidden (correct)
  Chat Monitor: <Bitlbee:#channel> digitalcircuit does things
  Channel:      -*- digitalcircuit does things

Closes GH-314.

22 months 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.

22 months 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 FindLdap.cmake for OSX
Fix DMG creation (sometimes fails if no volume size is provided)

Closes GH-304.

22 months agocommon: Fix typo in Network::capAvailable() docs
Shane Synan [Sun, 17 Sep 2017 17:54:05 +0000 (12:54 -0500)]
common: Fix typo in Network::capAvailable() docs

In Network::capAvailable(), fix typo of "guarentee" -> "guarantee".
This doesn't have any impact on running code, but should still be
fixed.

Thanks to @justJanne for finding this.

Closes GH-300.

22 months agocore: Stop ratelimiting log spam with old client
Shane Synan [Fri, 18 Aug 2017 20:34:38 +0000 (15:34 -0500)]
core: Stop ratelimiting log spam with old client

Downgrade invalid 'setMessageRateBurstSize' and 'setMessageRateDelay'
warning messages to debugging level.  This happens any time an older
client tries to configure a network for a newer core and in most
cases can be ignored.

Should an issue arise, the log level can be set to debug.

22 months agoRemove old 'remove buffer' KeyPress code
genius3000 [Thu, 27 Jul 2017 08:00:05 +0000 (02:00 -0600)]
Remove old 'remove buffer' KeyPress code

Since commit 9f33f6e4 a 'hide current buffer' shortcut is available.
This is the global application shortcut like Sput referenced in
http://bugs.quassel-irc.org/issues/668

Keeping a hard-coded KeyPress event doing the same seems unnecessary.
Users have also expressed dislike in the use of 'Backspace' for this
buffer removal. Unintentional buffer removals are often for some.

This commit removes the 'KeyPress' event and cleans up the
'hideCurrentBuffer' code, removing commented (un-needed) code.

Reference: http://bugs.quassel-irc.org/issues/1403
Fixes #1403. Closes GH-299.

22 months 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.

22 months 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.

23 months 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.

23 months agocore: Add SQLite backlog idx: bufferid, messageid
Sven Anderson [Fri, 22 Sep 2017 21:10:51 +0000 (16:10 -0500)]
core: Add SQLite backlog idx: bufferid, messageid

Connecting to the core with a big sqlite storage (>500MB) can become
extremely slow or even time out.  Adding an index over the tuples
(bufferid, messageid) speeds up the connection significantly, because
at connection time a lot of queries over these two values are
processed.

Modified by @digitalcircuit from original commit to add a new schema
upgrade.

Closes GH-313 and GH-244.

23 months agoOnly enable sender prefix option if the core supports the feature
Manuel Nickschas [Thu, 21 Dec 2017 12:44:56 +0000 (13:44 +0100)]
Only enable sender prefix option if the core supports the feature

Closes GH-309.

23 months agoMinor cleanups
Manuel Nickschas [Thu, 21 Dec 2017 12:44:30 +0000 (13:44 +0100)]
Minor cleanups

23 months agoImplement UI and serialization logic for sender modes
Janne Koschinski [Wed, 20 Dec 2017 02:22:31 +0000 (03:22 +0100)]
Implement UI and serialization logic for sender modes

23 months agoReplace Protocol::Handler enum with enum class
Janne Koschinski [Wed, 20 Dec 2017 02:12:35 +0000 (03:12 +0100)]
Replace Protocol::Handler enum with enum class

23 months agoMinor cleanups for core-side highlight feature
Manuel Nickschas [Wed, 20 Dec 2017 22:16:52 +0000 (23:16 +0100)]
Minor cleanups for core-side highlight feature

Also remove some accidental fallthroughs, and fix the Qt4 build.

Closes GH-303.

23 months agoStore the HighlightNickType as int instead of custom enum
Janne Koschinski [Wed, 20 Dec 2017 02:30:36 +0000 (03:30 +0100)]
Store the HighlightNickType as int instead of custom enum

23 months agoFix an issue where the table headers were invisible
Janne Koschinski [Wed, 20 Dec 2017 00:17:49 +0000 (01:17 +0100)]
Fix an issue where the table headers were invisible

23 months agoRedesign the core highlight settings page
Janne Koschinski [Tue, 19 Dec 2017 23:38:50 +0000 (00:38 +0100)]
Redesign the core highlight settings page

23 months agoImplement sender matching for highlight rules
Janne Koschinski [Tue, 5 Sep 2017 16:11:51 +0000 (18:11 +0200)]
Implement sender matching for highlight rules

- Implements configuration, sync, and matching behavior for
  sender-based matching in highlight rules
- The match type (regexp or wildcard) is the same as configured for
  the message itself.
- The sender rule has to match exactly

23 months agoImplement inverse highlight rules
Janne Koschinski [Tue, 5 Sep 2017 15:18:57 +0000 (17:18 +0200)]
Implement inverse highlight rules

- Implements configuration, sync, and matching behavior for inverse
  rules
- If a message matches a positive rule (or nick), and an inverse rule,
  the inverse rule takes precedence, and no highlight is generated
- Implements an "inverse rule" checkbox in the core-side highlight
  rule configuration dialog.

23 months agoFix an issue with QStringList being declared differently on Qt4
Janne Koschinski [Fri, 1 Sep 2017 11:51:35 +0000 (13:51 +0200)]
Fix an issue with QStringList being declared differently on Qt4

23 months agoFix a potential crash
Janne Koschinski [Fri, 1 Sep 2017 03:45:33 +0000 (05:45 +0200)]
Fix a potential crash

23 months agoImplement UI for core-side highlights
Janne Koschinski [Fri, 1 Sep 2017 03:11:45 +0000 (05:11 +0200)]
Implement UI for core-side highlights

23 months agoImplement core-side highlights
Janne Koschinski [Fri, 1 Sep 2017 01:11:39 +0000 (03:11 +0200)]
Implement core-side highlights

23 months agoAdd 'twitch.tv/membership' capability for Twitch.tv
Florent Castelli [Thu, 22 Jun 2017 16:39:12 +0000 (18:39 +0200)]
Add 'twitch.tv/membership' capability for Twitch.tv

Twitch.tv implementation doesn't send NAMES list automatically
unless supported by the client as they can be quite big.

See: https://dev.twitch.tv/docs/v5/guides/irc/#twitch-irc-capability-membership

Closes GH-296.

23 months 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.

23 months agocmake: Use unquoted variables
Manuel Nickschas [Tue, 19 Dec 2017 22:22:17 +0000 (23:22 +0100)]
cmake: Use unquoted variables

Apparently, CMP0054 sometimes warns about this.

23 months agoDon't return const refs from methods
Manuel Nickschas [Tue, 19 Dec 2017 21:53:53 +0000 (22:53 +0100)]
Don't return const refs from methods

This is dangerous and should be avoided where possible.

Closes GH-302.

23 months agoImplement changes requested in review
Janne Koschinski [Tue, 19 Dec 2017 19:18:20 +0000 (20:18 +0100)]
Implement changes requested in review

- Make Peer::_connectedSince, Peer::_buildDate, Peer::_clientVersion
  private, add getters/setters
- Correct parameter naming in doxygen comment for
  SignalProxy::restrictTargetPeers
- Remove SignalProxy::_peers
- Initialize SignalProxy::_sourcePeer to nullptr
- Add Q_UNUSED for peer parameter for CoreSession::changePassword
- Correct indentation in src/qtui/CMakeLists
- Use pragma in src/qtui/coresessionwidget.h
- Fix header ordering in src/qtui/coresessionwidget.h
- Fix header ordering in src/qtui/coresessionwidget.cpp

23 months agoRemove the session area when empty; improved dialog UI code
Janne Koschinski [Mon, 28 Aug 2017 17:15:44 +0000 (19:15 +0200)]
Remove the session area when empty; improved dialog UI code

23 months agoAdd a header that MSVC requires
Janne Koschinski [Mon, 28 Aug 2017 13:42:19 +0000 (15:42 +0200)]
Add a header that MSVC requires

23 months agoImprovements to fix the build and for Doxygen
Janne Koschinski [Mon, 28 Aug 2017 13:01:42 +0000 (15:01 +0200)]
Improvements to fix the build and for Doxygen

23 months agoImplement a fallback for Qt4
Janne Koschinski [Mon, 28 Aug 2017 02:47:29 +0000 (04:47 +0200)]
Implement a fallback for Qt4

23 months agoRemove debug message
Janne Koschinski [Mon, 28 Aug 2017 02:21:25 +0000 (04:21 +0200)]
Remove debug message

23 months agoMigrate password change RPC to the new target restriction system
Janne Koschinski [Mon, 28 Aug 2017 02:17:45 +0000 (04:17 +0200)]
Migrate password change RPC to the new target restriction system

23 months agoImplement peer-specific signal sending
Janne Koschinski [Mon, 28 Aug 2017 01:56:41 +0000 (03:56 +0200)]
Implement peer-specific signal sending

23 months agoMake the UI actually emit the required signal
Janne Koschinski [Mon, 28 Aug 2017 01:56:23 +0000 (03:56 +0200)]
Make the UI actually emit the required signal

23 months agoImplement RPC call to gracefully disconnect a client
Janne Koschinski [Mon, 28 Aug 2017 01:55:55 +0000 (03:55 +0200)]
Implement RPC call to gracefully disconnect a client

23 months agoImplement a basic UI for showing connected clients
Janne Koschinski [Sun, 27 Aug 2017 22:52:32 +0000 (00:52 +0200)]
Implement a basic UI for showing connected clients