summaryrefslogtreecommitdiffstats
path: root/Swift
AgeCommit message (Collapse)Author
2016-02-01Fix MUC nickname change error in ChatControllerTobias Markmann
ChatControllers used to wrongly lookup the nickname of a MUC PM contact using the bare room JID after a nickname change. With this change, the new full JID, i.e. with the new nickname as resource part, is used for nickname lookup. Test-Information: Tested with multiple PM chats open in a room. Both PM contacts changing their nicknames. Now only the corresponding chat tab changes its title. Before both used to change their title on a change of a single occupants nickname. ./scons test=system passes on OS X 10.11.3. Change-Id: I1c274498bcd96edd3370f73cb824fc81d726682c
2016-01-24Change version information in about dialog to be selectableTobias Markmann
This is to allow easy copy and paste of Swift version, Qt build version and Qt runtime version into potential bug reports. Test-Information: Tested changed UI behavior on OS X 10.11.2 with Qt 5.4.2. Change-Id: I6234f08e77402c3d1ec2f5b7a98c19b059a445ea
2016-01-22Add missing Timer related cleanup codeTobias Markmann
This commit adds explicit code to stop timers which are connected to objects that are about to be deleted from memory. Test-Information: ./scons test=system passes on OS X 10.11.3. Change-Id: I139314f3a223e3dc63b78b96be17d3ae53cd3de3
2016-01-19Reset impromptu support flag when logging offTobias Markmann
Test-Information: Added unit test verifying the expected behavior. It passes on OS X 10.11.2. Change-Id: I7531e313bf03dbea276f133db042ce26e6da4a53
2016-01-18Remove unused variable reported by GCCTobias Markmann
Test-Information: Unit tests pass on Debian 8. Change-Id: I648f97a3ebd2c798df809a1f2cb37b689df94f42
2016-01-07Add file extension to star-unchecked.png referenceTobias Markmann
This change is just for consistency and does not change the behavior. Test-Information: Checked and uncheck star still works in vCard. Change-Id: Ib6597b48cec9d3498611524c9a97fce62811ec02
2015-12-17Do not consult presence oracle for MUC PM presenceTobias Markmann
Test-Information: Added unit test verifying the behavior. Verified with multiple Swift instances in a MUC room that for MUC PMs only the same full JID presence counts. Change-Id: I08148221be34c3548f18da634586c828fd60feff
2015-12-17Show file-transfer description if providedTobias Markmann
Test-Information: Tested by transferring a file between two Swift instances. Tested in WebKit chat views and in plain chat views. Change-Id: Ie46cbd7bac8a36478f64b4557cf55926e6d4af37
2015-12-17Remove superfluous member in ChatsManagerTobias Markmann
Added missing signal disconnects in UserSearchController. Test-Information: All unit tests pass. Change-Id: I13fba64d40f7999c3d2196ad2917ff22392f72b3
2015-12-16Fix crash related to removal of contactsTobias Markmann
Test-Information: Added test@example.com contact and removed it afterwards. Without this patch Swift crashed. With the patch it does not anymore. Change-Id: I09e93340cb0a23291ab094a4cdb7c79ef719645a
2015-11-30Workaround QTabBar early eliding bug on OS XTobias Markmann
The issue is visible when having two chat windows with the same label. One of them is elided even though enough horizontal space is available. Test-Information: Tested multiple chats including some with the same tab label. Tested many open chat windows overflowing the horizontal space of the tab bar to test scroll behavior on overflow. Verified that the code stops the early eliding bug on OS X 10.10.5 with Qt 5.4.2. Verified that workaround is not needed on Debian 8.2 with Qt 5.4.2. Change-Id: I2dc0d417fb6f402dda2f7575a83ca3faf4eb63cf
2015-11-28Close 'Edit Profile'-dialog on sign outTobias Markmann
Test-Information: Tested going offline and signing out on OS X 10.10.5. Change-Id: I307c318e8b22a62473df142e94d6895490ea2e2d
2015-11-26Request redraw of recent chats on compactness changeTobias Markmann
Test-Information: Verified UI in the 'Chats' tab is directly updated after compactness change on Debian 8.2. Change-Id: I20fcf863983ff206be4cb427d4d77bd42f23e53e
2015-11-25Fix Ctrl + Tab shortcut when MUC contact list is selectedTobias Markmann
This also fixes the issue of Ctrl + Backtab moving two tabs back on Windows. Test-Information: Tested on Debian 8.2 with Gnome 3 and Qt 5.3.2, OS X 10.10.5 with Qt 5.4.2 and Windows 8 with Qt 5.4.2. Verified that Ctrl + Tab works correctly. Verified that Ctrl + Tab works correctly when the chat room contact list is selected. Verified that Ctrl + Backtab works correctly. Change-Id: I9e461d741a399aed59142505e29c03cebe26097e
2015-11-11Break out of .deb packaging on errorKevin Smith
Test-Information: Ran the script until it started building (then cancelled it). Change-Id: I803f8aae2b042dea9870491dfd46bbc5a6fd88f6
2015-11-11Update .deb platformsKevin Smith
Test-Information: Built using the script Change-Id: Id4f6dd0d36e975341b5b30298db4541fbe018b2e
2015-11-10Update .deb packaging for Qt5Kevin Smith
Test-Information: Generated (unsigned) debs on Ubuntu 15.10 Change-Id: Ibacee5d63c0662d2a9cfbc61e0d0f2c48fd93736
2015-11-10Fix certificate-less login in SwiftTobias Markmann
Commit 8405fa1 changed the client certificate handling inside Swiften to not fallback to certificate-less authentication if there is an error. This commit fixes Swift to only pass a certificate during login if a file is set and the user wants to authenticate using client certificates. Test-Information: Tested certificate-less login (worked). Tested certificate-based login (worked). Tested certificate-based login with deleted certificate file (correct error reported). Change-Id: I3b1393688c4802abfd7f66b7cb49ddd8c518e62b
2015-11-09Improve QtTextEdit::sizeHint() for symmetric vertical paddingTobias Markmann
Test-Information: Verified UI under OS X 10.10.5 and Debian 8.2. Change-Id: Ifaf063eed06f51c94d4103c5397187e62035fb90
2015-11-06Making virtual calls in constructor of ChatControllers explicitTobias Markmann
Virtual calls in ctors/dtors are tricky as it is not clear what method is going to be called. By changing the code to call the explicit method it is obvious. This issue was raised by Clang Analyzer. This commit also adds missing SWIFTEN_OVERRIDE annotations. Test-Information: Still compiles, tests pass and Clang Analyzer warning so gone. Change-Id: I8096994277ad32933f992b9a11079c761d3ec619
2015-11-06Make methods non-virtual that are not overridden by subclassTobias Markmann
These cases have been uncovered by Clang Analyzer as they were called during some constructor. However, there is no reason for them being virtual. They are never overridden in a derived class. Test-Information: Unit tests still pass on OS X 10.10.5. Change-Id: I90b5396a0dba971d9150c35f9107733f7f4637cd
2015-11-04Fix swiften handling when client certificate is missingGurmeen Bindra
This patch prevents SWIFTEN from logging in if provided with a missing PKCS12 file. Before this patch, swiften would attempt a password based login using operator JID and pwd of the P12 file when the P12 file was missing. This patch fixes it by checking the certificate and not initialising session stream and connection if the certificate is empty. It emits a disconnect with client certificate load error. The string for certificate load error has been modified to indicate a file or password invalid. Test-information: Tested by doing a certificate based bind to an XMPP server. Removed the PKCS#12 file and checked that swift gave a certificate error instead of doing pwd connect Change-Id: I1869a13f1f7135b6606f7383cd4a0356ffd6931b
2015-10-30Add support for OS X Secure Transport TLS backendTobias Markmann
Added integration tests for certificate validation and revocation behavior checking. Test-Information: Tested client login over TLS against Prosody and M-Link. Verified client certificate authentication works against M-Link. Change-Id: I6ad870f17adbf279f3bac913a3076909308a0021
2015-10-30Only highlight text if a highlight color is setTobias Markmann
This commit has the default rule set the default color and changes HighlightAction::highlightText_ symbol to HighlightAction::highlightWholeMessage_ as it is more descriptive of its use. Test-Information: Tested highlighting with the default rule set, and one with a highlight color set for the chat rule. Change-Id: Ic638e6347bdf6623ab5959341486233494f005f0
2015-10-30Ignore DND drops of JIDs for contacts already in the conversationTobias Markmann
Swift allows dropping contacts from group chats or the roster on a chat window to invite them or start an impromptu chat. With this commit Swift will ignore drops which only contain JIDs that are already part of the conversation. Test-Information: Tested the described behavior with roster and room contact drags in anonymous and non-anonymous rooms. Change-Id: I2f06082ea4bc1140210f9f1a165bdf276a130273
2015-10-30Add missing disconnect() from signal in QtChatWindowTobias Markmann
Test-Information: Ran system unit tests on OS X 10.10.5. Change-Id: Ibd1caa23e06463c9992701590cc04ca1157d6421
2015-10-30Fix code in response to unused macro and private field warningsTobias Markmann
Test-Information: Build and tests pass successfully on OS X 10.10.5. Change-Id: I614586660796f9ef043156d09d998d39934a6eca
2015-10-30Fix Doxygen issuesTobias Markmann
Ran ./scons doc=1 with Doxygen 1.8.10 and fix all mentioned errors. Test-Information: Tested building of documentation on OS X 10.10.1 with Doxygen 1.8.10. Change-Id: I136054f457f9b3ff6b269f5ac32bf435450c017c
2015-10-30Change bare JID presence lookup code to ignore prioritiesTobias Markmann
Before presence handling code was handled by both, the ContactRosterItem in Swift and the PresenceOracle in Swiften. The ContactRosterItem also considered the presence priority for deciding what presence to show for a bare JID. With this code all full or bare JID presence requests are finally handled by the PresenceOracle. For bare JIDs it is looked up to a presence of one of the available resources of that JID regardless of the priorities. Test-Information: Adjusted tests according to above description and documentation in PresenceOracle. Change-Id: I972a4574f476cdf4d4b5593a035eb1c25ef2f8ba
2015-10-27Remove debuging symbols from packaged Swift.appTobias Markmann
Test-Information: Verified that the debug symbols are gone from the Swift.app bundle in the packaged DMG image. Change-Id: Iefb2a5b8eb18587f35143ff344336acb2e69fa1a
2015-10-27Change window icon to default avatar on WindowsTobias Markmann
The task bar in Windows 10 has black as the default color. The mainly black Swift application icon is hardly visible on black background. Thus this patch changes the Window icon on Windows to the default avatar icon in Swift. Test-Information: Tested on Windows 8 and Windows 10. Change-Id: I1965cf37ba5a714094cff24ab971c0fc9f9d7fe1
2015-10-16Mark removed contacts as unavailable in SwiftTobias Markmann
When removing a contact, a XMPP client will not receive an explicit unavailable presence stanza for the contact from the server. Because of that Swift used to show removed contacts still with their old presence in the Chats tab or the chat view. With this patch, the PresenceOracle will flush all known presence of a contact as soon as the JID is removed from the roster. An unavailable presence will stored under the removed bare JID and is emitted via the PresenceOracle::onPresenceChange signal. Test-Information: Added a unit test verifying this behavior. Tested the behavior with two scenarios: a) Account A and B adding each other and accepting the subscription request. Starting a chat between A and B. After removing B in A's account, B used to be shown as available in the chat view and the Chats tab. With this patch B is shown as unavailable. b) Account A and B adding each other and accepting the subscription request. A removing B, and B removing A. After A adds B again, B used to be shown with the old presence even before B accepted the subscription request. This behavior is also fixed with this patch, not showing B as online until B accepted the subscription request. Change-Id: Iba97d3bedd0ac962ea00b25a0d2ed6106ed55a55
2015-10-16Require a node-part for JIDs entered in 'Add contact…'-dialogTobias Markmann
While it is possible to add domain only JIDs to a user's roster this is rarely the intention of a user. This patch adds the requirement of a node-part for the address entered in the dialog and presents a warning if the node-part is missing. Test-Information: Verified that a warning triangle is shown if there is no node-part in the user entered address. Change-Id: I38dd0b34ca7cb19b38bb7e1c457f7a8a9ef84028
2015-10-16Add additional unit tests for Chat <-> JID bindingTobias Markmann
The recent commit 582ca91 changed the behavior the binding between chat sessions and the full JID of a chat contact. This commit adds additional unit tests verifying the behavior of implemented in 582ca91. This means a chat session binds to the full JID of an incoming message only if the message has a non-empty body text or is a 'typing' chat state notification. It also tests the rebind to another resource if a 'typing'-CSN or a body message is received from that resource. Test-Information: All unit tests pass on OS X 10.10.5. Change-Id: Id3f25d8a3ff78c407ed4b2a97bd421dc4aa58688
2015-10-16Do not require complete Qt installation when building SwiftenTobias Markmann
Previously, if a base installation of Qt was available but not all Qt modules required by Swift are available Scons would fail configuration. If a basic Qt installation is available SCons will try to configure Swift even if you only want to build Swiften. This commit changes the hard failure in Swift configuration to a warning. This allows only Swiften to be build. In addition, the warning now lists the Qt packages required by Swift. Test-Information: Tested on Arch Linux. Change-Id: I220ea61a7e4af849912e1fb1ae66cbecf5136d29
2015-10-15Only bind full JID to ChatController on non-empty or typing messagesTobias Markmann
With this commit a ChatController is only bound to a full JID of a contact, if the incoming message of the contact has a non-empty body or is a 'typing' chat state notification. This avoids random binding to an arbitrary resource of a contact, that has multiple online resources and responds with delivery receipts. Test-Information: Tested with a conversation of a one resource account (A) to a two resource account (B). Sending two messages to B, the first used to go to both resources, then A would bind to the full JID and the second message would only go to one resource. With this fix all messages go to both resources, i.e. are send to the bare JID, until one resource of B replies. This binds the controller at A to the full JID of the reply of B. Change-Id: I8d9321a4226ab798e1196351ad087990d5dff8c3
2015-10-14Annotate getter method as const as it does not write anythingTobias Markmann
Test-Information: Still builds and unit tests pass. Change-Id: I472491184ba10ec3bdbd4cb94613768639ac6f57
2015-10-14Change Swift Windows icon to default avatar iconTobias Markmann
The default Swift icon is black with transparent background. It is hardly visible on Windows 10 as it has a black task bar by default. This commit changes the Windows icon of Swift to the default avatar icon. Test-Information: Verified icon visibility on Windows 10. Change-Id: Ic78aa6b816deb5769666c7e2337917262c75046e
2015-10-13Fix crash in user search dialog for invitation use caseTobias Markmann
Commit 9b48a73 introduced a bug because it always assumed the 'Add contact' user case. Test-Information: Retested the add contact case described in commit 9b48a73 and tested MUC invitation by DND. Neither crashes anymore. Change-Id: Ifab356e6ad9a52365ed15dd46e4e94492bdc60bf
2015-10-07Fix wording so text is independent of sender/receiver caseTobias Markmann
Test-Information: None. Change-Id: I4e0cd54c9009bc19fdc10cd1ec2697252bd6f7f7
2015-09-22Play message incoming sound on incoming file-transfersTobias Markmann
The moving of our sound playing to our message highlighting code resulted in non-message events not having sound notifications played anymore. This commit fixes this issue for incoming file-transfers, by playing the default message received sound as long as sounds are not globally disabled in Swift. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.2, by exchanging files and messages between two Swift instances. Change-Id: Ie09473efeef8366b76f6f7b59cc941fe6a0ad8f0
2015-09-22Keep scroll position in highlight rule editor when moving rulesTobias Markmann
When moving a rule up or down in the highlight rule editor on Linux, the scroll area scrolled all the way down after each move. This problem is not reproducible on OS X. With this commit the dialog remembers the scroll area position before moving a rule and sets the scroll position back to the remembered value after the move of the highlight rule. Test-Information: Verified that the scroll position is not changed when moving highlight rules up or down on Debian 8.2 and OS X 10.9.5. Change-Id: Ide7c99e1311671c77cbf72da5cad4f64bfaab11f
2015-09-22Fix 'unused' member/parameter compiler warnings reported for SwiftTobias Markmann
Test-Information: Still compiles, the menitoned warnings in Swift are gone and unit tests pass. Change-Id: I8e113e7faf2e9273b4741f18c19e35e1b7bc7661
2015-09-22Reset potential warning when opening 'Add Contact' dialogTobias Markmann
Test-Information: Tested by entering an existing JID, closing the dialog window and reopening it. Change-Id: I6c24ba319a062d19f2144c70fcc94fe77d36befe
2015-09-18Show potentially existing MUC bookmark in chat window bookmark dialogTobias Markmann
The MUC bookmark editor window opened from the chat window would always show a new bookmark. With this commit it will show the existing bookmark if it exists. Otherwise it will show a new bookmark. Test-Information: Tested this behavior by creating a bookmark, changing name and nickname to different values and verified that the bookmark dialog for this room, opened from its chat view, would show the existing bookmark. Change-Id: I6766253ce11be271016473dff1105369482e73df
2015-09-18Save 'apply to all' property in highlight rule editorTobias Markmann
The highlight editor did not save if the user set the 'apply to all' property on a rule. It allows to highlight complete messages or be notified only based on the incoming message type. This commit enables saving the property. Test-Information: Tested chat and room rules with the 'apply to all' property set and verified that the complete messages are highlighted. Change-Id: Ib06bd3111ae810c8362ab8fd36a2d3b67f5a14cc
2015-09-18Set keyboard focus to text input after selecting an emoticonTobias Markmann
After selecting an emoticon on Windows the keyboard focus does not return to the text input. OS X did not exhibit that behavior. This fix explicitly sets the focus back to the text input after selection of an emoticon, as expected by the user. Test-Information: Verified the behavior on OS X 10.9.5 and Windows 7, both with Qt 5.4.2. Change-Id: I8737a7e3f6d1a6b7a8e60261e9bd14c7be8d07a6
2015-09-16Increase template OS X installation disk image sizeTobias Markmann
Our packaging procedure temporarily needs more space on the disk image as it first copies the application bundle and frameworks on the image and afterwards removes debugging symbols and other files not required by the end user. The package.sh script reported this error of not having enough space left on the disk image. Test-Infromation: Verified that the disk image is still build, the package.sh error is gone and the packaged Swift.app works. Change-Id: Iba853bd30eb63f74f07cdda08b93e76dd89368bb
2015-09-16Remove Qt bearer plugins from Swift bundle in installation packageTobias Markmann
This is a workaround for QTBUG-34641. The Qt bearer API for detecting network changes will poll for available wireless networks every 30 seconds or so, resulting in needless CPU load. This patch removes the plugins for this API from the installation package, which will disable the constant polling for available wireless networks. Test-Information: Verified that the plugins are removed from the application bundle in the final installation DMG. Change-Id: If46d03ca5623885879ecc10e06a29cec96e7caa4
2015-09-16Only put qt.conf as resource binary for Windows buildsTobias Markmann
Commit 22ea5735ad1a105a4294b7475aba58646ef3ee8a added a qt.conf file to the compiled binary resources of Swift which is picked up by Qt and configures Qt to disable DPI awareness on Windows, as it is not supported by the Qt WebKit widgets yet. However, the Mac application bundle also ships with a qt.conf file which set the correct folders for Qt plugins. This was overridden by the compiled qt.conf resource file. This commit only compiles the qt.conf resoruce file require for Windows on the Windows platform. Test-Information: Tested on Windows 10 with 150% scaling that Swift is scaled up based on the pixel data. Tested on OS X 10.9.5 that the installation package works again. Change-Id: I74ce722cff1090e7dafc3a67e04f2a45d375a43d