Age | Commit message (Collapse) | Author |
|
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
|
|
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
|
|
This might happen with some servers and their MUC implementation
which send you not only the original message but also multiple
carbon copies of it for MUC PM conversations.
This change will ignore any message that has the same
non-empty message ID as the previously incoming message.
Test-Information:
Added unit test to verify new behaviour. Tested in a MUC where
the server would send you the original message and multiple
carbon copies of the message. Previously the chat view would
show and incoming MUC PM message 4 times. Now it’s only shown
once.
Builds and tests pass on macOS 10.12.4.
Change-Id: Ie7bd29dacc00f8f3962131a529b52a69ff09bd6c
|
|
Moved the code for day change message handling from
Swift/Controllers to Swift/QtUI. Use QDateTime in local
time time spec, which allows DST aware calculation of the
duration to the next midnight.
Added Swift Qt UI unit tests, which are build when Qt has
been successfully detected.
Test-Information:
Added unit tests for duration to next midnight calculation.
Set clock shortly before midnight and verified that a single
day change message is added to the chat log at midnight.
Tested on macOS 10.12.4 with Qt 5.4.2.
Change-Id: I34d69eaa3272981fd220a7963a0417f73ff78e68
|
|
Clang’s -Wshadow-field rightfully complained about it.
Test-Information:
Builds on macOS 10.12.3 with clang5 and Qt 5.7.1. All unit
tests passed.
Change-Id: Ib0705d518298e666c73d84150a043688a9d925ce
|
|
Initialised previously uninitialised class members. Changed
some raw pointers to std::unique_ptr for clearer and
automatically initialised code.
Test-Information:
Builds on macOS 10.12 and unit tests pass in ASAN-enabled
build.
Change-Id: I7900fe6131119c228ca92c79c0ee8125137f2e48
|
|
If the server supports message carbons, Swift will try to
enable it.
Carbon copied messages will open a chat window in the
background if no chat window exists for the conversation.
Test-Information:
Tested with a XMPP server Swift and a mobile Android client
all supporting message carbons. Tested direct messages
and MUC PM messages. All working as expected.
Added unit tests for message carbons of sent messages and
message carbons of received messages.
All unit tests pass on OS X 10.11.5
Change-Id: I8d5b5d9975651a2353909dea976f58e4bf12e014
|
|
After an initial presence change, when a client received a
MUC invite, a potential following offline presence could
replace the previous MUC invite request in the chat view.
This commit fixes the issue.
Test-Information:
Added unit test verifying the new behavior.
Verified absence of described bug in Swift GUI.
All tests pass on OS X 10.11.5.
Change-Id: I8fd9c7ad3f5f5009f48fc3d86017cd94e1998f01
|
|
Boost.Signals was deprecated and is not improved further.
This patch removes Boost.Signals from 3rdParty and adds
Boost.Signals2 and its dependencies.
Also removed the Qt signals compatibility file
Swiften/Base/boost_bsignals.h.
Test-Information:
Build and ran unit tests on OS X 10.11.4. Confirmed successful
login using Swift client.
Change-Id: Ie6e3b2d15aac2462cda95401582f5287a479fb54
|
|
This change was done by applying the following 'gsed'
replacement calls to all source files:
's/\#include <boost\/shared_ptr\.hpp>/\#include <memory>/g'
's/\#include <boost\/enable_shared_from_this\.hpp>/\#include <memory>/g'
's/\#include <boost\/smart_ptr\/make_shared\.hpp>/\#include <memory>/g'
's/\#include <boost\/make_shared\.hpp>/\#include <memory>/g'
's/\#include <boost\/weak_ptr\.hpp>/\#include <memory>/g'
's/boost::make_shared/std::make_shared/g'
's/boost::dynamic_pointer_cast/std::dynamic_pointer_cast/g'
's/boost::shared_ptr/std::shared_ptr/g'
's/boost::weak_ptr/std::weak_ptr/g'
's/boost::enable_shared_from_this/std::enable_shared_from_this/g'
The remaining issues have been fixed manually.
Test-Information:
Code builds on OS X 10.11.4 and unit tests pass.
Change-Id: Ia7ae34eab869fb9ad6387a1348426b71ae4acd5f
|
|
Removed trailing spaces and whitespace on empty lines
in the process.
Changed CheckTabs.py tool to disallow hard tabs in source
files.
Test-Information:
Manually checked 30 random files that the conversion worked
as expected.
Change-Id: I874f99d617bd3d2bb55f02d58f22f58f9b094480
|
|
This commit changes the ChatWindow/ChatView APIs to not pass
highlights actions as additional parameters but instead they
are now part of the ChatWindow::ChatMessage and its parts.
This allows the controllers to do highlighting in one single
place and play sound actions on the highlighted message in
a single place.
On a highlighted message only unique sounds are played and
they are played in sequence of the rules that matched
the message.
Test-Information:
Adjusted the existing unit tests accordingly. Added unit
tests that check reduplication of highlight action sounds
and that the sound actions are emitted correctly.
Manually verified that highlight sound actions with and
without duplicated sounds are audible on OS X 10.11.3.
Change-Id: I68c88e0d285d79d87b2997ed29d92b140480b394
|
|
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
|
|
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
|
|
Old behavior:
MUC group messages are matched against the nickname as sender.
MUC 1-to-1 messages and classic 1-to-1 messages are matched against the
display name as sender.
New behavior:
MUC group messages are matched against the nickname as sender.
MUC 1-to-1 messages are matched against the nickname as sender.
Classic 1-to-1 messages are matched against the bare JID as sender.
Test-Information:
Tested on Mac OS X 10.9.5 that a chat rule matching a nickname string
and a rule matching a full JID are highlighted correctly.
Change-Id: Icaee2c946e34fceb6b1d40561674030740555de1
|
|
Change-Id: Idb6ef5fa191b1465c0bf46c47e63b695de07fa0b
|
|
alert messages.
Test-Information:
Block a user while the JID is unbound and verify that the yellow warning bar is displayed. Send bidirectional messages to bind the JID then repeat the block request and confirm that the yellow warning bar is displayed and that the user is indeed blocked. Open several alert messages, check that each one can be individually closed via cancelAlert.
Change-Id: I120e393c028d15fd5f92154b44a8817cbc41edc9
|
|
Test-Information:
Send private message and verify that the private message item in the recents list is erased when the user leaves the MUC and the chat window is closed. Check that other recent items are not removed. Check that private message recent items are not saved and loaded when the application is restarted.
Change-Id: I62b9d324143d2e77ed98592cf37fb681165285c2
|
|
words in messages.
Change-Id: I378fa69077c29008db4ef7c2265e5212924bc2ce
|
|
Change-Id: I363e9d740bbec311454827645f4ea6df8bb60bed
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
Change-Id: Ia11dbebc736ecf9996f6d0fcc4550b749c55d433
|
|
Change-Id: I07256f23ffbb6520f5063bdfbed9111946c46746
|
|
Change-Id: I1cc138aecc6876609de4bdc4b22f1c98e3dd993f
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
Change-Id: I7c92518dc389474d520d4cf96f96a11459f73d26
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
Change-Id: Ib6bd42cecff018998117bc1e7db279a62b3af434
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
|
|
Add history dialog as an experimental feature.
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
Resolves: #244
|
|
To stop new presence being lost because it's trying to append to old (deleted) data.
Resolves: #925
|
|
Release-Notes: It is now possible for sysadmins to deploy files with policies for configuration options, such as making it impossible for users to save passwords or to force sound notifications off, or to set defaults.
Also allow changing an option so that Swift disconnects on idle timeout, instead of going away.
|
|
1-to-1 MUC).
Warn icon from already existing theme. Check icon from Wikipedia. See Swift/resources/icons/license_info.txt for details.
License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
|
|
(XEP-0234), Jingle SOCKS5 Bytestreams Transport Method (XEP-0260), Jingle In-Band Bytestreams Transport Method (XEP-0261) and SOCKS5 Bytestreams (XEP-0065).
License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
|
|
|
|
Uses Kev's not-yet-published protocol for correcting the last sent message.
Release-Notes: You can now correct your previously sent message in a chat by pressing 'up' in the input field.
License: This patch is BSD-licensed, see http://www.opensource.org/licenses/bsd-license.php
|
|
Resolves: #774
Release-Notes: Popup notifications for new messages should no longer be generated if the relevant chat is currently selected.
|
|
|
|
Now instead of having its own logic for listening to presence updates, it checks if it's the same full JID, if the controller is bound, else it looks for changes in the highest priority resource. Combined with the previous commit, hopefully:
Resolves: #718
|
|
Resolves: #630
Release-Notes: Chat window titles will be updated when contacts are renamed.
|
|
|
|
|
|
This causes the MUCController to deal with reconnects by requesting
a rejoin. It also prepares for doing time-based context requests.
Although I've traced the code down, and confirmed that
presenceSender->sendPresence(joinPresence);
is being called, the stanza is never sent. This needs further
investigation, as currently it prevents the rejoins working.
Resolves: #625
|
|
Resolves: #93
|
|
|
|
Resolves: #452
|
|
|
|
Resolves: #7
|
|
Join/Parts will be shown in one block if they're uninterrupted, and only the last presence change in a row will be shown for chats.
Resolves: #230
Resolves: #430
|
|
Resolves: #471
|
|
Resolves: #328
|
|
Resolves: #415
|