summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-08-08Enable log information export to a fileThanos Doukoudakis
This patch introduces the “logfile” argument to the client, which can be used to specify a file path for a log file, where all logging information will be stored. Test-Information: Tested on windows 10 and Ubuntu 17.04 Change-Id: I6a2f14585a72f25e7e78d79cb633e1ddc4d43c3b
2017-07-26Workaround Boost bug to prevent crash in recents loadingThanos Doukoudakis
Boost 1.64 introduced a regression where boost::optional deserialisation could lead to a crash when loading the recent chats. This fix updates the way we serialise the ChatListWindow::Chat and HighlightAction classes to avoid these errors. A flag has been added, to allow the use of the erroneous version of the library during the build. During runtime if needed, the client will skip loading the data, to avoid any unpredicted behaviour. Test-Information: Tested on windows 10 with different versions of boost 1.56(bundled), 1.63, 1.64, 1.65 and Ubuntu 17.04 with versions 1.56(bundled) and 1.64. Added unit tests for the serialisation ChatListWindow::Chat class. Change-Id: Idc5c3a6cfd92272b8eab2d77e243dda743803a31
2017-07-18Replace assert() with SWIFT_LOG_ASSERT for loading fontsTobias Markmann
Test-Information: Builds on macOS 10.12.5 with Qt 5.4.2. Change-Id: Ifc49064c6a8ca2f0be52d8ddd8f0c7791230430f
2017-07-06Fix a crash that occurs when resizing chat layoutThanos Doukoudakis
This patch fixes a client crash that was caused when the chat layout was resized to a size that would make some of the chat window out of range. Test-Information: Tested on Ubuntu 16.04 LTS (Qt5.5.1) and Windows 10 (Qt5.7.1) Change-Id: I900c1efcf3c9ae3c416fb4e2d19bd47bf27bbaee
2017-07-05Adds MIXUserPreference Element, its Parser and SerializerTarun Gupta
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added tests for MIXUserPreference Parser and Serializer based on examples in XEP 0369, which passes. Change-Id: I06595325f4cc2b34d5ab5a93a6caa00330fe0737
2017-07-04Sluift: Add extensions support to disco#info queriesRoger Planas
Only identities and features were reported. Now extensions, if any, will also be reported Test-information: Sent disco#info to a muc room, and got the following extensions back (along with identities and features, so no regression) Change-Id: Ib4ab17114df4da5de51945df9e53c12bd42716d1
2017-07-03Adds MIX Create Element, its Parser and SerializerTarun Gupta
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added tests for MIX Create Parser and Serializer based on examples in XEP 0369, which passes. Change-Id: I33b85c8243d55cd293c886f2607bdd9dec6c7bdb
2017-06-26Adds MIX Join Element, its Parser and Serializer.Tarun Gupta
Add MIXDestroySerializer to FullPayloadSerializerCollection. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added tests for MIX Join Parser and Serializer based on examples in XEP 0369, which passes. Tested on Ubuntu 16.04 LTS. Change-Id: Ibf7446dd65714dccdd39c485549fd9fb9faba40c
2017-06-26Fix FileWriteBytestreamTest under WindowsVitaly Takmazov
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Fixes FileWriteBytestreamTest by closing WriteStream before file deletion which passes. Tests performed under Windows 10 1703 Change-Id: I0be891af652138af23f8db9e5526d927d39c9856
2017-06-26Use separate jobs in CircleCI for coala, clang and gccTobias Markmann
Test-Information: Ran successfully on CircleCI. Change-Id: Ic66577788e440ca8d02fc6e1c617aa4b941f7e94
2017-06-26Use size_t instead of int in SpellParser::PositionPairTobias Markmann
Use of int required a lot of casts when using the indices with std::string methods. Furthermore code used -1 as error code, which should have used std::optional for invalid PoistionPair instnaces. Test-Information: All tests pass on Debian Stretch with clang-3.9. Change-Id: Ic5c44ed606deb58b6123d654f25fc50f047dfbc8
2017-06-26Fix compiler warnings raise by Clang on LinuxTobias Markmann
Clang raises warnings about unused members and macros on Linux. These are fixed with this change. Test-Information: Tested with clang-3.9 on Debian Stretch. Change-Id: I87bc0606cfd14365330aaad4ed433d3bca2d5330
2017-06-26Remove unneeded forward declarations from Swiften headersTobias Markmann
Found by cppclean. Test-Information: Still builds on macOS 10.12.5 with clang trunk. Change-Id: Ie8a154e12b196587c956c8b333abf529a36f6bb3
2017-06-25Adds MIX Destroy Element, its Parser and Serializer.Tarun Gupta
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Added tests for MIX Destroy Parser and Serializer based on examples in XEP 0369, which passes. Change-Id: I56810eb2fc26cc6aeb5e1cfb2a32e312f0607ba9
2017-06-22Add missing SWIFTEN_API declarationsVitaly Takmazov
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Tested performed under Windows 10 1703 Change-Id: I332923986c8d62b75a76ef9f784811d09a662f22
2017-06-22Handle badly-formed labels catalogueThanos Doukoudakis
Updated the code to ignore labels that belong to a catalog item that is malformed and not added as a valid item. Test-Information: Added unit tests for badly formed catalog items and labels. Tested on Windows 10 (Qt 5.7.1) and Ubuntu 16.04 (Qt 5.5.1) Change-Id: I11fbd3b54faa3ee225a08a87ad8ed59977b7ff20
2017-06-22Add missing SWIFTEN_API annotationTobias Markmann
Test-Information: None. Change-Id: I1d8e0af76841824ff573bd19f664a04e4f2d97a1
2017-06-21Add CircleCI configuration for basic GitHub PR checksTobias Markmann
This also disables a couple compiler warnings raised by clang trunk. Test-Information: Tested this on my personal GitHub fork of Swift and it works. Change-Id: I646d3beb9fc0376e0b38ce8e323e5717a899ad45
2017-06-21Add Coala config for whitespace checkingTobias Markmann
Coala ( https://coala.io/ ), is a meta linting tool, that comes with own checks and integration for external tools for a lot languages. This adds a configuration that enforces no trailing whitespace and no lines with only whitespaces. Test-Information: Ran coala and fixes the issues it raised. Change-Id: I30b201135bbe8888d9d1bcadb28f9ced9b5db28f
2017-06-21Fix compiler warningsKevin Smith
Both catching polymorphic base classes by value and explicitly moving things preventing return value optimization. Test-Information: Compiles on macOS with latest xcode with allow_warnings=False and unit tests pass Change-Id: Ibdc67f4f2019f85f14635df2a3ff06bddbb8e2b6
2017-06-20Update 3rdParty/Expat to version 2.2.1Tobias Markmann
Test-Information: Build successfully on macOS 10.12.5 with clang trunk and ./scons test=all try_libxml=no try_expat=no . Change-Id: I0cc0680086ea40f92bbfa7296d10beb08cc657e3
2017-06-19Don't crash when SSL_new failsAlexey Melnikov
NULL pointer dereference was happening in OpenSSL code (inside SSL_set_bio) when SSL_new returned NULL due to lack of Isode HGE license. Change-Id: Iebd78be7eb6c7978de0bff225915dc393a516f08
2017-06-18Adds MIX Participant Element, its Parsers and Serializers.Tarun Gupta
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Adds tests for MIX Participant Parser and Serializer from XEP-0369, which passes. Tested on Ubuntu 16.04 LTS. Change-Id: Iee2d96c8ebdf9461c28518f8f8c28c11d2a94524
2017-06-16Add scripts that test Debian packagesThanos Doukoudakis
Adding two scripts that will test Ubuntu(xenial – yakkety) and Debian(jessie - sid) distributions. The script will create a base system of the distribution and then add the swift distribution channels. It will then test the version of the binary and source packages that are available in the channel, and then it will attempt to install swift and all its dependencies. Test-Information: Tested on Ubuntu 16.04 (host) Change-Id: I977e72223a4688672d64b39c22c966aa143bc060
2017-06-14Update build_appimage.py for CentOS 6 supportTobias Markmann
* Adjust script to support older Python version, 2.6.6 * Add ability to include arbitrary libs in AppImage * Make debuglink via objcopy optional Test-Information: Tested on 64-bit CentOS 6.9 with non-system g++ 4.9.4 and tested generated AppImage on 64-bit Ubuntu 16.04. Change-Id: Ib75b07b30e1b1cdf875ec0b45c9f7bab91c59fbf
2017-06-13Add build_appimage.py for Linux packaging as AppImageTobias Markmann
Run this script to generate a self-contained AppImage that will run on any Linux distribution that has the same or newer Linux kernel and the same or newer GLib. The script will generate an AppImage for the same architecture it is executed on. By default it will use Qt5. Specify --qt5=False to create an AppImage with Qt4. The resulting .appimage and .debug files are copied to ./Packages/Swift Test-Information: Latest iteration of the script was tested with building an AppImage on 64-bit Ubuntu 16.04 and running it on 64-bit Debian Sid. Earlier version of the script was tested on 32-bit SUSE Linux Enterprise 11. Change-Id: I14477ada3558109fe73a77f7e7fe1ee8ef629d5f
2017-06-12Add new openSUSE distro identifierMichael Vetter
On newer openSUSE distros it will just return 'openSUSE'. License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Change-Id: I9ea0866f1a07772f821e9eff51a9895f684bd22e
2017-06-02Update German translationThilo Cestonaro
Changed some strings where the user was still addressed in a non-formal way ("Du/Dich/Dir" instead of "Sie/Ihnen"). Test-Information: ./BuildTools/CheckTranslations.py does not raise warnings or errors regarding German translation. Change-Id: Icee73545df164c33b0cff8aa8c1233689a3e2c3d
2017-05-22Close changelog for Swift 4.0 RC2swift-4.0rc2Tobias Markmann
Test-Information: None. Change-Id: Iddc3e6c57ff19cd12177d6d1513949fc49d05eab
2017-05-19Only apply impromptu chat title style to impromptu chatsTobias Markmann
Fixes regression of 1cb2bb7, that would show the full bare JID as chat title for normal MUCs. Test-Information: Added unit test for having the classic title style for normal MUCS. Joined basic MUC room and verified it only shows the node part of the MUC JID as chat title. Verified that for impromptu chats, it shows the list of participants as chat title. Tested on macOS 10.12.5 with Qt 5.4.2. Change-Id: I3685172378c0b6303524c89876b044eac1aa1422
2017-05-17Close changelog for Swift 4.0 RC1swift-4.0rc1Tobias Markmann
Test-Information: None. Change-Id: I0c6479aa5fe9d4a77170cf2e38899c1ce599d705
2017-05-17Update 3rdParty/LibNATPMP to libnatpmp-20150609Tobias Markmann
Furthermore applied current patches. Test-Information: Builds on macOS 10.12.5 with Qt 5.4.2 and all unit and integration tests pass. Change-Id: I7a8a3b7e8b37b20532e3ed5fe32f1cef5b09b1f6
2017-05-17Update 3rdParty/LibMiniUPnPc to miniupnpc-2.0.20170509Tobias Markmann
Test-Information: Builds on macOS 10.12.5 with Qt 5.4.2 and all unit and integration tests pass. Change-Id: I491c0f78bf8773056feb3825d21989d6c7a2aeab
2017-05-15Disconnect potentially connected slots from signals in dtorTobias Markmann
SWIFT-247 Test-Information: Tests pass and builds on macOS 10.12.4 with Qt 5.4.2. Change-Id: I39b62f53c62fba972e6a29e89cd00fb3b4e1a5b5
2017-05-15Use QPointer to prevent access to potentially freed QtTreeWidgetTobias Markmann
As the QtTreeWidget and the QtFilterWidget are siblings in their parent widget, it might happen that the QtTreeWidget is deleted before the QtFilterWidget. Using Pointer, we are able to detect this case and can prevent accessing the already deleted QtTreeWidget. QtFilterWidget cannot be made the child of the QtTreeWidget in this case, so this fix uses the QPointers approach as a workaround. SWIFT-247 Test-Information: Tests pass and builds on macOS 10.12.4 with Qt 5.4.2. Change-Id: I3a60006519b580010718c4d2aa94638555c0afdf
2017-05-15Unregister as event filter in QtFilterWidget dtorTobias Markmann
When QtFilterWidget is deleted, it is still registered as event filter and events might be sent to an already deleted QtFilterWidget, causing a crash. SWIFT-247 Test-Information: All unit tests pass, roster filtering still works, and Swift does not crash on exit on macOS 10.12.4 with Qt 5.4.2. Change-Id: I84a7e1af64d1376db3dfdd0fd7cf95b547cca9a1
2017-05-15Add pointer checks in some CoreClient members.Thanos Doukoudakis
This patch adds some checks in the CoreClient class to avoid accessing stanza and session channels to send data when they are not available. The Sluift lua wrapper functions will throw an exception in these cases. Test-Information All unit test pass. Timlx: Test Suite ‘basic’: All tests Pass. Test Suite ‘fmuc’: All tests except FmucChain Pass (Not related with the changes) Change-Id: I3d5894b3cfdafd0ea28c0fb33b6db8588f2a5c8f
2017-05-12Allow creation of a Swift appimage on CentOSKevin Smith
This provides two mechanisms, one via Docker and one via copying and running scripts. The Dockerfile will build with 64bit CentOS 6.8 only, which isn't useful for truly ancient systems. The scripts are tested on 32bit CentOS 6.0. In both cases they provide an appimage that runs on some systems. Change-Id: I84ca453e355eb2653d3cd703d2c6c8bb60340ec0
2017-05-11Change the setting that specifies the font size.Thanos Doukoudakis
This fix changes and reset the setting that stores the font size. Test-Information Tested and verified the changes to Windows with Qt5.7 and Linux with Qt5.5 Change-Id: Ia71ba986e33e7f9421ef616c22d5b1af6e5c2b4a
2017-05-10Fix for chat not being set correctly as impromptu chatJoanna Hulboj
Test-Information: Open Swift app, from Recent Chat List click on entry that was created from offline invitees. New chat window will be opened and the chat message will be e.g. "You have joined the chat as test.". Change-Id: I54bdd019aac4274bed2a213b2679e5aeca7bd5fb
2017-05-10Fix chat window title being displayed incorrectlyJoanna Hulboj
Test-Information: Open Swift app, from Recent Chat List click on entry that was created from offline invitees. New chat window will be opened and the title will be the same as Recent Chat List entry. Change-Id: Ia8730aaabfd78e7026d15f3162d4fa46b1489397
2017-05-08Fix an issue when sending a file in a chatThanos Doukoudakis
When you drop a file in the chat input, the file path was being sent to the chat, instead of initialising a file transfer. This patch fixes this issue and starts the file transfer. Test-Information: Tested on Windows 10 with Qt5.7. Drag a file and drop in the chat input. Change-Id: Ie6c31e0ba56ac7171442370bf7d8edbefce208d6
2017-05-05Fix SendFile example heap-use-after-freeThanos Doukoudakis
This fixes the crash by moving Swift::Client to a unique_ptr. By specifying the order the objects will be destructed, we avoid accessing the Socks5ByteStreamProxiesManager instance after it has been destroyed. Also there is no need reset the outgoingFileTransfer pointer. Test Information: Use the SendFile example to send a file to a user connected with Swift. Change-Id: I0462dc60c1d4d5eb3b07516c6e609bbe70954039
2017-05-05Sluift: Enable more options to be passed to connect()Roger Planas
There are many connection options that Sluift enables (bosh_url, tls, etc..) but only host/port were understood by connect(), the rest were meant to be set by using set_options(). This can be sometimes annoying, so to make things uniform, now connect() should accept the same options settable in set_options() Test-information: Run test to check you can pass values to connect() rather than set_options() and things worked. Change-Id: Ic79aa5c6b232ddc2ffcfc3c14aa6f31233242314
2017-05-04Fix recent chat entries being incorrectly displayedJoanna Hulboj
Recent chat entries were displayed as a randomly generated numbers instead of impromptus (if invitees were offline). Title displayed in the Recent Chat List for MUC is now based on both the occupants and invitees. To do that a collection with all the invitees is being stored (new) along the occupants (existing). Test-Information: From Swift menu choose Actions, Start Chat... Add some offline contacts to the List of Participants and press Finish. Recent chat entry will have correct name (combined of contact names). Change-Id: Ie076165e8dbb493aa261cc49ca3ab1e0c1c542a8
2017-05-03Add workaround for adding sid packages to apt repo via repreproTobias Markmann
Test-Information: Tested the changes on our repository server. It removes the dbgsym packages, that debuild automatically builds since sid, from the .changes file. This way reprepro will not complain about them and add the usual packages to the repository. Change-Id: I1e4d956ecdc76bd9256cf502bd561abcd0968252
2017-05-03Change the default font size in chat viewThanos Doukoudakis
This will make the default font size in chat view to match the one in roster. This fix also decreases the font scaling step to half, and lowers the minimum font scale. Test-Information: Tested and verified the changes to Windows with Qt5.7. Change-Id: If5873049af4e82fba871e5d2687575aa88b533c9
2017-05-03Add missing changelog entriesTobias Markmann
Test-Information: None. Change-Id: I731a09ec1377af86103a4a3e2c78ec58a6d600bc
2017-05-03Add update_debian_repo.sh scriptTobias Markmann
The purpose of the script is as follows: Based on an incoming folder of Debian binary and source packages for multiple distributions and versions structured as incoming_folder/$distribution/$version, the script will create apt repositories using reprepro and fill it with packages from the incoming folder structure. If the repositories are already present, they will be updated instead of created. Test-Information: Tested it on Debian 8.7 with Swift development packages produced by our CI machine. Change-Id: Ic0270bc954ec9609c0567d2707825fbab89e7b3a
2017-05-02If silent Sparkle update impossible do not auto download updatesTobias Markmann
With this change, Swift will check at the start if it has sufficient permissions to write to the location where Swift is currently installed and also check if it can change permissions of a temporary file to the permissions of the current Swift installation. This should prevent an authentication dialog on the exit of Swift which does not leave a single clue to what application the dialog belongs to. Test-Information: Verified that the log output indicates a possible silent update for admin users and the impossibility of a silent update for non-admin users and a Swift installed to /Applications folder. All unit tests pass on macOS 10.12.4 with Qt 5.4.2. Change-Id: I5f03358ac67630565b3c624da157b1eeea14356d