summaryrefslogtreecommitdiffstats
path: root/Swift
AgeCommit message (Collapse)Author
2017-11-27Make the Windows installer remove older versions of Swift componentsThanos Doukoudakis
This patch will make the installer remove each file component, before deploying the new version of the file. This is to avoid potentials issues with the installer, when trying to deploy a new version of a file that happens to have the same version information as the original file. The default behaviour of the MSI installer in a case like this is to skip the deployment of the new file. This issue occurs when Visual Studio gets upgraded, and we need to redeploy 3rd party components of the same version but build with the new version of the compiler. Test-information: Generated an installer and tested fresh install and upgrade from Swift 3.0. Tested with Windows 10 and Windows 7, normal and quiet installations. Verified that the Qt DLLs deployed have the correct VS redist dependencies. Change-Id: I6f68126ee63968aad066901704a409b6ebada14f
2017-11-22Fix Emoji crash on insertionJoanna Hulboj
Swift would crash randomly when user clicked to insert an Emoji. It was happening because we would delete the emojisGrid_ while it was still in use (was closing). Test-Information: Tested on Windows 10 and Ubuntu 16.04. Tested by inserting an Emoji from the Emoji selector. This action does not result in crash any more. Change-Id: I6c0b84ea8969c7f7a4c3bfa700e345cdf63325e6
2017-11-10Update German translationTobias Markmann
Test-Information: Verified translation using `--language de` command line flag. Change-Id: I150ad5be2d79f7aa728a4c04dd3b284f8b2fb220
2017-11-09Fix loading translations when detected automaticallyTobias Markmann
Test-Information: Tested with Dutch and German user accounts on Mac OS X 10.10. Change-Id: I9c6d5fdac19abcf4db98034dbd6620732f0caba1
2017-11-08Update Dutch translationEdwin Mons
Updated for 4.0-rc2. All vanished sources have been removed from the translation as well. The license has been updated to BSD. Test-Information: Looks good on macOS 10.12, reporting shows no missing texts. Change-Id: Id87f7e97332536c367fea6ed231863fed8e22e46
2017-11-07Add missing Qt translatable strings to QtStrings.hTobias Markmann
Strings in the context menu of the chat input and the dialog buttons in the highlight editor are now translatable. Test-Information: Tested on macOS 10.13.1 with Qt 5.4.2. Tested with a newer upcoming German translation file. Change-Id: Ie2c5ec1d9615bfe5ac69dad7df3c96a6f1600225
2017-11-07Enable translatability of QtSoundSelectionStyledItemDelegateTobias Markmann
This adds a missing Q_OBJECT macro. Test-Information: Build and tested on macOS 10.13.1 with Qt 5.4.2 that with `--language de` passed to Swift the German translations are shown in the highlighting editor. Change-Id: Ibe9975786f5a228fb14b61c01ce71db06354762b
2017-09-24Fix 'Start chat...' dialog disappearing after adding participantTobias Markmann
Qt deprecated Q_WS_* defines to detect the windowing system at compile time. Changed the code to use Q_OS_MAC to enable the workaround for macOS. Test-Information: Tested with Qt 5.4.2 and Qt 5.8.0 on macOS 10.12.6. Change-Id: I49953f084ad6003c08b02550741dc16ef5df21fe
2017-08-16Fix inverted logging assert conditionThanos Doukoudakis
This patch will fix a bug where SWIFT_LOG_ASSERT was logging the wrong information. Test-Information: Tested the logging assertion on Windows 10 (Qt 5.7) during the client exit. Change-Id: I7bffbe52a0b28c7577b1bad165313ea64a3f8e46
2017-08-15Force a build to stop if signing of the packages fails.Thanos Doukoudakis
This patch will make the build attempt to sign the package 3 times. If none of the attempts are successful, the build will stop and flag the error. Test-Information: Tested packaging on Windows 10 (Qt 5.7), when the package signing succeeds (signed installer package), fails (build stops) or not required (unsigned installer package). Change-Id: Idf1f708dda50e67e54866ca598cc5160e4ea76eb
2017-08-15Improve Swift’s interactions with Smart CardsThanos Doukoudakis
This patch improves logging and refactors SchannelContext and CAPICertificate classes, to improve logging and how Swift interacts with smart cards. Test-Information: Tested on Windows 10 (Qt 5.7) Change-Id: Ic4d306beafb9e5d253731769f222e6949995d5e7
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-13Remove Swiften/Base/Override.hTobias Markmann
Replaced SWIFTEN_OVERRIDE with C++11 standard override keyword. Test-Information: Tested on macOS 10.12.5 with clang trunk. Change-Id: If89c6cc2a648662522a320834c314496c943a55a
2017-07-11Add missing SWIFTEN_OVERRIDE statements to dtorsTobias Markmann
Also removes -Winconsistent-missing-destructor-override from the list of ignored clang warnings. Test-Information: Tested on macOS 10.12.5 with clang trunk. Change-Id: Iad951879e01eb951a2a393399f55e4e37437c6a2
2017-07-07Make std:: make_unique available in gcc with c++11Joanna Hulboj
Test-Information: Unit tests pass OK on Windows 10 and CentOS 7.3. Change-Id: I33c9eb6b3e6409727350a44e6d5c88c5e8907275
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-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-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-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-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-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-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-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-04-21Bring Swift and Swiften ChangeLog.md files up to dateTobias Markmann
Test-Information: None. Change-Id: I5efd775af454af50c9ae46a1b2208c7ebdea2824
2017-04-20Add missing include for QFileDeviceTobias Markmann
Test-Information: Builds on macOS 10.12.4 with Qt 5.4.2. Change-Id: Id9715062e25c1d541020408a517e0974ce92c886
2017-04-20Verify message IDs during last message correctionTobias Markmann
Previously we did not check the ID in the replace tag against the ID of the last message from that JID because some MUC components change the message ID. In case the ID of the last message and the ID in the replace tag do not match, the message is simply treated as a normal message. Test-Information: Added unit tests to verify the new behavior and adjusted existing test cases for new behavior. Added test cases to ChatsManagerTest.cpp that test verification of replacement IDs for 1-to-1 chats and test non-verification of replacement IDs for MUC. All tests pass on OS X 10.11.6. Change-Id: I85b1d2138b056b445a663f3ee3ab89a56cef4a2a
2017-04-18Support Last Message Correction in multi client scenariosTobias Markmann
Previously Last Message Correction edits are only applied if they came from the same resource. This makes sense in MUC scenarios but does not in 1-to-1 chats. This changes the Last Message Correction behaviour for MUC and 1-to-1 chats so that different clients from the same bare JID can edit each others messages. Test-Information: Added unit test to verify Last Message Corrections work as expected when coming from the same client and from different clients. Manually verified that the receiving client correctly shows a corrected message if the sending client reconnected between first message and edit. All unit tests pass on OS X 10.11.6 with Qt 5.5.1. Change-Id: If533ecc7032e59e324979c577726f2da739012e6
2017-04-18Fix for grey gap in the blue/green CSS blobs in chatsThanos Doukoudakis
The grey gap was being created due to the relative sizes of the css elements myavatar, myright, otheravatar, otherright. Depending on the font size, and due to round ups, the elements ended with a gap between them, resolving to the grey line. The fix moves one of the elements slighly and works with newer versions of Qt. Test-Information: Tested with with windows (qt5.4.2), Windows (qt5.7), Linux (qt5.5) Change-Id: Ib4fb7fc8a5ef8bed1868a0d65707ca034309cf04
2017-04-18Don't pass the impromptu MUC 'reason' as the room JIDThanos Doukoudakis
Changing the constructor of the CreateImpromptuMUCUIEvent class not to accept default values to its parameters. This approach is less prone to mistakes, like forgetting an argument. This commit fixes SWIFT-271 bug, where only two arguments were being passed in the constructor. As a result the reason string was used to create a room JID, making the room unusable. By passing an empty string, the room JID created is not valid, and when ChatsManager handles the event, it will generate a new valid room JID. Test information: Unit test pass. Tested the creation of new impromptu chat with with windows 10 (qt5.7). Change-Id: I4ce9ee7db14b9125970a03f19d1ac0c32e1b5a0e
2017-04-12Assert first page in QtUserSearchWindow wizard based on typeTobias Markmann
Converted enum to C++11 enum class in process. Coverity raised this issue. Test-Information: All unit tests pass. Using the “Add Contact…” and “Start Chat…” dialogs did not crash. Tested on macOS 10.12.4 with Qt 5.4.2. Change-Id: I0409688b001d1eaaf5fa77a25b1158ce9e611c77
2017-04-10Only add existing environment variables to QtUI test envTobias Markmann
Furthermore extended the list of potential environment variables based on what the qt4.py tool creates. Fix for commit ed2226782ac15345aeb8e615b41d30e5aab67b51. Test-Information: Tested on Windows 8 with VS2013 with Qt 5.4.2 and on macOS 10.12.4 with Qt 5.5.1. Change-Id: Ib52084ca0e1505fe943c33fa74f479e360d834fe