summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-06-11Update progress bar on incoming file transfersTobias Markmann
Test-Information: Send a file from one Swift to another. Previously the progress bar did not update in the receiving client. Now it does. Change-Id: Ie710a4c1cfc389d6fcfb93de96250a80787883d3
2015-06-10Add ability to limit SChannel to TLS 1.0Kevin Smith
Some servers have very restrictive TLS stacks that respond badly to a bug in the SChannel TLS implementation, meaning that TLS has to be limited to 1.0. Add ClientOptions.tlsOptions. This is a method of passing options into the TLS stack. It's currently only used for the TLS 1.0 workaround in SChannel, but we might reasonably expose other options in the future, such as limiting cypher suites. Disables use of SSLv3 for SChannel Also updates the coding style in SchannelContext a bit. Test-Information: Compiles on both OS X and Windows(SChannel). OS X doesn't show the new option. Windows shows it, and remembers it between logins. Not tested against a server requiring 1.0 only, but a previous hack with the same approach was tested. Change-Id: I1e7854d43811fd173f21f98d4dc3915fc7a4b322
2015-06-08Add missing SWIFTEN_API annotations to public Swiften APITobias Markmann
Test-Information: Tested build on Windows 8 with VS 2014 and ran unit tests. Change-Id: I3d8096df4801be6901f22564e36eecba0e7310c4
2015-06-05UI improvements to the ad-hoc command windowTobias Markmann
Use QDialogButtonBox instead of custom button layout code. This way the button are correctly layouted depending on platform guidelines. Show a 'Ok' button if no other button is shown which closes the window. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.2. Change-Id: I37581982766d013f4d3d636880fd5ada59ee0c40
2015-06-02Fix qt4.py Scons module pkg-config support in case Qt is not presentTobias Markmann
Test-Information: Tested on Elementary OS 0.2.1 with all Qt components uninstalled. Previously it would abort configuration and build. Now it simply builds without Swift and other parts depending on Qt. Change-Id: I84c91985a0ba1fdab98e97f80621cd41e0a7507b
2015-05-31Remove magic number and fix QtVCardWidget::sizeHintTobias Markmann
This adds layout margin and spacing to the calculation of the correct size hint. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.1. Change-Id: I7036f64a6621f5ce6603e77da26a887e28c663ca
2015-05-31Open profile windows in their ideal size so everything is readableTobias Markmann
Test-Information: Tested on OS X 10.9.5 with Qt 5.4.1 and Windows 8 with Qt 5.3.2 and KUbuntu 14.04 with Qt 5.4.1. Change-Id: Ia6cf54baad3020d05be94c6159aa623f7a619816
2015-05-31Overriding QtVCardWidget::sizeHint() so ideally there is no scrollingTobias Markmann
Test-Information: Tested on OS X 10.9.5 with Qt 5.4.1. Change-Id: I27ba80b9799fd8177a291ec0b8eeb0c2168e2f04
2015-05-31Layout improvements to QtVCardPhotoAndNameFieldsTobias Markmann
Layout label and editing widgets below each other instead of next to each other. This way there will not be any horizontal spacing if one of them is hidden. This also removes empty name parts in the shown fullname. Test-Information: Tested on Mac OS X 10.9.5 and Qt 5.4.1. Change-Id: I20561a8e7f8b9305cd3314b1250a2d006abbccb5
2015-05-31Overriding QtElidingLabel::sizeHint() so preferably all text is shownTobias Markmann
Test-Information: Tested on OS X 10.9.5 with Qt 5.4.1. Change-Id: I8cad307d967be32a9d67dc8408e4a27f487f6032
2015-05-26Have cl.exe write debug info to independent files for reliable parallel buildsTobias Markmann
By default cl.exe writes debug info to a static file name resulting in all cl.exe trying to write to the same file when using parallel builds. This leads to race conditions and can have parallel builds fail. This only takes effect if parallel builds are made by scons. Test-Information: Tested with VS 2013. Change-Id: I8ea7e9370f5b149ded608e4c6f5e66a3fc6301c4
2015-05-26Fix trellis related bugsTobias Markmann
Bugs like: * Tab title not matching shown chat window * Duplicated tab titles after tab movement Swift is also subject to QTBUG-36455, which is fixed for Qt >= 5.3.0. This commit removes the use of application wide focus handlers in QtChatWindow class, the QtChatWindow::qAppFocusChanged method. The reason for this is due to the way QTabBar::moveTab is implemented in Qt which we use for the Trellis feature. Internally QTabBar::moveTab first adjusts its tab bar labels, then removes the tab from its old location in the internal QStackedLayout and then inserts it in the new location. After the remove Qt gives focus to another widget via a focus change that does not go through the event loop of the application and is not interceptable with eventFilters. Previously we would set the focus and call other signals in the application wide focus change handler which then used the currently inconsistent QTabBar/QTabWidget. Test-Information: Tested tab switching and movement on Windows 8 (Qt 5.3.2), OS X 10.9.5 (Qt 5.4.3) and Ubuntu 14.04.2 LTS (Qt 5.4.3). Change-Id: Ief423c4add58a90279109f72fac95fc58cb71111
2015-05-26Fix crash when sending a file to yourselfTobias Markmann
Use scoped_connection to prevent missing disconnection from signals. Stop and free S5BServer when stopping SOCKS5BytestreamServerManager. Test-Information: Tried sending a file to myself multiple times and it did not crash. Change-Id: If32075d8e9c243cab254776b924248227520e030
2015-05-26Set QtGetridSelectionDialog to frameless window to enable cursor changesTobias Markmann
Popup windows cannot change the mouse cursor on OS X. A frameless window looks the same. Test-Information: Tested on OS X 10.9.5 with Qt 5.4. Change-Id: Ia97e645be2ad1e5063f0cd8ef54344b63274b2d1
2015-05-26Add visual resize indicator in bottom right corner of QtGridSelectionDialogTobias Markmann
Test-Information: Tested on Mac OS X 10.9.5 with Qt 5.4. Change-Id: I7581ae478fb347bb468b28997be963799b82b2cb
2015-05-26Fix SCons architecture detection on FreeBSD 10Tobias Markmann
Test-Information: Tested on FreeBSD 10.0. Change-Id: Ic1c8a1637f0fbc9128973b41d6988a8afd61e387
2015-05-26Fix compilation on FreeBSD 10Tobias Markmann
Configuration for LibMiniUPNPc did not detect size of ip_mreqn correctly. Test-Information: Tested on FreeBSD 10. Change-Id: I5d91695b6ec2f1ad91e4fe6bf0e73876fef4fa8b
2015-05-20Usability improvements to "Enter Room" dialogTobias Markmann
Require valid room JID to proceed with entering a room. Provide user feedback via tooltips on invalid input in the room and nickname field. Test-Information: Tested with invalid room JID and empty nickanme on OS X 10.9.5 and Qt 5.4.0. Change-Id: I8d8c75f5712f27cc72cce2d6dd16dbbea4fb504a
2015-05-20Limit Qt placeholder text workaround to affected versionsTobias Markmann
The workaround was fixed with QTBUG-33237 and is not needed anymore. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.0. Change-Id: Ie6a101749c816a082f31ac83085e098b3aa328aa
2015-05-19Consolidate Python and SCons files to tab based indentationTobias Markmann
Test-Information: Verified that SCons still runs on OS X. Change-Id: I7e9b97f90ee5581a691a959b6f2c999d93e0be53
2015-05-19Enforce tab-only indentation in Python and SCons filesTobias Markmann
This also converts CheckTabs.py script to tab indentation. Test-Information: Ran the script over all files in our repo and it detected space and mixed indented Python files. Change-Id: Ifed86d64c8e87ed55e85ef4d35157e312b937291
2015-05-19Gracefully handle pkg-config when Qt is not installedTobias Markmann
Test-Information: Tested on Elementary OS 0.2.0. Without this patch scons crashed if not all required Qt libs are installed. Now it marks Qt as unavailable and will configure a build without Swift. Change-Id: I5aa28ab8438e4c326d16413deb3a3fa739c94480
2015-05-07Add support for Qt 5.4.1 to build and distribution process on WindowsTobias Markmann
Test-Information: Tested with Qt 5.3.2 and Qt 5.4.1 from qt.io website. Change-Id: Iada3e64e530d8a5b53b8b5c8943bcafbd9bd6c64
2015-05-05Fix scons2ninja.py for WindowsTobias Markmann
shlex.split has a 3rd parameter specifying whether or not to run in POSIX mode, which defaults to True. This breaks splitting of Windows paths so it is set to False on Windows. Test-Information: Tested on OS X 10.9.5 and Windows 8. Change-Id: Icdc9fc07e89a80249526daa8f13dba081f957670
2015-05-04Hide 3rdParty warnings for LibIDN and LibMiniUPnPc with Clang/GCCTobias Markmann
Test-Information: Tested behavior on Elementary OS 0.2.1. Change-Id: I5f4c77202e000f691682caf06df7c1f7976299c4
2015-05-04Correctly handle full paths when detecting Clang/GCC compilersTobias Markmann
Test-Information: Tested behavior on Elementary OS 0.2.1. Change-Id: I887b85b78bfe5210844e0ea31f496fdbc8c21fa0
2015-05-04Ignore 3rdParty warnings on Linux platforms when using Clang or GCCTobias Markmann
Test-Information: Tested behavior on Elementary OS 0.2.1. Change-Id: Icc0611181fbf7dbe22d6c0c8cb18be9c1cdbc138
2015-05-01Fix typoTobias Markmann
Change-Id: Ieeb9636b40bfd43b9b79dede71eefc288e6014d2
2015-05-01Add an EventOwner to NATTraversalRequests so that accociated objects are not ↵Tobias Markmann
released early This patch also disconnects possible slots on stop() from the signals. Test-Infromation: This fixes a crash that occured during testing with ConcurrentFileTransferTest. Change-Id: I2b443f40ac3359c8142fcffc084647312b9a1e76
2015-05-01Fix hash verification in Jingle FT to only verify one hash algorithmTobias Markmann
This also adds missing resets pointers to NULL after they are deleted. Test-Information: FileTransferTest crashed in some scenarios before; now it always runs successful. Change-Id: Ic63fd51eeb46e708221a04dc912e8bf2f1d4f9fb
2015-05-01Only close unneedded S5B connections on the S5B server if a S5B server is ↵Tobias Markmann
running Add a check on whether we have a running SOCKS5 bytestream server before trying to access it to close unneeded S5B connections to it after we decided on a candidate to use. Test-Information: Without this FileTransferTest crashes in the configuration that does not allow direct or assisted S5B connections. This patch fixes this issue. Change-Id: Ifcf59f82755b9620e7f5fa5841e45815a41ac442
2015-05-01Add resource management for S5B server and port forwardingsTobias Markmann
This patchs adds management of the SOCKS5 bytestream server and port forwarding setup to Swiften. The first file-transfer, regardless of incoming or outgoing transfer, will start and initialize the S5B server and if configured try to set up port forwarding. The last file-transfer to finish will will close the server and remove the port forwarding. Test-Information: Tested with upcoming ConcurrentFileTransferTest.cpp and running multiple S5B file-transfers in parallel. Change-Id: Idd09d3d0ef9498fc9435b0aee81f2b1061783342
2015-04-30Disable potentially-evaluated-expression Clang warningTobias Markmann
Test-Information: Verified with Clang 3.7.0 on OS X. Change-Id: I345ef288163214288d41c3980c8e67529db0657d
2015-04-30Honour global sluift timeout setting in add/remove contactEdwin Mons
The add_contact and remove_contact calls used a fixed timeout of -1, which could cause the operation to hang forever, even when a timeout was set. Test-Information: add_contact and remove_contact properly honour global timeout on a broken connection. Change-Id: I6bd877a8123ddab87b1f653c0cfda7a6b101dae7
2015-04-29Ignore compiler warnings from 3rdParty librariesTobias Markmann
When compiling with Clang or GCC, include 3rdParty libraries as system headers and frameworks (-isystem and -f). Test-Information: Tested with Clang on OS X. Change-Id: I184221ddc4b34d30ee6ba66e202953619b5afd56
2015-04-28Allow editing bookmarks of MUC chats in the "Recent Chats"Tobias Markmann
Test-Information: Tested with online and offline account. Tested with not bookmarked and already bookmarked chats. Works as expected. Change-Id: Ib8851a70a7a82a198ee5b7a207816f03ad9df61e
2015-04-28Add Qt flags detection using pkg-config on Linux platformsTobias Markmann
Fix qt4.py SCons module to use the specific tools of the correct Qt verison. On non-Windows and non-Darwin platforms SCons will try to detect the correct Qt compiler and linker flags from pkg-config. Added the ability to build Slimber with Qt5. Fixed Qt5 support on Linux when using prebuilt Qt distribution from Qt. This patch adds support for building Swift on Arch Linux, with Qt4 and Qt5. Test-Information: Tested under Mac OS X 10.9.5 and Manjaor Linux (Arch Linux) in Qt4 and Qt5 configuration, and tested Qt5 Linux binary from their website on Arch Linux with the qt variable set in config.py. Change-Id: I2e19ab4aa7a26fdd989e2a12faa51a0f3f89c3ce
2015-04-13Improve python flexibility for SCons build systemTobias Markmann
This adds support for running ./scons out of the box on Arch Linux. Test-Information: Tested on OS X 10.9.5 and Manjaro Linux (Arch-based). Change-Id: I53c4d537571a40352797c9176582b6fd93a75227
2015-04-10Fix keyboard shortcuts for --no-tabs modeTobias Markmann
This commit enables the following shortcuts for --no-tabs mode: - CTRL + Tab or CTRL/CMD + PageDown to switch to the next chat window - CTRL + Shift + Tab or CTRL/CMD + PageUp to switch to the previous chat window - CTRL/CMD + W to close the current chat window - ALT + A to switch to the next chat window with active messages Test-Information: Verified that the new shortcuts work as expected and verified that standard mode and netbook mode still work as usual. Change-Id: I3831b6c02f5d664cc8b21d7571e20aed00de89b4
2015-04-10Change trellis tab movement shortcutsTobias Markmann
The previous shortcuts conflicted with the shortcuts for moving to the begin and end of a line in text input widgets. New Shortcuts: Move tab left Ctrl+Shift+Page Up Move tab right Ctrl+Shift+Page Down Move tab to previous group Ctrl+Alt+Page Up Move tab to next group Ctrl+Alt+Page Down Test-Information: Tested and it works on Mac OS X 10.9.5 with Qt 5.4.1. Change-Id: Ie8b6fb05d56013d499e46838b15840554bbe6f72
2015-04-10Introduce FeatureOracle class for contact feature support detectionTobias Markmann
This modifies the feature detection in the ChatController to try to use the common features of all available resources feature detection if no full JID has been bound to the chat yet. Test-Information: Tested with two Swift instances. Tested a) the initial chat start case and, b) the offline/online. In case a) Swift used to initally show a yellow warning about no support for message receipts. This warning is gone now. In case b), after a user gone offline and online again in a running chat, Swift used to show a warning about missing support for message receipts. This warning is gone now. Change-Id: I7a769fde8d14847b180503aeaa58280c572d81b3
2015-04-09Disable documentation-unknown-command warnings in clangTobias Markmann
Test-Information: Tested on OS X 10.9.5 with Clang 3.7.0. Change-Id: Ic3a5ec77ca488c1688da35f75dd7424f8f59784b
2015-04-08Add optional logging to native log framework on AndroidTobias Markmann
To enable native Android logging you need to pass "-DSWIFT_ANDROID_LOGGING" to the "cxxflags" and "-llog" to the "linkflags". Test-Information: Tested on OS X 10.9.5, with NDK API level 14 on an emulated Android 4.0 ARM instance. Tested that if enabled, Swift log messages appear in the Android system log via "adb logcat" instead of appearing on stdout. Change-Id: If89c870f0b664a5e65ccc1fa8a244826d2875ec1
2015-04-08Skip name lookup if manual hostname is a valid IP addressTobias Markmann
Removed dead debugging code and unnecessary includes as well. Test-Information: Tested with Swiften/QA/ClientTest, adjusted to have a manual hostname set in the ClientOptions. Tested on OS X 10.9.5, with NDK API level 14 on an emulated Android 4.0 ARM instance. Without this patch the connector timed out during name lookup trying to resolve the IP set in the ClientOptions::manualHostname. With this patch it skips lookup and connects successfully. Tested and verified unchanged behavior with this patch and without the manual address override set. Change-Id: I737327b2e66c9da78a1963e754bcf201b7d40626
2015-04-08Fix warning about unused private member variableKevin Smith
Test-Information: Compiles without the warning, unit tests pass. Change-Id: I31bce47e4d6595b4ef405a87b56cf71db004e6a0
2015-04-05Improve UX regarding room bookmark handlingTobias Markmann
Label the window for adding bookmarks as "Add Bookmark Details". Allow modification of bookmarks from the cog menu in the chat window and adjust the context menu item accordingly. Test-Information: Tested the bookmarks section of the "Chats" tab in the contact list and the UX scenario using the cog menu that it works as expected. Tested it on OS X 10.9.5 with Qt 5.4.1. Change-Id: I80daf339fc86506db3d863decae4bcd892e3ea88
2015-04-04Fix popup visibility issues in QtSuggestingJIDInputTobias Markmann
When hiding the popup after selection of an item via mouse, the focus was given to a widget other then the QtSuggestingJIDInput or its parent dialog. This patch explicitly sets the focus back to the QtSuggestingJIDInput. Hide the potentially open popup when the QtSuggestingJIDInput is hidden. This can happen when the user closes a dialog with a QtSuggestingJIDInput inside of it. Test-Information: Verified described behavior on OS X 10.9.5 and Windows 8. Change-Id: Ic6629e6e626be18a70de159df62cda79dd82ee09
2015-04-04Improve FixIncludes.py script to support in-place modificationTobias Markmann
In-place modification can be enabled by passing -i as second parameter. Added detection of other preprocessor directives not supported by this tool. It will report a warning in this case. Test-Information: Ran the tool over all .h/.cpp files in Swiften. Still build on OS X with clang. Change-Id: Ic6e15142379ab9fc8a2bc5a6f9c1c2a906dec692
2015-04-03Fix vertical alignment of close button in QtClosableLineEditTobias Markmann
Test-Information: Tested vertical alignment of close button on OS X, Windows 7 and Elementary OS. Change-Id: Ia07a8476912674c94d851315f80630710e5f4217
2015-04-03Use SizeAllCursor for trellis resize dialogTobias Markmann
This is should be a union of the two diagonal resize cursors on most systems and is provided by Qt. Test-Information: Tested on Windows 7 and OS X 10.9.5. On OS X the cursor does not look like the union of the two diagonal resize cursors with Qt 5.4.1. Change-Id: I442f7e25b9bf0a3e6868cbcc9bd0a48d24da718d