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
|
|
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
|
|
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
|
|
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
|
|
Added a font-weight property on the body style to enhance the default
font weight (400) only on Windows, in order to improve the look of the chat
view.
If the font-weight is being defined in any other styles rules with higher
priority, this default value will be overwritten.
Test-Information:
Tested with with windows 10 (qt5.4.2), Windows 10 (qt5.7), Ubuntu 16.04.2 (qt5.5)
Change-Id: Iafd969cff487a907d136b9d2d8b393a90681216f
|
|
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
|
|
Test-Information:
Build on macOS 10.12.4 and verified the change in the UI.
Change-Id: I8ec472158682e951fe358197c0939f451ade8c54
|
|
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:
Swift and unit tests still build on macOS 10.12.4.
Drag and drop of tabs still work.
Change-Id: I64bdb973da73a4f2b5ed514583c4f8740adc77b4
|
|
If the dialog is not of type AddContact, firstMultiJIDPage_
is initialised and this states more clearly that the reset
is only done when the dialog is in this mode.
Coverity raised this issue.
Test-Information:
Added a user from search and started a chat from user search.
All unit tests pass on macOS 10.12.4.
Change-Id: I55f6df5b4f48e2c6718922846a424bf17f363b16
|
|
Coverity raised this issue.
Test-Information:
Code builds on macOS 10.12.4 and all unit tests pass; Swift
runs fine.
Change-Id: I8fb0805f6b2e0a21674ea32c0b1aee9e7b985639
|
|
Coverity raised this issue.
Test-Information:
Builds and unit tests pass on macOS 10.12.4. Switching
different application languages via --language parameter
still works and passing numbers as languages has it correctly
fallback to the default system language.
Change-Id: Ide1ffdba7a13c27856304aa96b78067147568a95
|
|
Adding searched JIDs to the list of JIDs only makes sense
for cases where there is a multi JID page in the first place.
Coverity raised this issue.
Test-Information:
All unit tests pass on macOS 10.12.4 and the “Add Contact”
and “Start Chat” dialogs using a user search still work.
Change-Id: Icde63f13a2f83690b3189a9c91237eadd6b5218b
|
|
Coverity raised this issue.
Test-Information:
All unit tests passed on macOS 10.12.4.
Change-Id: Id65cdc5e0175ba7773d32b6dddbc9b4af6789019
|
|
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
|
|
In addition, fix display of Swift icon in about dialog.
Test-Information:
Build on macOS 10.12.3 with Qt 5.4.2 and verified that the
icon is display in the about dialog and clicking the link
opens the Swift website in the default browser.
Change-Id: If13e03bfa976354aeba1de9be4bcb1edabaa5403
|
|
Test-Information:
Tested under CentOS.
Run script to generate a package under Linux, swift-im.1 and swiften-config.1 are generated.
Change-Id: Idf0b159a94e05349b196f019bbc91127095a1d16
|
|
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
|
|
A chat font size value of 2 represents the native default
font size on the system, which should be the default font
size for the chat view on first install. We allow this to be
reduced to 0 and increased without a limit.
Furthermore the settings key was changed so that Swift 3 users
will automatically use the default size when they first open
a newer Swift.
Test-Information:
Tested on Ubuntu 16.04.02 after clearing the local Swift
config.
Change-Id: I3426001eb302e22134c40bc4a479f15684ca2001
|
|
Swift installed from our Windows installer packages would
not display the default avatar, due to missing Qt5Svg module.
Test-Information:
Build Windows installer package on Windows 8, with VS 2013 and
Qt 5.4.2. Qt5Svg.dll is installed and default avatars are
displayed in the roster.
Change-Id: Iaa0fb0b013fc32d9d84897e83902ae7487fe72d7
|
|
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
|
|
The new unicode-based emoji dialog currently only provides
a good experience on macOS.
This commit enables the unicode-based emoji dialog on macOS
and uses the text-based emoticons on Linux and Windows.
Test-Information:
Tested on macOS 10.12.3 with Qt 5.5.1 and Windows 8 with Qt
5.5.1.
Change-Id: Ibee20eacafa5788bcdf5a46e1ceac713a28a0383
|
|
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
|
|
The dialog would crash if the user has not selected an emoji
ever before through the dialog.
Test-Information:
Cleared recent list and opened the dialog. Without this patch
it would crash, since there are no items in the emojiLayout.
Now it does not crash anymore, on macOS 10.12.3 with Qt 5.5.1.
Change-Id: Ie736b5af7fe8b2b2c14fcac94b7e4f3bc13f4b84
|
|
Furthermore the dialog will alphabetically sort the list
of blocked JIDs before showing it in the dialog.
Test-Information:
Tested on macOS 10.12.3 with Qt 5.7.1 that it sorts the
list it receives from the server before presenting it in the
UI. Successfully pasted a newline spereated list of JIDs in
the dialog.
Change-Id: I8fe6969821bccad0193180cee9433da43285aaef
|
|
Test-Information:
Tested under Linux i3 tiling windows manager.
Run Swift, from the menu choose Actions, Enter Room... Enter Room...
dialog is displayed as a floating window in a tiling manager.
Change-Id: I31dc4f8caa04fe137e89f2bcb12852cd0b709bab
|
|
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
|
|
Test-Information:
Tested on macOS 10.12.3 with Qt 5.7.1 that the custom
sound menu item was gone.
Change-Id: I75186d1a3b74db751fbdd5aaf54402f23f74661b
|
|
Test-Information:
From Swift open any chat window, type something, right click on chat
view and increase font size 3 times, then right click on chat view and
choose Clear. Chat log in a view will be cleared, again type something
the form size stays the same as before clearing the log view.
Change-Id: I8c057dbd4ed52e5d1efce7064d79b9f7244b3d32
|
|
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
|
|
If scons detects a Sparkle release in the 3rdParty folder,
it will add the containing LICENSE file at the end of the
dynamically generated COPYING file.
Test-Information:
Tested that the contents of Sparkle’s LICENSE file are at
the end of the text in the license window of the about dialog,
if the Sparkle folder, with a Sparkle release inside, is
present in 3rdParty.
Tested that Swift builds fine, if the Sparkle folder is
missing in 3rdParty.
Change-Id: I89db155b5bb3eef4d632997fd99ff270b4720a16
|
|
This also changes the minimal height of the emoji dialog
to hold about 8 emoji rows.
Test-Information:
Tested on macOS 10.12.3 with Qt 5.7.1 that the categories
are sorted in a more sensible manner and that the dialog
at least shows about 8 emoji rows.
Change-Id: I8c5518f8d552a581d5073b5f155425580f72938a
|
|
FlowLayout is an official BSD-licensed Qt example showing
how to implement custom layouts. It will layout items
dynamically in rows.
This way we don’t need static column/row calculations for
QGridLayout and it looks better.
Test-Information:
Build and ran on macOS 10.12.3 with Qt 5.7 to test that it has
a better, less spacious look.
Change-Id: Ief1299b0d3fb1e516a1973469f4f9a26824942f2
|
|
Test-Information:
Run Swift and join any MUC room, on join there is no information
displayed regarding room subject.
Choose "Change subject", the following information is displayed
in the chat window: "The room subject
has been removed" after the subject was removed, or "The room subject is
now: some subject" after the room subject was set to "some subject".
Run Swift join any MUC room, disconnect from server (using another Swift
client change subject to "Test") after reconnecting the following
information is displayed in chat window: "The room subject is
now: Test"
Change-Id: Ice901697a6a381464d694147b17830b4e62c8198
|
|
Test-Information:
Previously Swift crashed on QtAboutWidget.cpp:175 when build
without any auto update support. Now it does not anymore.
Tested on macOS 10.12.3 with Qt 5.5.1.
Change-Id: Ia58ec3679d107cfd6b736e54e90a4167cf1adc47
|
|
Test-Information:
Tested using Psi and Swift.
Log in to Psi and Swift as UserOne. Enter Room (e.g. testRoom) using Swift and join the same room from Psi using drop down menu Join Groupchat.
Splitting: change nick from UserOne to UserTwo. Swift correctly
displays: UserOne, UserTwo.
Merging: change nick back from UserTwo to UsetOne. Swift correctly
displays: UserOne.
Change-Id: I291eddd5aed154fb0babe1b0ada0a15a317eacdb
|
|
Previously any entity capability lookup was only cached
on the disk. This meant that even for a cache hit, you would
read from disk and parse the disco info XML in the cache,
to return the result.
This commit adds an addition LRUCache based in-memory cache.
This extends the EntityCapsProvider API with a non-const
method, i.e. getCapsCached, which allows active caching
of results from the disk cache.
Test-Information:
All unit tests pass on macOS 10.12.3.
This noticeably speeds up the duration of a join of a large
MUC room, i.e. about 160 occupants, to about half of the
previous duration.
Change-Id: I0fc254cda962860416713822ddcad15ae13085f1
|
|
The dialog will automatically initiate a check for updates
when opened.
It will show the current state of the auto updater backend,
e.g. whether it is downloading or already at the latest
version.
This also fixes update channel selection being shown
on Windows and Linux.
Test-Information:
Ran Swift and opening the dialog shows a short progress bar
indicating it checking for updates. Afterwards it shows that
it is already running the latest version, which is sensible
for a dev build.
Change-Id: Ie08cd2a8852e468d6007122604b532fedc24bcfe
|
|
This adds the Ctrl + Minus and Ctrl + Equal shortcuts for
zoom out and zoom in respectively.
In addition, this commit provides a workaround for QTBUG-56571.
Test-Information:
Tested on macOS 10.12.3 with Qt 5.7.1. Tested with German
and UK keyboard layout. On UK layout both shortcuts,
Ctrl + (+/-) and Ctrl + (=/-) work. On German layout only
Ctrl + (+/-) works.
Change-Id: Ifbcab308c9a8f4c88b51978969c73c3c1138a9ba
|
|
The new selector behaves like the old one. However, selection
of an emoji results in the corresponding UTF-8 sequence to be
inserted into the input widget instead of a ASCII emoticon.
The code is based on the Emojione library which is MIT
licensed. Emojione provides a mapping from shortnames to
relevant Unicode codepoint, as well as mappings from textual
emoticons (e.g. ). This commit does not modify the existing
emoticon parser and so does not include any ability to enter
emojis via text entry.
The part of the Emojione library required to generate the mappings
in C++ is included in this patch, specifically the emoji.json
file. It is used to generate a corresponding .cpp file.
Mapping code can be generated as follows:
* cd BuildTools/EmojisGenerator/
* (optional) update emoji.json from
https://github.com/Ranks/emojione/blob/master/emoji.json)
- Version used with this commit: ba845a7
* npm install
* node generate.js
Test-information:
General
* Click the emoji button opens the selector
* Change tab
* Click an emoji and check it appears correctly
* Click outside emoji dialog hides it
Emojis
* Emojis are well printed on macOS with Qt 5.7.1
* Emojis are black/white on Windows 10 with Qt 5.7.1
* Emojis have the right tooltip (when mouse is hover)
* Check emojis are rendered appropriately by the receiving client
Tabs
* Tabs have the right tooltip
* Click an emoji adds to recent tab
* Emojis in the Recent tab are ordered by last click date
(with a maximum of 50 "recent" emojis)
* Recent emojis are saved in the QtSetting under "recentEmojis"
Change-Id: Ibd07b8713d6272da6a8a4c9c35ddf866473f662b
|
|
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
|
|
Also fixed an typo error in GConfProxyProvider.cpp that prevented
compilation on Linux.
Test-Information:
Tested with an XMPP server with vCard support disabled and
also with vCard support enabled. Tested profile window
and profile editor window.
The profile window will show cached vCard data if present
and the error message. The profile editor window will only
show the error message in case of an error.
Tested profile window and profile editor window in a scenario
where vCard support is first enabled in the server, then
disabled, and finally enabled again, and opening the editors
in between. Potential error messages were always correctly
cleared before showing the dialog.
Tested on macOS 10.12.3 with Qt 5.7.1.
Change-Id: I3958c35286f6f0096d1605c29816f666530aae03
|