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:
None.
Change-Id: Idea7be5b1dd5d1829cd1a468d12cb527204ab397
|
|
This includes removing the class QtChatTabsShortcutOnlySubstitute,
passing around QtChatTabs instead of QtChatTabsBase, removing checks
and casts relating to the possible use of either QtChatTabs or
QtChatTabsShortcutOnlySubstitute, checks to see if the splitter
exists as the splitter should now always exist.
Test-Information:
Program still builds and runs fine. Both login and main windows open
and work correctly. Chat tabs open and close without fault. Unit tests
still pass. Removing loginWindowGeometry from the config file causes
no issues.
Change-Id: Iab58ab7fd23571f4aeeb7c8a9a988bdb1500ba5b
|
|
This patch enables emojis for Linux and Windows. In windows, currently the
emojis are only black and white, due to some inconsistencies in the UI.
For Linux the Noto Colour Emoji font (https://www.google.com/get/noto/) is
used.
The client must be build with Qt 5.6 or newer to support the emoji
characters.
Test-Information:
Tested the changes with Qt 5.8 on Windows 10 and Linux Ubuntu 17.10.
Built and tested the appimage on Ubuntu 17.10 and Ubuntu 16.04.
Change-Id: I6d0f2842349eae789d773c33d1a93ad33304df3e
|
|
Test-Information:
None
Change-Id: I548a18ff47c45eafda31584858607e5705386911
|
|
Thus begins 5.0's UI reworking. This removes the option for netbook mode,
leaving it always-on.
Test-Information:
Ran with no parameters on macOS, resized the window, quit, restarted,
size seemed to have persisted. Logged in, menus seem to work (debug
console at least). Sign out, log in again was fine.
Change-Id: I365eb6ada33994b75636675576a1443f9b385593
|
|
This patch introduces the “logfile” argument to the client, which can be
used to specify a file path for a log file, where all logging information
will be stored.
Test-Information:
Tested on windows 10 and Ubuntu 17.04
Change-Id: I6a2f14585a72f25e7e78d79cb633e1ddc4d43c3b
|
|
Test-Information:
Builds on macOS 10.12.5 with Qt 5.4.2.
Change-Id: Ifc49064c6a8ca2f0be52d8ddd8f0c7791230430f
|
|
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
|
|
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
|
|
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
|
|
If software updates are enabled the about dialog will show
the currently configured update channel and provides a link
to a dialog to change the update channel.
Test-Information:
Builds on macOS 10.12.1, unit tests pass, and dialogs behave
as expected. Did not test Sparkle updating.
Change-Id: I05d5014f0d719ba9b2146c1e599db4f7fde80558
|
|
Test-Information:
Builds on macOS 10.12.1, ./scons test=all passes, Swift
successfully logins and remembered Trellis configuration.
Change-Id: Id94d6af1448d44d7d46ba2b8606f3e5ebe98be7a
|
|
The automatic software update feature is enabled by default.
Test-Information:
Created system-settings.xml disabling the automatic software
update feature and verified no Sparkle log output is produced,
showing Sparkle is not initialised and run.
Tested on macOS 10.12 with Qt 5.5.1.
Change-Id: Ief1f4030505a2a3961ac18cd4774863584489727
|
|
Sparkle is configured to do silent automatic background
updates based on the provide appcast feed. When a new update
was downloaded and is ready to be installed Swift notifies
the user that they can restart to take advantage of the newly
available version.
Test-Information:
Setup a custom appcast feed with a newer Swift dev release.
Tested updating with Sparkle 1.14.0 binary release using DSA
keys and signatures. Did not test Sparkle update with code
signed Swift builds. Tested on macOS 10.12.
Change-Id: Idad461ec53963c80990e51a502cb6e28bc7b6b4e
|
|
This sets the font family to Lato for QtTreeWidgets. The font
size or other settings are not changed.
Test-Information:
Tested on OS X 10.11.6 with Qt 5.5.1.
Change-Id: I235ae1b4e98e903872cb21ce41eca5f08955042d
|
|
Test-Information:
Tested on OS X 10.11.5 with Qt 5.4.2 and Debian 8.5 with
Qt 5.3.2.
Change-Id: I9a60fc4b5556379576fdddc12a697cb71597e241
|
|
Test-Information:
Verified that trellis options are available after login
and working as expected on OS X 10.11.5 with Qt 5.4.2.
Change-Id: Ib94129abc07c38d38c932493d1c74260e894a4f3
|
|
Run 'clang-tidy -fix -checks=modernize-use-nullptr' on all
source code files on OS X. This does not modernize platform
specific code on Linux and Windows
Test-Information:
Code builds and unit tests pass on OS X 10.11.4.
Change-Id: Ic43ffeb1b76c1a933a55af03db3c54977f5f60dd
|
|
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 also removes the old chat theme resources and some code
in QtWebKitChatView that was required for compatibility to
Adium-style themes.
The new code uses a CSS style in the header to change the
font size and does not iterate the whole DOM tree itself
anymore.
Added new resources for failed and successful asks.
Test-Information:
Tested MUCs, PMs, message correction and file-transfers with
the new chat theme.
Change-Id: If922a972c658189444e60a7b00e5e5e96661620d
|
|
This implements basic support for OS X Notification Center
notifications with simple banner notifications showing type,
contact and message/presence information. A click on the
notification opens the chat view to the contact.
The Notification Center backend will be used on OS X if the Growl
notification backend is not used.
This code requires OS X version 10.8 or later.
Test-Information:
Tested presence and message notifications between multiple Swift
accounts and instances on OS X 10.9.5.
Change-Id: I7b9e2132cab25e086e0912191562cad8f4cbae38
|
|
This patch adds an option 'disconnectOnCardRemoval' to system-settings.xml which
when set to false allows the user's session to stay connected if the smartcard
is removed. The default value of this option is true if it is not specified.
Test-information:
Tested on Windows using NIST smartcards.
Tested true and false values set for this option in the file and also when
option is not specified (true).
Unit tests pass.
Change-Id: I7e421b4153ff7d3000f41999add20d339076c96e
|
|
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
|
|
This is simple popup menu added to chat window where it is possible to choose an emoticon. To activate click on the smiling face next to input field.
When emoticon is selected its text equivalent is appended to input.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tested on Ubuntu 14.10 with KDE and Qt 4.8.6
Change-Id: I6c5907959970398c9c38591f64ceec20efcbf409
|
|
Qt models are not owned by their widgets. They must be deleted manually
or a parent has to be specified for them which will take care of deletion.
The same goes for delegates and their views.
Test-Information:
Tested with Clang's leak sanitizer (part of address sanitizer). The
leak reports for the respective lines are gone with this fix.
Change-Id: Ia7407cb20ae9e4ccc2e1cf48c88877c2f87352e1
|
|
Change-Id: Idb6ef5fa191b1465c0bf46c47e63b695de07fa0b
|
|
This includes dynamic customizable grid layouting of chat tabs including:
- arrengement of tabs via menu, keyboard shortcuts or drag'n'drop
- change of grid size via mouse or keyboard
- save/restore of grid size and positions of chats inside the grid
Test-Information:
Tested on OS X 10.9.8.
Change-Id: I43f94293a1c672971640c3000abfc6530f2ea7a8
|
|
rendering.
Test-Information:
Use AdHoc bot that presents a multi-item form and check that it is rendered correctly. Check that entering invalid JID and node parameters in the dialog do not cause malfunction. Check that canceling the JID prompt closes the dialog without sending any server commands.
Change-Id: I10e6f4c7eccd1a35c8c885d548994b5f57fdbf66
|
|
One only showed in netbook-mode. Another got introduced by the impromptu patch.
Change-Id: Id878d001b6bac67f943a86386300c8a0db3bc74e
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
Change-Id: I891333b992d08b83cd4127bfd0893399735b5432
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
Change-Id: I07256f23ffbb6520f5063bdfbed9111946c46746
|
|
- Use boost::filesystem::path consistently for referring to files.
- Use boost::filesystem streams for I/O, such that paths are always handled
correctly.
- Use stringToPath and pathToString for conversion between strings and
boost::filesystem::path, to ensure we have consistent unicode handling
across platforms and environments. The default constructor and string
conversion uses platform-dependent encoding, depending on the global
locale set in the application, which causes problems. So, unless you are
in platform dependent code, the default constructor and string() function
should not be used. When constructing paths from other paths (e.g. using
operator/), also use stringToPath (instead of string arguments) if the path
can contain unicode characters.
Change-Id: If286bd9e71c8414afc0b24ba67e26ab7608ef6ea
|
|
Using library/platform implementation instead.
Change-Id: I2457c2dad80e6fdda023a7f31c3906ff10fe09ed
|
|
Change-Id: I91272f94258a49c9626cf3130bfbf2838a434e9b
|
|
Change-Id: Ifab368474bd9e42e10f2cb0c29ff696c0aeaf3ea
|
|
Change-Id: I70109624b4bd7aab9ba679a3eaabc225dd64a03a
|
|
Change-Id: Ifcdcafb22a37f2cdaccf2b31d21eb5a42b1bf2b2
|
|
Change-Id: I6b5bc58558a94b5d3939171ebf5d318a067c8b3d
|
|
Change-Id: Ic65eef49b415a7b8e1575b517cc758cb9c95defc
|
|
Change-Id: I26e4e979ce0af2bc922f1b3f740ed58b0c9d9d53
|
|
Change-Id: I5baaa2cf28cbc344bf442c4a74e0c9ff3ba31ea1
|
|
Change-Id: Ie86689df58ed5134b1ed558d509d33123eb2bcbc
|
|
|
|
Parsing and toggling support for emoticons. No emoticons are included so this won't do anything yet.
|
|
|
|
(if any)
This patch implements monitoring for SmartCard ejection. This is done by
periodically (currently every second) polling smart card reader for
the smart card status. If the smart card status becomes "absent" or "unknown"
(an error to query the smartcard), the TLS session is aborted.
This usually results in an attempt to reestablish TLS which will pop up
"please insert the smart card" dialog.
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
|
|
|
|
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.
|
|
|