Age | Commit message (Collapse) | Author |
|
Added support for multiple accounts and a list of servers where the
user can switch between the accounts. Future patches will make the list
widget to use server avatars with user status.
Upon startup the client will reconnect with all previous accounts. If
the user log outs with any of the accounts then it will not login
automatically for future sessions, the credential though will be
available to the user. Upon upgrading from previous versions, the client
will migrate the account that was previously marked to auto-login to the
new configuration and enable it. After the migration the autologin
setting will be set to false.
Some of the settings and command line arguments have been made obsolete
due to these changes and removed, including SSO support, which will be
re-introduced in a future patch.
Test-Information:
Tested the changes in Windows and Linux, tested adding and removing
accounts, and switching between them. Tested the new configuration for
accounts, the upgrade behaviour when an account is marked/not marked to
autojoin, and the migration to the new configuration. Verified that the
auto-login setting is set to false after the migration, and that the
migrated account can be disabled (currently only by signing out).
Change-Id: I63662f80e006112fde6f418f9743e2b420e81870
|
|
Test-Information:
Without the recent fix for missing bookmark results, tests crash,
on master they pass
Change-Id: Iab2d55d6d60e5926485d31f4dd63a117a9d12aee
|
|
This patch will add a leave room option in the cog menu of a MUC room,
allowing the user to leave the room and close the window.
Additionally when joining or leaving a room the autojoin field will change
to true or false respectively. This patch also fixes a minor issue with a
gui option that was not identifying bookmarked rooms at the cog menu.
The autojoin option on the Enter room, Bookmark room and Edit Bookmark
menu has been removed, since the default behaviour will be to
automatically bookmark every MUC room the user joins, setting autojoin to
true. If the user chooses to leave the room, then the autojoin flag will
be set to false and the bookmark will be updated.
Test-Information:
Tested the changes in the UI in Windows Qt 5.9. Updated the
ChatsManagerTests unit tests to check the chattables and the behaviour
of the bookmarks, when joining and leaving MUCs.
Change-Id: Iad1f34480a1e0b9df25c73b49247acc7b7825e20
|
|
This patch will allow to resend messages that have not been successfully
delivered to the server. It requires that the server will have stream
management enabled as described in XEP-198.
Test-Information:
Tested the changes on Windows and Linux. Modified the code to force
messages to fail, and then tested the resend functionality.
Added ChatControllerTest, with unit Tests for the resend case. The rest of
unit test pass.
Change-Id: Id095528247b25a47e34c5632b8469ebd4c97149b
|
|
Test-Information:
Builds on macOS 10.13.4 with clang trunk. All unit and
integration tests pass. Produces fewer warnings with clang
trunk (previously reported marked-unused-but-used warnings).
Change-Id: I849d764537cfbc380155e87b033dc5e517b3c342
|
|
Test-Information:
Log in, go offline, go online. Before the patch this'd trigger duplicate
entries (and now it doesn't).
Change-Id: I651f8a0285e5e0748c263ab42f56aa86a3a2a3a1
|
|
Test-Information:
./scons check=1 allow_warnings=0 now passes on latest macOS
Change-Id: I4411d6b4953e6e2eb7fbb53e460fef296d24b0e6
|
|
This is hidden behind the FUTURE flag, and is not ready for release yet,
but is pretty usable. The three top filters (all/people/rooms) aren't
plumbed in yet, recents need to be reinstated, and a favourites
system would be very desirable.
The code for the existing roster/chatlist is largely unchanged and with
FUTURE disabled behaviour should not have changed. Lots of this code has
now been put inside #ifndef NOT_YET blocks, to make it easy to find
and remove later.
When making this default later, all instances of NOT_YET should be
inspected, unit tests should be added, and use of RECENT should be
inspected - those related to this patch should be removed. Not all
code is behind NOT_YET, so references to the old recents and chat lists
will need to be manually checked and removed.
Test-Information:
Existing unit tests pass. New unit tests have not been added yet, and
need to be before it's removed from FUTURE guards. Firing up Swift with
future enabled shows the new view, and disabled doesn't. In both cases
clicking around various things in the rosters opens the expected chats.
Change-Id: I0e1ce98e4c644fa5b09ef65986cc826b6b564a7b
|
|
When there is a room security marking and the colours have the value ""
they should be set to the default black and white. Instead they were
being set to "", so I have updated this and uncommented the relevant unit
test.
Test-Information:
The uncommented unit test is now passing, and all other related unit
tests still pass. A MUC room with a marking but blank colour values has
been tested on a test server and works as expected.
Change-Id: I1138ca1f035f8b7c0367c36ec3a65cc857721b8c
|
|
As stated above, and one test has been commented out as it was
not being run when it was a cppunit test and it fails due to
a bug in MUCController. The bug fix patch to follow shortly.
Test-Information:
All tests run and pass except the one mentioned above that
has been temporarily commented out.
Change-Id: Ie1ce6039c3b6c97e0072b7518b3337d5dfbf6362
|
|
Test-Information:
None
Change-Id: I548a18ff47c45eafda31584858607e5705386911
|
|
* swift-4.x: (44 commits)
Test-Information:
Builds on macOS 10.13.3 with clang trunk.
Change-Id: If50381f103b0ad18d038b920d3d43537642141cb
|
|
In ChatControllerBase::handleIncomingMessage(), there is a call to
logMessage() that should have been wrapped in
"#ifdef SWIFT_EXPERIMENTAL_HISTORY", and now it is.
Test-information
Unit tests still pass, swift still runs as expected.
Change-Id: Ia985565d496d73a5c6fed5ce79390b7b0a4b0551
|
|
This patch updates the ChatsManager unit tests to test how carbons
messages update the recent chats. This patch is cumulative to
bd4115c0db3d898d7de0944d340a9a2f1de4938c commit.
Test Information:
Updated the carbon messages related unit tests to check how they update
the recent chats.
Change-Id: I42dfcb812954257280e1c7bd4a533a0211fd59e7
|
|
If consecutive message from the same user have differing security
markings, then mark them as non continuing to show clearer seperation
of messages with different security markings. They are seperated in the
same way as consecutive messages from different users are.
Further to this, there is a new scheme for displaying message security
markings. Messages with a security marking matching the room security
marking will not be marked, aside from the first in a series of
consecutive messages marked with the same security marking. Unmarked
messages in a room with a security marking will be marked as such.
This new marking display system can be turned on and off via an xml
setting "mucMarkingElision".
Test-Information:
Unit tests written and passed in MUCControllerTest, runs as expected.
Change-Id: Id2b66417f363c49c131d27e738ce786755d65203
|
|
Test-Information:
Tests pass on macOS 10.13.3 with clang-trunk and ASAN.
Change-Id: Ice68e93341693349ed5d95dfc062c0a7b07dc673
|
|
This patch fixeses an issue that occurred when sending a message from
another device, the carbons messages were displayed on the chat window but
were not updating the recents chats list.
Test-Information:
Tested by logging in from two clients from the same account, and starting
a 1-1 chat with another user. Recent chats tab was updated to both
clients.
Change-Id: I6e961ebbde6a87e4bcbcc49941ab4bacbac4d9d9
|
|
Disco#info requested and handled by MUCController on rejoin().
UI display of disco#info implemented for QtChatWindow.
Test-Information:
Tests written for new MUCController features, and all tests passed.
Swift runs with changes and security markings show as and when
expected in local isode MUC windows.
Change-Id: Ibef4a31f6f8c4cff5f518a66106266a7f961d103
|
|
Test-Information:
Added unit tests for bookmark handling for domain-only, bare,
and full JIDs.
Builds and unit tests pass on macOS 10.13.3.
Change-Id: I2855f4e9bdce4aa971575b2bad01e6dd166042bb
|
|
After inviting people to a chat, and converting to a MUC room, some of the
chat window signals were still signaling the original chat controller,
that has been destroying, causing a crash.
Test-Information:
Tested the changes in Windows 10 (64 bit), after triggering the
dayChangeTimer, and onContinuationsBroken signal that was causing the
crash.
Change-Id: I70a80ab2653ed87a1dbea851157d95fb5918913f
|
|
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
|
|
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
|
|
Replaced SWIFTEN_OVERRIDE with C++11 standard override
keyword.
Test-Information:
Tested on macOS 10.12.5 with clang trunk.
Change-Id: If89c6cc2a648662522a320834c314496c943a55a
|
|
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
|
|
Test-Information:
Unit tests pass OK on Windows 10 and CentOS 7.3.
Change-Id: I33c9eb6b3e6409727350a44e6d5c88c5e8907275
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Test-Information:
Run Swift, open chat window, enter a message and send it. Right click on
chat view and choose Clear. Chat log in a view will be cleared but it
will stay white. On the top of the chat view will be a message: e.g.
Starting chat with test - test@test.isode.net: Offline.
Change-Id: Ie453602e2f2b14e3ecca699821521ad33937ccf6
|
|
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
|
|
Fix for swift-217
When a user sends a composing Chat State Notification a timer will start. If the user doesn't
send or cancel the message before the timer expires, an active CSN will
be sent.
Test Info:
Build on Windows and unit test pass.
Tested the new functionality with Windows and Linux Client.
Added some test cases to cover the scenario that user goes idle while a
CSN composing state has been sent.
Updated ChatStateNotifierTest to use gtest.
Updated ChatsManagerTest to use a valid TimerFactory object instead of
nullptr.
Change-Id: I35201947e4f042805a6d9df1340a0335effcd657
|
|
Opens the chat with the user JID instead of the MUC JID.
Does not affect existing behaviour on normal one2one chats.
Test-Information:
Builds on Windows and unit test pass.
Tested the behaviour on single chats from contacts list (roster), start new chat with
one and multiple users. Also tested on MUC rooms that are non-anonymous,
semi-anonymous and anonymous.
Change-Id: I2b8fbacb1fa640167ec196d4215a13ad4905d45c
|
|
Coverity raised this issue.
Test-Information:
Code builds on macOS 10.12.4 and all unit tests pass; Swift
runs fine.
Change-Id: I8fb0805f6b2e0a21674ea32c0b1aee9e7b985639
|
|
One must pass a valid AvatarManager instance to the
MUCController. Asserted the fact at the beginning of the actor.
Coverity raised this issue.
Test-Information:
All unit tests pass on macOS 10.12.4 and Swift client can
join MUC conversations without crashing or other noticeable
issues.
Change-Id: Ibc643f907a31fd1253c63c9a4cef79407d1f96ec
|
|
When receiving network data we were processing it in chunks. Sometimes
one XML message got split across multiple chunks. XMLBeautifier was
stateless and would create a new parser for every single chunk. This was
causing multi-chunk messages to be truncated in the beautified output.
The change I made in XMLBeautifier allows it to maintain the state.
Test-Information:
Tested unger Windows 10 and CentOS.
Unit tests pass OK.
Change-Id: Idad2a8e0248ed3cbe2b47a12718b909e56ac1279
|
|
Previously we simply showed our default avatar. With this
change we will use the same avatar as we use for normal
chat messages.
Test-Information:
Tested on macOS 10.12.3 with Qt 5.5.1 by exchanging files
between two Swift instances.
Change-Id: I20b953a67a290820900b5b35861c1e17f72148bd
|
|
Test-Information:
Builds on macOS 10.12.3 and unit tests pass. Roster filtering
still works and does not crash in an ASAN-enabled build.
Change-Id: I545a582b003cd0c15dff43b73b0922dcbf4055af
|
|
In the default highlight configuration, mentions of the own
nickname should only cause a notification sound and a system
notification.
Test-Information:
Tested mention notifications in a test MUC room and verified
that only sound and system notifications are issued in the
default highlight configurations.
Tested on macOS 10.12.3 with Qt 5.5.1.
Change-Id: I44a276ab740d7495930c935a89a2ef81219e24df
|
|
Test-Information:
Tested by joining a MUC room and verified that the
‘You have entered room foo as bar.’ message does not contain
any highlights.
Tested on macOS 10.12.3 with Qt 5.5.1.
Change-Id: Ib830d081e74c4289be4bb1469bf005a2e4c4e298
|
|
Previously chat-state notification messages would cause the
join/leave queue of a MUC room to be cleared, resulting in
taking up more vertical space than it had to.
Test-Information:
Compared two Swift builds (one with this patch and one without)
in a room where some occupants would send CSN messages from
time to time. With this patch, a CSN message clearly does not
cause the join/leave queue to be cleared.
Added unit test to verify new behaviour.
Tested on macOS 10.12.3 with Qt 5.7.1.
Change-Id: I0aee733fa5d16bbfb497a17b3d7a3ffe3fea8f26
|
|
Adjusted the MUCController tests accordingly, as self-mentions
in group chats have been case insensitive and are now
case sensitive.
Test-Information:
Tested on macOS 10.12.3 with Qt 5.7.1, that with a highlight
rule for the ‘Swift’ keyword, a system notification is generated
when the app is inactive.
Change-Id: I325b682c5afa81e05eec8cf3a8a15b2ff0303e5c
|
|
The new highlight logic follows a simpler model. It supports:
* highlighting of whole words in a message
* highlighting messages by sender name
* highlighting if the user’s name is mentioned
Possible actions for these highlights are text colouring,
sound playback of WAV files, and system notifications.
In addition the user can decide to receive sound and system
notification on general incoming direct and group messages.
Redesigned the highlight configuration UI dialog for this new
model.
ChatMessageParser class now deals with all parsing and marking
up the chat message with the matching HighlightActions.
Highlighter class has been extended to deal with all sound
and system notification highlights that should be emitted by
a specified chat message.
Moved some tests over to gtest in the process.
Test-Information:
Tested UI on macOS 10.12.3 with Qt 5.7.1. Manually tested
that correct system notification are emitted on mentions,
keyword highlights and general messages.
Added new unit tests to cover new highlighting behaviour.
Change-Id: I1c89e29d81022174187fb44af0d384036ec51594
|