quassel.git
18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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.

Examples
[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!)
[Freenode]
> 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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
screens.

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)

18 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)

18 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)

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

and some fixed indentations

(cherry picked from commit d57c91811b8f989bcaa4d5a238c65e9ffcc3b1d4)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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)

18 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
https://github.com/quassel/quassel/pull/127

This makes it possible to create reproducible builds.

(cherry picked from commit 620cd1aa35e05099b3f84400dd33afc207c98244)

18 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)

18 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)

18 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)

18 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)

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

(cherry picked from commit ae2eb446f695652b1acf00f82c5cc6eb035a94eb)

18 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

3 years agoHandle invalid handshake data properly in the core
Manuel Nickschas [Sun, 24 Apr 2016 19:59:15 +0000 (21:59 +0200)]
Handle invalid handshake data properly in the core

Clients sending invalid handshake data could make the core crash
due to an unchecked pointer. This commit fixes this issue by having
the core close the socket if a peer could not be created.

Thanks to Bas Pape (Tucos) for finding this one!

3 years agoSupport session management with Qt5
Sebastian Goth [Sat, 23 Apr 2016 11:39:59 +0000 (13:39 +0200)]
Support session management with Qt5

Qt5 moved away from virtual methods towards signals for commitData() and saveState().
These were simply not called anymore in our code.

In Qt 5.6 a bug was fixed that broke session management at least with KF5.
As we do handle the session management, we can safely disable the fallback.
See QTBUG-49667 and https://codereview.qt-project.org/#/c/148274/ for details.

3 years agoUpdate translations from Transifex
Daniel Albers [Wed, 25 Mar 2015 04:00:24 +0000 (05:00 +0100)]
Update translations from Transifex

  26449 translated messages

Many thanks to:
 - cs: Jaroslav Lichtblau <dragonlord@seznam.cz>
 - de: Sebastian Meyer <transifex@netzvieh.de>
 - es: Javier Llorente <javier@opensuse.org>
 - fi: Lasse Liehu <larso@gmx.com>
 - fr: Vlavv <vlavv2@gmail.com>
 - hi: Raju Devidas Vindane <rajuvindane@gmail.com>
 - pa: A S Alam <apreet.alam@gmail.com>
 - pt_BR: André Marcelo Alvarenga <alvarenga@kde.org>
 - sl: Andrej Mernik <andrejm@ubuntu.si>
 - tr: Demiray Muhterem <mdemiray@msn.com>, Volkan Gezer <volkangezer@gmail.com>
 - uk: Yuri Chornoivan <yurchor@ukr.net>

3 years agoDon't prefix the nick with a colon while connecting to a server
Manuel Nickschas [Wed, 10 Feb 2016 18:58:52 +0000 (19:58 +0100)]
Don't prefix the nick with a colon while connecting to a server

For the NICK command during the initial connection handshake, we
always prefixed the parameter with a colon. While this is not an RFC
violation, it is unnecessary as nicks can't contain spaces. Worse, it
confuses some obscure ircds...

3 years agoBump version for release 0.12.3
Manuel Nickschas [Tue, 9 Feb 2016 21:02:34 +0000 (22:02 +0100)]
Bump version for release

3 years agoUpdate ChangeLog
Manuel Nickschas [Tue, 9 Feb 2016 20:59:55 +0000 (21:59 +0100)]
Update ChangeLog

3 years agoSupport new QtInfoMsg message type
Manuel Nickschas [Mon, 8 Feb 2016 21:37:57 +0000 (22:37 +0100)]
Support new QtInfoMsg message type

Qt 5.5 introduced QtInfoMsg. This commit adds support for this
in our logger, thus removing a warning.

3 years agoUpdate AboutData
Manuel Nickschas [Mon, 8 Feb 2016 21:21:43 +0000 (22:21 +0100)]
Update AboutData

3 years agoDon't allow newlines in buffer names
Manuel Nickschas [Mon, 8 Feb 2016 20:29:14 +0000 (21:29 +0100)]
Don't allow newlines in buffer names

Since it is possible to enter newlines when renaming a buffer via
the GUI, we need to have a sanity check that cuts off the additional
lines.

Fixes #1389.

3 years agoFix issues with buffer selection and filtered views
Manuel Nickschas [Mon, 8 Feb 2016 20:04:03 +0000 (21:04 +0100)]
Fix issues with buffer selection and filtered views

Whenever the current buffer changed, filtered BufferViews need to
check if the previously selected item should be hidden (e.g. due to
activity settings). The existing code for this never really worked
due to the currentChanged() signal emission being wonky (it would
sometimes be eaten for some reason), and fully stopped working in
Qt5 since it connected to a private, internal slot of QSFPM.

This commit removes the old code and replaces it by faking the
emission of a dataChanged() signal from the base model whenever
the current buffer changes.

3 years agoFix build with Qt4
Manuel Nickschas [Thu, 4 Feb 2016 21:40:49 +0000 (22:40 +0100)]
Fix build with Qt4

Qt4 can't serialize lists of things out of the box, in this case
lists of shortcuts. Rather than declaring a new metatype, we just
go back to storing a single shortcut for Qt4 - it's all we internally
support anyway.

3 years agoDon't serialize PeerPtr value in RPC connections
Manuel Nickschas [Wed, 3 Feb 2016 23:10:08 +0000 (00:10 +0100)]
Don't serialize PeerPtr value in RPC connections

PeerPtr is used in RPC signatures for enabling receivers to send replies
to a particular peer rather than broadcast to all connected ones.
To enable this, the SignalProxy transparently replaces the bogus value
received over the network with the actual address of the local Peer
instance.

Because the actual value isn't needed on the wire, it should be
serialized as null. This also prevents the accidental use of a bogus
remote pointer address.

3 years agoFix shortcut handling with KDE Frameworks
Manuel Nickschas [Wed, 3 Feb 2016 21:50:02 +0000 (22:50 +0100)]
Fix shortcut handling with KDE Frameworks

KDE Frameworks slightly altered the way it handles default shortcuts
for actions; the property name was changed to support lists of
shortcuts. This issue lead to default shortcuts not being active for
Quassel built against KDE Frameworks.

3 years agoFix possible crash, mostly occurring on notification flood.
Hannah von Reth [Wed, 3 Feb 2016 09:37:01 +0000 (10:37 +0100)]
Fix possible crash, mostly occurring on notification flood.

3 years agoFixed a tiny bug in aliasmanager
Janne Koschinski [Tue, 2 Feb 2016 16:50:32 +0000 (17:50 +0100)]
Fixed a tiny bug in aliasmanager

The `/wait` check is to test if the first command is a `/wait`, which would operate synchronously.
But `/wait` matches also on other commands – so, if, for example, we’d have a command like `/waiting`, it would be matched.
Instead we actually want to match on `/wait ` (with space at the end).

3 years agoFix the SSL check on systems that don't use OpenSSL
Ayonix [Mon, 18 Jan 2016 21:57:35 +0000 (22:57 +0100)]
Fix the SSL check on systems that don't use OpenSSL

3 years agoFix build with snorenotify 0.7
Hannah von Reth [Thu, 3 Dec 2015 14:49:23 +0000 (15:49 +0100)]
Fix build with snorenotify 0.7

3 years agoFix msvc x64 build and openssl for msc.
Hannah von Reth [Tue, 12 Jan 2016 14:53:57 +0000 (15:53 +0100)]
Fix msvc x64 build and openssl for msc.

Parts of the changes are in the external script.

3 years agoApply small snore api changed.
Patrick von Reth [Tue, 22 Sep 2015 13:31:28 +0000 (15:31 +0200)]
Apply small snore api changed.

3 years agoUpdate Snorenotify project location.
Patrick von Reth [Tue, 18 Aug 2015 07:12:46 +0000 (09:12 +0200)]
Update Snorenotify project location.

3 years agoUpdated the Snorenotification backend to the new api of Snorenotify.
Patrick von Reth [Thu, 16 Jul 2015 14:15:54 +0000 (16:15 +0200)]
Updated the Snorenotification backend to the new api of Snorenotify.

Use Snorenotify also if Quassel is build with KDE support but only load
secondary backends which allow redirection to a phone etc. are loaded.

3 years agosignalproxy: Correct signal method name warnings
esainane [Sat, 12 Dec 2015 05:56:17 +0000 (18:56 +1300)]
signalproxy: Correct signal method name warnings

_id was used to index SignalProxy::SignalRelay::_slots.
signal.signalId is used to index caller->metaObject()->method.

This can be verified by changing eg. displayMsg to use a type that is
compatible with Message but won't work with QMetaType::type, like Message&

3 years agoOnly link to ZLIB if it was found.
Hannah von Reth [Thu, 10 Dec 2015 15:54:26 +0000 (16:54 +0100)]
Only link to ZLIB if it was found.

3 years agoAdd support for Appvayor Windows ci.
Patrick von Reth [Tue, 4 Aug 2015 12:12:13 +0000 (14:12 +0200)]
Add support for Appvayor Windows ci.

Add build scripts for appveyor.com ci for mingw and msvc 2013.
The ci automatically creates a Nsis installer and a 7zip package.

3 years agoFix migration of hashversion
Michael Marley [Tue, 1 Dec 2015 00:33:37 +0000 (19:33 -0500)]
Fix migration of hashversion

Previously, hashversion was not migrated.  This would cause the
value to default to 0, causing login failures for existing users.

3 years agoUse SHA2-512 to store the core certificate digest in the client
Michael Marley [Sat, 23 May 2015 22:17:04 +0000 (18:17 -0400)]
Use SHA2-512 to store the core certificate digest in the client

Previously, MD5 was used.  Like the core password hashing update,
this implements a versioning system so that the digest will be
automagically upgraded without bugging the user.  If for some
reason the user downgrades again, the client will still work but
the user will be asked to validate the certificate again.

SHA2-256 is more common for storing certificate digests, but in
this case, SHA2-512 was used.  This is because Qt4 does not
implement any hash higher than SHA1 and a SHA2-512 implementation
is already bundled for use with the core password hashing.

3 years agoFix ident race condition
Sai Nane [Sat, 28 Nov 2015 23:43:40 +0000 (12:43 +1300)]
Fix ident race condition

This creates an entry for the port as soon as the socket is opened,
without duplicates. This allows an identd service to respond correctly
if a request is received before the SSL handshake has finished and been
processed on our side.

Since socketOpen is not used in the project, it is removed here.
Since the only usage of socketInitialized(...) is with oidentd, its
semantic meaning is slightly changed to occur earlier, like socketOpen,
but only once, like the former socketInitialized(...).

3 years agoFix OIdentdConfigGenerator double-printing on ssl
esainane [Sat, 21 Nov 2015 08:38:11 +0000 (21:38 +1300)]
Fix OIdentdConfigGenerator double-printing on ssl

connected() is always connected to socketInitialized().
encrypted() is also connected to socketInitialized() when ssl is enabled.

socketInitialized() fires socketOpen(...) unconditionally, but does not fire socketInitialized(...) if we're using SSL without encryption yet - see line 464.

With socketOpen(...) connected to OIdentdConfigurationGenerator::addSocket, OIdentdConfigurationGenerator writes to .oidentd.conf twice for every connection.

Changing this to have socketInitialized(...) connected instead prevents this duplication.

3 years agoFix SSL detection
Weng Xuetian [Thu, 12 Nov 2015 00:13:33 +0000 (16:13 -0800)]
Fix SSL detection

CMAKE_POSITION_INDEPENDENT_CODE will always append fPIE flag as last compiler flag when calling try_compile which makes check_cxx_source_compiles fails. Move the SSL check before set CMAKE_POSITION_INDEPENDENT_CODE and append Qt5Core_EXECUTABLE_COMPILE_FLAGS to CMAKE_CXX_FLAGS solve the problem.

3 years agoquasselcore: --add-user and --change-userpass now exit with non-null in case
Raul Salinas-Monteagudo [Sat, 31 Oct 2015 10:53:02 +0000 (11:53 +0100)]
quasselcore: --add-user and --change-userpass now exit with non-null in case
of errors.

3 years agoFixes a crash of the core when executing "/op *" in a query.
Konstantin Bläsi [Wed, 21 Oct 2015 01:26:02 +0000 (03:26 +0200)]
Fixes a crash of the core when executing "/op *" in a query.

3 years agoCorrect capitalization of networkid column name
Jan Alexander Steffens (heftig) [Mon, 19 Oct 2015 19:30:28 +0000 (21:30 +0200)]
Correct capitalization of networkid column name

Fixes http://bugs.quassel-irc.org/issues/1369

3 years agoPerformance tweak: rem. pointless recursive calls
Petr Bena [Wed, 23 Sep 2015 14:07:16 +0000 (16:07 +0200)]
Performance tweak: rem. pointless recursive calls

For some reason there was an extra call to IrcChannel::joinIrcUser
from IrcUser::joinIrcChannel. That means that in past we did:

* Call to                         IrcChannel::joinIrcUsers(...)
* From there we call              IrcUser::joinIrcChannel(this)
* And from there we called        IrcChannel::joinIrcUser(this)
* Which again called              IrcChannel::joinIrcUsers(list that contained only this 1 user)
* Which figured out this user is already in this channel and exits

That is a pointless overhead, so now we call the second function with
extra parameter that tells it not to call joinIrcUser because we know
this user doesn't need to be added there, thus saves few thousands of
pointless function calls and user list contructions, especially while
joining large channels.

3 years agoDon't assign a default value to spacePos
Pierre Schweitzer [Thu, 2 Jul 2015 12:31:29 +0000 (14:31 +0200)]
Don't assign a default value to spacePos

Will be ignored later on in CtcpParser::parseSimple.

3 years agoPass argument by reference in CliParserArg constructor
Pierre Schweitzer [Thu, 2 Jul 2015 12:28:05 +0000 (14:28 +0200)]
Pass argument by reference in CliParserArg constructor

3 years agoUse prefix operators when possible for non-primitive types
Pierre Schweitzer [Thu, 2 Jul 2015 12:21:55 +0000 (14:21 +0200)]
Use prefix operators when possible for non-primitive types

This affects mostly iterators.

3 years agoWrite out warning when a user login fails
Andrew Brown [Thu, 14 May 2015 08:12:26 +0000 (09:12 +0100)]
Write out warning when a user login fails

Fixes #1356.

3 years agoPreserve white-space in the input history.
Bas Pape [Sat, 28 Dec 2013 12:07:30 +0000 (13:07 +0100)]
Preserve white-space in the input history.

By default QTextHtmlImporter::appendNodeText replaces white-space
characters with a single space and leading white-space is removed. When
white-space is set to pre-wrap in the style of the node, it is preserved
instead.

Given that contents are in a span element, setting white-space to
pre-wrap on span makes the setHtml call do the expected thing.

3 years agoStore the channel keys in CoreNetwork again
Bas Pape [Thu, 24 Sep 2015 19:15:49 +0000 (21:15 +0200)]
Store the channel keys in CoreNetwork again

The refactoring from 3146ad0 (and e0781ee) was not a true refactoring as
it changed behaviour: CoreIrcChannels (as opposed to CoreNetworks) are
ephemeral, which meant disconnecting or parting lost the channel key.
Keys are still kept by the channel's cipher, but synced from/to its network when
the constructor/destructor is called.

Fixes #1248

3 years agoDisable checkbox if no DockManager is present
Bas Pape [Thu, 24 Sep 2015 18:32:13 +0000 (20:32 +0200)]
Disable checkbox if no DockManager is present

This gets rid of the stray debug message introduced by 0bf9227 and adds
some visual feedback on the settingspage instead.

3 years agoRemove forward declarations in multilineedit.h
Bas Pape [Thu, 24 Sep 2015 18:29:08 +0000 (20:29 +0200)]
Remove forward declarations in multilineedit.h

TabCompleter isn't used and QKeyEvent's header is included (and required
for inlined functions).

3 years agoRemove the tabcompletion space at end of text
Bas Pape [Thu, 24 Sep 2015 18:11:48 +0000 (20:11 +0200)]
Remove the tabcompletion space at end of text

The "add space after nick when completing mid-sentence" option
introduced by 84381d6 left the space even if it turned out to be at
the end. Remove it again if the text hasn't changed when sending the
text.

3 years agoFixed english in ircchannel.cpp
Petr Bena [Tue, 22 Sep 2015 08:01:50 +0000 (10:01 +0200)]
Fixed english in ircchannel.cpp

Mostly only comments, it hurt my eyes while reading it :P

3 years agoClean up
Petr Bena [Mon, 21 Sep 2015 12:19:33 +0000 (14:19 +0200)]
Clean up

Removed extra semicolon and resolved some compiler warnings

3 years agoFix build with Qt-5.5
Armin K [Sat, 2 May 2015 21:04:53 +0000 (23:04 +0200)]
Fix build with Qt-5.5

http://code.qt.io/cgit/qt/qtbase.git/commit/?id=ebef2ad1360c80ad62de5f4a1c4e7e4051725c1c

3 years agoKeep _wantReconnect set to true by default instead of false
Michael Marley [Sat, 13 Jun 2015 21:38:29 +0000 (17:38 -0400)]
Keep _wantReconnect set to true by default instead of false

Previously _wantReconnect was set to false by default (unless the
client was actually disconnected).  If the disconnect() signal was
fired without any other signals (socketError(), for example), this
would cause the client to not reconnect.  This seems to be
happening rather often with Qt5 client builds because a vast
majority of the time when I restart my core (or the entire core
server), the Qt5 clients do not reconnect.  This patch keeps
_wantReconnect set to true whenever the client is connected so that
problem will not occur anymore.  Disconnecting manually will set
it back to false so that the client won't try to reconnect after
a manual disconnect.