6 years agoBump Qt4 version requirement to 4.8
Manuel Nickschas [Mon, 2 Feb 2015 22:21:40 +0000 (23:21 +0100)]
Bump Qt4 version requirement to 4.8

Qt 4.8 gained some support for C++11 features such as brace
initializers, which make some things much more convenient. As
this version was released more than three years ago, it should
be safe to finally bump our requirements accordingly. The core
was even fine with Qt 4.4 until now, and that was released a
whopping 7 years ago!

Requiring 4.8 will allow us to remove a bunch of old workarounds
as well, besides allowing for proper use of C++11 in the future.

6 years agoAdd support for Qt5's native command line parser
Manuel Nickschas [Sat, 31 Jan 2015 13:13:45 +0000 (14:13 +0100)]
Add support for Qt5's native command line parser

Qt 5.2 finally has grown a way for parsing command line arguments,
namely QCommandLineParser. According to the KF5 porting docs, this
is also the preferred choice for software using KDE Frameworks.

This commit adds a Qt5-based implementation for AbstractCliParser and
uses that instead of our own solution if Quassel is built against Qt5.
We also add support for naming the values that are shown in the --help
output, as QCommandLineParser can make use of that. Once we stop
supporting Qt4, the CLI parser abstraction shall be killed, simplifying
things a lot.

6 years agoUse KTextEdit when building against KF5
Manuel Nickschas [Sat, 3 Jan 2015 00:21:01 +0000 (01:21 +0100)]
Use KTextEdit when building against KF5

When building against Qt5 and WITH_KDE enabled, the input widget
now is a KTextEdit again, making use of features like spell check.

Note that we'll add support for a stand-alone Sonnet framework to have
spell checking without KDE integration later on.

6 years agoUse link dependencies between Quassel modules
Manuel Nickschas [Sat, 3 Jan 2015 00:19:10 +0000 (01:19 +0100)]
Use link dependencies between Quassel modules

Rather than expressing build dependencies between the Quassel
modules through add_dependency, we should treat those as link
dependencies instead. This has the added advantage that transitive
deps work properly (including properties like include dirs).

6 years agoRename HAVE_KDE define to HAVE_KDE4
Manuel Nickschas [Fri, 2 Jan 2015 23:14:49 +0000 (00:14 +0100)]
Rename HAVE_KDE define to HAVE_KDE4

The build system now sets HAVE_KDE regardless if we're building
with KDE4 or KF5, and in addition adds HAVE_KDE4 and HAVE_KF5.
As many of the frameworks are source compatible with the old kdelibs,
this will allow switching HAVE_KDE4 back to HAVE_KDE later where
possible, without having to check for two defines everywhere.

6 years agoPrepare build system for KDE Frameworks support
Manuel Nickschas [Fri, 2 Jan 2015 21:08:12 +0000 (22:08 +0100)]
Prepare build system for KDE Frameworks support

Besides setting everything up for finding frameworks, this commit also
changes the handling of install paths. We now support the standard CMake
variables of the form CMAKE_INSTALL_<TYPE>_DIR, which can be overridden
on the command line. If KDE integration is enabled, the default paths set
by KDE (4 or frameworks) will be used.

Some additional cleanups were done in passing, too.

6 years agoHappy New Year!
Manuel Nickschas [Fri, 2 Jan 2015 20:55:24 +0000 (21:55 +0100)]
Happy New Year!

6 years agoMerge pull request #103 from mamarley/psqlrefactor2
egs-me [Fri, 19 Dec 2014 13:27:31 +0000 (14:27 +0100)]
Merge pull request #103 from mamarley/psqlrefactor2

Improve reliability of PostgreSQL connections

6 years agoImprove reliability of PostgreSQL connections 103/head
Michael Marley [Fri, 19 Dec 2014 00:02:45 +0000 (19:02 -0500)]
Improve reliability of PostgreSQL connections

This patch adds support for detecting that a query failed due to
the DB connection being down and attempts to reconnect before
retrying the query.  It does this for opening transactions,
safeExec(), and prepareAndExecuteQuery().

6 years agoAdapt Oxygen import script to the new realities
Manuel Nickschas [Sat, 25 Oct 2014 21:28:54 +0000 (23:28 +0200)]
Adapt Oxygen import script to the new realities

Re-running the adapted version afterwards actually added a couple
new icons too, because the old scripts didn't catch them...

6 years agoRemove the obsolete Icon and IconLoader classes
Manuel Nickschas [Sat, 25 Oct 2014 21:14:51 +0000 (23:14 +0200)]
Remove the obsolete Icon and IconLoader classes

Removing (hopefully) all traces of the now obsolete icon
loading support.

6 years agoAdd command line parameter for overriding the system icon theme
Manuel Nickschas [Sat, 25 Oct 2014 20:35:01 +0000 (22:35 +0200)]
Add command line parameter for overriding the system icon theme

Quassel uses many icons that are not part of the freedesktop naming
spec, but supported by KDE icon themes. If Quassel is run in
another environment, such as GNOME, which would select a non-KDE icon
theme, there may be missing icons.

In such cases, it is recommended to install the Oxygen icon theme and
start the Quassel client with '--icontheme=oxygen' to override the
system setting. Of course, you are free to choose any other theme as

Note that oxygen is already selected as a fallback if the platform does
not tell Qt about its icon theme (for example, on non-Linux platforms).

6 years agoUse Qt's native icon theme support rather than our own
Manuel Nickschas [Sat, 25 Oct 2014 20:03:34 +0000 (22:03 +0200)]
Use Qt's native icon theme support rather than our own

For the longest time, we've had our own icon loader (or used KDE's)
in order to provide rudimentary icon theme support. However, since
2009, Qt has had native support for loading icons from themes. In recent
version (due to platform integration etc.), proper icon theme support
has gotten much more complex too... things like theme inheritance,
proper fallback policies, specialized states and so on have never been
supported by our simple custom icon loader.

This commit switches all icon loading to QIcon::fromTheme().

The downside is that we have little control about Qt's icon loader,
which may cause issues with some of the non-standard icons we ship.
In case of the native Qt icon loader being used, we define fallbacks
that should find the extra icons. If you use Qt5 and have the
KDE Frameworks integration plugin for Qt enabled, these fallbacks won't
work unfortunately. If you see missing icons, you may have to install
Quassel's 'hicolor' icons into /usr/share/icons/hicolor so they get
picked up.

For non-Linux platforms, we recommend using the bundled Oxygen icon
set (this is the default).

6 years agoRework how icons are handled in the build system
Manuel Nickschas [Sat, 25 Oct 2014 14:14:12 +0000 (16:14 +0200)]
Rework how icons are handled in the build system

In preparation of moving to native Qt icon theme support, this
commit reworks the handling of icons in the build system:

* Move all vital icons (i.e. application, channel and nicklist icons)
  into the hicolor theme
* Always embed the hicolor theme, so we always find the vital icons
  as a fallback
* Move the bundled Oxygen theme to oxygen/ and include metadata and
  index files, so QIconLoader can find this theme as a fallback
  (a system-installed theme will be preferred in the future, however)
* Ship all icon sizes rather than just the requested ones, so Qt can
  later pick the most applicable size
* Refactor the Oxygen import script accordingly
* Clean up the CMakeLists.txt
* Adapt resource initialization code

6 years agoExtend XDG_DATA_DIRS to include Quassel-specific directories
Manuel Nickschas [Sat, 25 Oct 2014 14:01:30 +0000 (16:01 +0200)]
Extend XDG_DATA_DIRS to include Quassel-specific directories

XDG_DATA_DIRS is used for example by Qt to find icon themes and other
application data. In order to avoid having to hack our own locations into
various places, we extend the variable at runtime to include them instead.

This is only relevant if KDE integration is not enabled; otherwise KDE will
specify a list of data dirs (this means that Quassel needs to be installed
properly for everything to work as expected if KDE integration is enabled).

6 years agoChange applicationName to 'quassel'
Manuel Nickschas [Sat, 25 Oct 2014 19:59:51 +0000 (21:59 +0200)]
Change applicationName to 'quassel'

QCoreApplication::applicationName() should match things like our
data dir prefix and similar, so 'quassel' makes more sense than
'Quassel IRC'. This will be especially relevant in a KDE Frameworks

6 years agoMerge pull request #96 from TheOneRing/qca_qt5
Manuel Nickschas [Thu, 23 Oct 2014 21:48:57 +0000 (23:48 +0200)]
Merge pull request #96 from TheOneRing/qca_qt5

make quassel compile with qca enabled on qt5

6 years agoCheck for invalid input in encrypted buffers
Manuel Nickschas [Tue, 21 Oct 2014 19:20:07 +0000 (21:20 +0200)]
Check for invalid input in encrypted buffers

The ECB Blowfish decryption function assumed that encrypted input would
always come in blocks of 12 characters, as specified. However, buggy
clients or annoying people may not adhere to that assumption, causing
the core to crash while trying to process the invalid base64 input.

With this commit we make sure that we're not overstepping the bounds of
the input string while decoding it; instead we bail out early and display
the original input. Fixes #1314.

Thanks to Tucos for finding that one!

6 years agomake quassel compile with qca enabled on qt5 96/head
Patrick von Reth [Thu, 2 Oct 2014 13:32:11 +0000 (15:32 +0200)]
make quassel compile with qca enabled on qt5

6 years agoShipping Mac OS X packages with SQL plugins
Marcus Eggenberger [Tue, 30 Sep 2014 10:11:44 +0000 (12:11 +0200)]
Shipping Mac OS X packages with SQL plugins

For core and mono builds, required SQL plugins are now automatically
included in the bundle. Since the core uses a flat package, it
requires a special qt.conf. Here, the Prefix is set to ../ as the
default Prefix on Mac OS points to the Contents direcotry of the
bundle, which does not exist in the flat package.

6 years agoPost-release version bump 0.12-pre
Manuel Nickschas [Tue, 23 Sep 2014 22:04:08 +0000 (00:04 +0200)]
Post-release version bump

6 years agoBump version for release 0.11.0
Manuel Nickschas [Tue, 23 Sep 2014 21:54:20 +0000 (23:54 +0200)]
Bump version for release

6 years agoUpdate ChangeLog
Manuel Nickschas [Tue, 23 Sep 2014 21:42:02 +0000 (23:42 +0200)]
Update ChangeLog

6 years agoMerge pull request #83 from m5/hotlist-fix
Manuel Nickschas [Tue, 23 Sep 2014 21:04:41 +0000 (23:04 +0200)]
Merge pull request #83 from m5/hotlist-fix

Fix buffer sorting for hot buffer hotkey

6 years agoRemove obsolete README.Qt5
Manuel Nickschas [Tue, 23 Sep 2014 19:53:57 +0000 (21:53 +0200)]
Remove obsolete README.Qt5

Qt5 is fully supported now, and installation instructions have been
in INSTALL for a while, so the old README.Qt5 can go.

6 years agoSmall optimization
Manuel Nickschas [Mon, 22 Sep 2014 20:31:06 +0000 (22:31 +0200)]
Small optimization

No need to copy the list around.

6 years agoMerge pull request #84 from tecknojock/master
Manuel Nickschas [Mon, 22 Sep 2014 20:32:50 +0000 (22:32 +0200)]
Merge pull request #84 from tecknojock/master

Fixed splitting of CTCP ACTION

6 years agoMerge pull request #93 from mamarley/quitonfaileddbconn
Manuel Nickschas [Mon, 22 Sep 2014 18:39:48 +0000 (20:39 +0200)]
Merge pull request #93 from mamarley/quitonfaileddbconn

Quit on database connection failure

6 years agoMerge pull request #92 from mamarley/nodbnoemit
Manuel Nickschas [Mon, 22 Sep 2014 18:39:39 +0000 (20:39 +0200)]
Merge pull request #92 from mamarley/nodbnoemit

Do not emit messages if storing them in the DB failed

6 years agoMerge pull request #94 from mamarley/ssloidentdfix
Manuel Nickschas [Mon, 22 Sep 2014 18:39:25 +0000 (20:39 +0200)]
Merge pull request #94 from mamarley/ssloidentdfix

Rename socketConnected() to socketOpen() to reduce confusion

6 years agoMerge pull request #95 from fire/travis-pull-request
Manuel Nickschas [Mon, 22 Sep 2014 18:14:20 +0000 (20:14 +0200)]
Merge pull request #95 from fire/travis-pull-request

Tell travis to create a matrix of gcc 4.7, clang 3.4, qt4 and qt5.

6 years agoTell travis to create a matrix of gcc 4.7, clang 3.4, qt4 and qt5. 95/head
K. S. Ernest (iFire) Lee [Sun, 21 Sep 2014 19:57:34 +0000 (12:57 -0700)]
Tell travis to create a matrix of gcc 4.7, clang 3.4, qt4 and qt5.

6 years agoUpdated Encode to not run additional times. 84/head
tecknojock [Wed, 17 Sep 2014 05:28:42 +0000 (00:28 -0500)]
Updated Encode to not run additional times.

Fixed the issue of the message being encoded twice unnessesarily on
actions that did not require splitting.

6 years agoRename socketConnected() to socketOpen() to reduce confusion 94/head
Michael Marley [Wed, 17 Sep 2014 02:04:11 +0000 (22:04 -0400)]
Rename socketConnected() to socketOpen() to reduce confusion

6 years agoQuit on database connection failure 93/head
Michael Marley [Tue, 16 Sep 2014 23:29:12 +0000 (19:29 -0400)]
Quit on database connection failure

Previously, if a Quasselcore was configured to use PostgreSQL but
the PostgreSQL connection failed on startup, it would come up
unconfigured with SQLite.  This patch makes the Quasselcore quit
with a fatal error instead.

6 years agoMerge pull request #89 from mamarley/ssloidentdfix
Manuel Nickschas [Tue, 16 Sep 2014 17:26:38 +0000 (19:26 +0200)]
Merge pull request #89 from mamarley/ssloidentdfix

Improve the odds of winning the oidentd race when using SSL for IRC

6 years agoDo not emit messages if storing them in the DB failed 92/head
Michael Marley [Sat, 6 Sep 2014 02:16:05 +0000 (22:16 -0400)]
Do not emit messages if storing them in the DB failed
If a message is not stored in the database, then some of its IDs
(networkId at least) will be invalid.  If this message is sent to
clients, it will cause a nameless empty buffer to appear in the
desktop client and will cause Quasseldroid to crash (of course.)
Better behavior would be to simply not emit the message, since it
can't be displayed properly anyway.

6 years agoUpdate AboutDlg
Manuel Nickschas [Sun, 14 Sep 2014 20:16:31 +0000 (22:16 +0200)]
Update AboutDlg

6 years agoMerge pull request #88 from mamarley/psqllimitallfix
Manuel Nickschas [Sun, 14 Sep 2014 15:22:37 +0000 (17:22 +0200)]
Merge pull request #88 from mamarley/psqllimitallfix

Use null QVariant instead of "ALL" for select limit on psql

6 years agoMerge pull request #85 from allanjude/patch-1
Manuel Nickschas [Sun, 14 Sep 2014 15:16:39 +0000 (17:16 +0200)]
Merge pull request #85 from allanjude/patch-1

Update README re: manageusers.py

6 years agoMerge pull request #82 from jpnurmi/legacypeer
Manuel Nickschas [Sun, 14 Sep 2014 14:48:12 +0000 (16:48 +0200)]
Merge pull request #82 from jpnurmi/legacypeer

LegacyPeer: kill the dependency to Quassel::buildInfo()

6 years agoRetains Channel UnHiddens Status after client Restart.
ramz [Sun, 30 Mar 2014 11:07:25 +0000 (22:07 +1100)]
Retains Channel UnHiddens Status after client Restart.

Steps to Reproduce:
1. Hide channel temporarily
2. Part channel
3. Join channel (it will now be visible again, at the bottom of that network's buffer list)
Optional: talk in the channel, get other people to talk, etc but the buffer must not be blue (new message(s)) when you proceed next
4. Quit the client
5. When you'll restart it, the channel will be temporarily hidden again

Root Cause:
After step 3, we are not saving the bufferviewconfig synchronizable object right.

Save the bufferviewconfig object correctly.

Fixes #1218.

6 years agoImprove the odds of winning the oidentd race when using SSL for IRC 89/head
Michael Marley [Thu, 4 Sep 2014 00:12:31 +0000 (20:12 -0400)]
Improve the odds of winning the oidentd race when using SSL for IRC
Previously, the .oidentd.conf file was not written until
socketInitialized(), which meant that when using SSL for the IRC
connection, the file would not be written until the SSL negotiation
was complete.  This delay meant that, in practice, oidentd
integration almost never worked when using SSL IRC connections.
This patch adds a new socketConnected() signal that fires as soon
as the connection is open, regardless of encryption status, and
connects the call to the oidentd configuration generator to this
signal.  This gives oidentd integration the same likelihood of
working with SSL connections as with non-SSL connections.

6 years agoUse null QVariant instead of "ALL" for select limit on psql 88/head
Michael Marley [Mon, 1 Sep 2014 22:42:22 +0000 (18:42 -0400)]
Use null QVariant instead of "ALL" for select limit on psql
Using "ALL" as it was before was making PostgreSQL error out when
attempting to return backlog for Quasseldroid when Quasseldroid is
in "Unread messages per chat" mode.  According to
LIMIT NULL is the same thing as having no LIMIT at all.  According
to http://qt-project.org/doc/qt-4.8/qsqlquery.html, NULL values
are bound in Qt SQL prepared statements by using a null QVariant.

6 years agoRevert "Fix notification icon not appearing in Unity"
Daniel Albers [Fri, 29 Aug 2014 11:03:24 +0000 (13:03 +0200)]
Revert "Fix notification icon not appearing in Unity"

This fixes builds currently failing at runtime with this D-Bus error:
  arguments to dbus_message_iter_append_basic() were incorrect,
  assertion "_dbus_check_is_valid_path (*string_p)" failed in file
  dbus-message.c line 2680.

This reverts commit 3939820389d995f56a073fc1d54ab245c6558312.

Unfixes bug #1269

6 years agoMerge pull request #87 from denizt/moc
Daniel Albers [Thu, 28 Aug 2014 07:23:25 +0000 (09:23 +0200)]
Merge pull request #87 from denizt/moc

Fix MainToolBar visibility not saving in OSX

6 years agoFix MainToolBar visibility not saving in OSX 87/head
Deniz Türkoglu [Wed, 27 Aug 2014 19:08:57 +0000 (21:08 +0200)]
Fix MainToolBar visibility not saving in OSX

The current code, although completely valid, doesn't work due to moc not
seeing built in defines. See;

6 years agoMerge pull request #86 from seezer/c++11
Manuel Nickschas [Thu, 21 Aug 2014 17:27:08 +0000 (19:27 +0200)]
Merge pull request #86 from seezer/c++11

c++11 - from feint to fact

6 years agoc++11 - from feint to fact 86/head
Sebastian Goth [Thu, 21 Aug 2014 16:31:56 +0000 (18:31 +0200)]
c++11 - from feint to fact

By extending CMAKE_CXX_FLAGS twice for gcc, we kept -ansi which
overrides -std=c++11. Cleaned that up a little.

6 years agoUpdate README re: manageusers.py 85/head
Allan Jude [Tue, 19 Aug 2014 14:11:49 +0000 (10:11 -0400)]
Update README re: manageusers.py

Update README to reflect the deprecation of scripts/manageusers.py in Aug 2010

6 years agoFixed CTCP Action Spliting
tecknojock [Thu, 14 Aug 2014 19:53:30 +0000 (14:53 -0500)]
Fixed CTCP Action Spliting

Previously /me would truncate if it was over the 512 character limit,
forming a malformed action as the last \01 character is cut off. Now the
CTCP Action should autosplit the same way that overflow on normal
messages does. Additionally the characters !? were added to the
splittable characters list, bringing the new list to " ,.-!?"

6 years agoFix notification icon not appearing in Unity
Daniel Albers [Tue, 5 Aug 2014 10:36:51 +0000 (12:36 +0200)]
Fix notification icon not appearing in Unity

Unity's indicator expects certain properties to be exported by an
application, of which Quassel is lacking some. This adds IconThemePath,
Menu, ItemIsMenu to org.kde.StatusNotifierItem.

Thanks a lot to shiznix for providing this patch.

Fixes #1269

6 years agofix buffer sorting for hot buffer hotkey 83/head
m5 [Sun, 3 Aug 2014 00:03:14 +0000 (17:03 -0700)]
fix buffer sorting for hot buffer hotkey

6 years agoTravis: Update gcc to 4.7
Daniel Albers [Mon, 28 Jul 2014 14:29:37 +0000 (16:29 +0200)]
Travis: Update gcc to 4.7

Fixes Travis builds currently failing with:
  cc1plus: error: unrecognized command line option ‘-std=c++11’

6 years agoMerge pull request #77 from seezer/bug821
Daniel Albers [Mon, 28 Jul 2014 13:55:44 +0000 (15:55 +0200)]
Merge pull request #77 from seezer/bug821

Don't scroll to bottom unexpectedly.

Fixes #821

6 years agoInitialize ChatView scrolled to bottom
Sebastian Goth [Wed, 25 Jun 2014 17:16:23 +0000 (19:16 +0200)]
Initialize ChatView scrolled to bottom

Now that we don't scroll on every resize, ensure that we start scrolled
to bottom.

6 years agoKeep scrolled down views through resizeEvents
Sebastian Goth [Tue, 17 Jun 2014 17:26:50 +0000 (19:26 +0200)]
Keep scrolled down views through resizeEvents

There's a reason for everything...
ChatView is rendered into the viewport from top to bottom.
If we don't scroll to bottom, the topmost line doesn't change and therefore
the scrollbar will move upwards on shrinking events.
So if the scrollbar was at bottom before the resize, make it stay there.

6 years agoDon't scroll to bottom on resize
Sebastian Goth [Tue, 17 Jun 2014 16:07:11 +0000 (18:07 +0200)]
Don't scroll to bottom on resize

We're brave today..
Resizing the chatview (even unintentionally by hovering the topicline)
resulted in scrolling down the current view.
There might have been reasons.. i can't see them..

Fixes #821

6 years agoEnable C++11
Manuel Nickschas [Sat, 26 Jul 2014 12:38:11 +0000 (14:38 +0200)]
Enable C++11

As announced a while ago, we're now allowing C++11 in the codebase.
We now expect one of the following compilers:

* gcc >= 4.7
* Clang >= 3.1
* MSVC >= 18 (Visual Studio Nov 2013 CTP)

Older or different compilers may still work, but break at any time
in the future.

6 years agoDo not update activity for hidden message types
Bas Pape [Mon, 26 May 2014 17:24:01 +0000 (19:24 +0200)]
Do not update activity for hidden message types

6 years agoFix support for CMake < 3
Manuel Nickschas [Thu, 24 Jul 2014 21:20:41 +0000 (23:20 +0200)]
Fix support for CMake < 3

Meh. Apparently I can't just set behavior for future policies, so we
need to ensure that we're actually running CMake 3.

6 years agoSilence deprecation warning from CMake 3.0+
Manuel Nickschas [Thu, 24 Jul 2014 21:02:45 +0000 (23:02 +0200)]
Silence deprecation warning from CMake 3.0+

Setting COMPILE_DEFINITIONS_<Config> has been deprecated since CMake 3.0.
However, the "proper" way of doing things now (generator expressions) have
been support only since CMake 2.8.10, and we require 2.8.9 currently.

Thus, we explicitly enable OLD behavior for CMP0043.

6 years agoAdapt CMake logic for finding lconvert in newer Qt5
Manuel Nickschas [Thu, 24 Jul 2014 20:51:16 +0000 (22:51 +0200)]
Adapt CMake logic for finding lconvert in newer Qt5

Seems like Qt 5.3 has added the long-missing lconvert target in its CMake
support scripts, however it didn't also add the Qt5_LCONVERT_EXECUTABLE
variable to go along with that. Adding the target disabled our workaround,
breaking translation support in Quassel.

We now also cover this case (and made things future-proof in case Qt5 ever
adds the variable upstream).

6 years agoLegacyPeer: kill the dependency to Quassel::buildInfo() 82/head
J-P Nurmi [Thu, 10 Jul 2014 22:11:27 +0000 (00:11 +0200)]
LegacyPeer: kill the dependency to Quassel::buildInfo()

This makes LegacyPeer usable outside Quassel (IRC for Sailfish)

6 years agoUse correct nick on 001 RPL_WELCOME
Mattia Basaglia [Thu, 26 Jun 2014 13:23:13 +0000 (15:23 +0200)]
Use correct nick on 001 RPL_WELCOME

Fixes #1020
When the user connects to  a bouncer, the bouncer will send back the
welcome message received when it first connected to the network.
This caused Quassel to display a wrong nick if it had changed
since the first connection.

6 years agoMerge pull request #81 from otih/master
Manuel Nickschas [Sat, 5 Jul 2014 20:14:00 +0000 (22:14 +0200)]
Merge pull request #81 from otih/master

Fix Bug #1293: --syslog option writes to emergency level

6 years agoFix Bug #1293: --syslog option writes to emergency level 81/head
otih [Thu, 3 Jul 2014 21:34:44 +0000 (23:34 +0200)]
Fix Bug #1293: --syslog option writes to emergency level

6 years agoFix Bug #1293: --syslog option writes to emergency level
otih [Thu, 3 Jul 2014 20:58:35 +0000 (22:58 +0200)]
Fix Bug #1293: --syslog option writes to emergency level

6 years agoDon't treat pure format strings as translatable.
Daniel Albers [Wed, 2 Jul 2014 15:34:21 +0000 (17:34 +0200)]
Don't treat pure format strings as translatable.

6 years agoMerge pull request #78 from seezer/qt5contextmenu
Manuel Nickschas [Wed, 2 Jul 2014 22:43:01 +0000 (00:43 +0200)]
Merge pull request #78 from seezer/qt5contextmenu

Fix contextmenu actions for Qt5

6 years agoMerge pull request #73 from jpnurmi/signalproxy
Manuel Nickschas [Wed, 2 Jul 2014 22:24:47 +0000 (00:24 +0200)]
Merge pull request #73 from jpnurmi/signalproxy

signalproxy.h: add missing forward declaration of QIODevice

6 years agoMerge pull request #72 from jpnurmi/datastream
Manuel Nickschas [Wed, 2 Jul 2014 22:22:57 +0000 (00:22 +0200)]
Merge pull request #72 from jpnurmi/datastream

DataStreamPeer: add missing include <QDataStream>

7 years agoFix contextmenu actions for Qt5 78/head
Sebastian Goth [Tue, 17 Jun 2014 19:33:21 +0000 (21:33 +0200)]
Fix contextmenu actions for Qt5

As documented for QObject::connectNotify

7 years agoChecking for single char line endings
Sebastian Meyer [Fri, 13 Jun 2014 12:52:55 +0000 (14:52 +0200)]
Checking for single char line endings

This fixes problems with IRC servers sending only single char line
endings. Before the last char on each line for thos servers would be
chopped, now Quassel checks how the line ends and chops accordingly.
Fixes #1267

7 years agoFix build on KDE
Manuel Nickschas [Fri, 9 May 2014 19:38:37 +0000 (21:38 +0200)]
Fix build on KDE

Oops. This wouldn't have happened with 'auto' :P

7 years agoFix tab completion on exotic platforms
Manuel Nickschas [Mon, 5 May 2014 21:38:27 +0000 (23:38 +0200)]
Fix tab completion on exotic platforms

Turns out that using the tab key as an action shortcut in an input widget
does not work reliably on all platforms, at least on OS/2 - sometimes,
the event filter would be called instead of triggering the action.

To make this more robust, we disable the action (just using it as a container
for the custom shortcut) and always catch and handle the key in the event
filter which we need anyway.

Thanks to TeLLie for bisecting this issue and finding the culprit on OS/2.

7 years agoUpdate ChangeLog
Manuel Nickschas [Mon, 5 May 2014 18:47:40 +0000 (20:47 +0200)]
Update ChangeLog

7 years agoFix crash with KDE network detection
Manuel Nickschas [Mon, 5 May 2014 18:37:36 +0000 (20:37 +0200)]
Fix crash with KDE network detection

If the network connection status changed during authentication phase,
Quassel would crash. This is caused by some old bits of code that still
assume that there's always a Peer around, which is no longer the case
after splitting off the AuthHandler.

This commit fixes that issue. Thanks to shadeslayer for the report and
really useful backtrace.

7 years agosignalproxy.h: add missing forward declaration of QIODevice 73/head
J-P Nurmi [Mon, 28 Apr 2014 21:06:58 +0000 (23:06 +0200)]
signalproxy.h: add missing forward declaration of QIODevice

7 years agoDataStreamPeer: add missing include <QDataStream> 72/head
J-P Nurmi [Mon, 28 Apr 2014 21:05:00 +0000 (23:05 +0200)]
DataStreamPeer: add missing include <QDataStream>

7 years agoBuild mono client packages on Mac OS X
Marcus Eggenberger [Wed, 9 Apr 2014 12:58:49 +0000 (14:58 +0200)]
Build mono client packages on Mac OS X

When deploying on Mac OS X, also build a disk image (dmg) for the mono
client. Also updated cmake files for OS X 10.8.

7 years agoMake sure our Qt5 is new enough
Manuel Nickschas [Mon, 31 Mar 2014 22:07:45 +0000 (00:07 +0200)]
Make sure our Qt5 is new enough

find_package will happily ignore the requested version if not used
with REQUIRED, plus early Qt5 versions handled versions differently;
thus, let's explicitly check for a supported version and bail out

7 years agoWe don't actually require XmlPatterns for WebKit
Manuel Nickschas [Mon, 31 Mar 2014 21:14:55 +0000 (23:14 +0200)]
We don't actually require XmlPatterns for WebKit

No clue why we forced linking against that one, but it doesn't seem
to be required for both Qt4 and Qt5, so let's just remove the dependency.

7 years agoMake --syslog option work again
Manuel Nickschas [Mon, 31 Mar 2014 20:12:28 +0000 (22:12 +0200)]
Make --syslog option work again

The -DHAVE_SYSLOG was missing for compiling main() after the recent
build system changes, so the option wasn't enabled (but caused a

7 years agoBring back COMMON_DEPS
Manuel Nickschas [Mon, 31 Mar 2014 20:03:54 +0000 (22:03 +0200)]
Bring back COMMON_DEPS

This is actually being used to link the app icon on Windows, so bring
the old variables back for now. Probably want to clean this up later
though, as the naming is confusing.

7 years agoFix Qt resource handling
Manuel Nickschas [Mon, 31 Mar 2014 19:58:27 +0000 (21:58 +0200)]
Fix Qt resource handling

Turns out we have to explicitly initialize Qt resources that are linked
statically, so our last build system change broke things because the
files where nowhere to be found.

This now initializes the resources in main(); additionally, we use absolute
paths for the qrc files now, simply for making things a bit clearer.

7 years agoMerge pull request #69 from Nevcairiel/qt5msvcbuild
Manuel Nickschas [Sun, 30 Mar 2014 20:45:19 +0000 (22:45 +0200)]
Merge pull request #69 from Nevcairiel/qt5msvcbuild

Qt5 MSVC build fixes

7 years agoFix linking against Qt5 on MSVC 69/head
Hendrik Leppkes [Sat, 29 Mar 2014 16:18:22 +0000 (17:18 +0100)]
Fix linking against Qt5 on MSVC

QT_QTMAIN_LIBRARY is no longer automatically set on Qt5, as it is part of
a deprecated way to link against Qt. Since Quassel needs to support both
Qt4 and Qt5, setting the variable to the appropriate value again works
around the issue until such a time that the CMake requirement is increased
to make use of policy CMP0020.

Note that this is the same workaround cmake itself uses when building
cmake-gui for Windows.

7 years agoFix building with Qt5 on MSVC by undefining min/max macros
Hendrik Leppkes [Sat, 29 Mar 2014 16:16:13 +0000 (17:16 +0100)]
Fix building with Qt5 on MSVC by undefining min/max macros

The Windows stdlib.h header defines min/max macros, which interfer with
the Qt5 header files. Luckily, it also provides the define NOMINMAX which
suppresses these macros, and fix building.

7 years agoAvoid race conditions in the build system
Manuel Nickschas [Fri, 28 Mar 2014 23:57:22 +0000 (00:57 +0100)]
Avoid race conditions in the build system

Adding resource files in multiple targets is a bad idea, because CMake
will happily generate them multiple times too, and unfortunately also
in the same location. With Qt5, this actually lead to a misgenerated
oxygen_kde.qrc some times.

Now we add the resources in the module they belong to, which not only
avoids these race conditions, but also saves some time during compile,
because every resource file is only processed once now.

Changing this triggered yet another race condition, where not all translations
would be generated by the time the corresponding .qrc was needed. Adding
a fugly add_dependencies(mod_common po) fixes this; however we may want to
find a cleaner way to properly express deps between the language files and the

7 years agoProperly handle RPC calls that return void
Manuel Nickschas [Fri, 28 Mar 2014 22:26:53 +0000 (23:26 +0100)]
Properly handle RPC calls that return void

Qt5 loudly warns when trying to construct a QVariant from QMetaType::Void,
thus we should not do that. Instead, check for this case and use an invalid
QVariant instead. Works fine on both Qt4 and Qt5 that way.

7 years agoFix rendering of the sender column
Manuel Nickschas [Thu, 27 Mar 2014 22:20:24 +0000 (23:20 +0100)]
Fix rendering of the sender column

Turns out the compositing needed to be tweaked to actually behave
as desired. Senders are now properly rendered including the fade-out
effect on both Qt4 and Qt5.

7 years agoMerge pull request #68 from jpnurmi/build-date
Manuel Nickschas [Thu, 27 Mar 2014 20:45:13 +0000 (21:45 +0100)]
Merge pull request #68 from jpnurmi/build-date

Protocol::RegisterClient: add buildDate field

7 years agoMerge pull request #67 from jpnurmi/preset
Manuel Nickschas [Thu, 27 Mar 2014 20:44:54 +0000 (21:44 +0100)]
Merge pull request #67 from jpnurmi/preset

Move preset networks handling out of Network

7 years agoMerge pull request #66 from TheOneRing/snore
Manuel Nickschas [Thu, 27 Mar 2014 20:42:39 +0000 (21:42 +0100)]
Merge pull request #66 from TheOneRing/snore

Fixed detection of snore for Qt4/Qt5

7 years agoProtocol::RegisterClient: add buildDate field 68/head
J-P Nurmi [Thu, 27 Mar 2014 19:15:22 +0000 (20:15 +0100)]
Protocol::RegisterClient: add buildDate field

This kills the dependency from DataStreamPeer to Quassel::buildInfo().

7 years agoMove preset networks handling out of Network 67/head
J-P Nurmi [Wed, 26 Mar 2014 23:17:41 +0000 (00:17 +0100)]
Move preset networks handling out of Network

This moves highly application specific functionality out of Network
and makes it possible to re-use Quassel's code base for implementing
the Quassel protocol in external applications.

7 years agoMove the PeerPtr declaration out of types.h
Manuel Nickschas [Wed, 26 Mar 2014 21:03:21 +0000 (22:03 +0100)]
Move the PeerPtr declaration out of types.h

This belongs in peer.h instead, since types.h is included in lots
of places that should not drag the peer deps in. Also, this caused
problems (circular deps?) when building the OSX notification backend.

7 years agoFixed detection of snore for Qt4/Qt5 66/head
Patrick von Reth [Wed, 26 Mar 2014 20:16:01 +0000 (21:16 +0100)]
Fixed detection of snore for Qt4/Qt5

7 years agoMerge pull request #64 from TheOneRing/warnings
Manuel Nickschas [Wed, 26 Mar 2014 19:42:29 +0000 (20:42 +0100)]
Merge pull request #64 from TheOneRing/warnings

silence some warnings