Age | Commit message (Collapse) | Author |
|
If a server closes the XMPP stream, it sends a </stream:stream>
tag. The client is supposed to respond with the same tag and
then both parties can close the TLS/TCP socket.
Previously Swift(-en) would simply ignore </stream:stream>
tag if it was not directly followed by a shutdown of the TCP
connection.
In addition there is now a timeout timer started as soon as
Swiften or the server initiates a shutdown. It will close
the socket and cleanup the ClientSession if the server does
not respond in time or the network is faulty.
Refactored some code in ClientSession in the process. Moved
ClientSession::State to a C++11 strongly typed enum class.
This also fixes issues where duplicated </stream:stream>
tags would be send by Swift.
Test-Information:
Tested against Prosody ba782a093b14 and M-Link 16.3v6-0,
which provide ad-hoc commands to end a user session.
Previously this was ignored by Swift. Now it correctly responds
to the server, detects it as a disconnect and tries to
reconnect afterwards.
Added unit test for the case where the server closes the
session stream.
Change-Id: I59dfde3aa6b50dc117f340e5db6b9e58b54b3c60
|
|
Test-Information:
Build on macOS 10.12.1 and all tests pass.
Change-Id: Iedaa3fa7e7672c77909fd0568bf30e9393cb87e0
|
|
Test-Information:
None.
Change-Id: I6a734918b48e512726344d5812642473067e40a9
|
|
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 FeatureOracle provides tri-state feature lookup
functionality for bare JIDs. It returns Yes if a feature is
supported by all resources of the bare JID, Maybe if some
support it, and No if none of the resources support it.
If passed a full JID, it returns the specific features supported
by that end-point.
Sending a file to a bare JID, will send a file to the resource
of the bare JID with the highest availability by presence, show
status and priority and which supports the features required
for a Jingle file-transfer.
Test-Information:
Added unit test verifying new behavior.
All tests pass on OS X 10.11.6. Added new unit tests for
FeatureOracle.
Manually verified that the roster and chat window both use
the same mechanism to detect support for file-transfers.
Manually verified that file-transfers via the contact list
goes to already bound full JIDs if there is an existing
ChatController.
Change-Id: I0175ac42ecb73f1d54f9c96ffbba773eb5e24296
|
|
Due to the style independent fixed text color for the status
message of non-compact roster item, it was barely readable on
Windows 7. This commit has the color for the status message
in non-compact roster items depend on the used text color
for the name. It uses a brightness adjusted highlight text
color for the second line.
Test-Information:
Tested on OS X 10.11.6 with Qt 5.5.1 and Windows 8 with Qt
5.5.1.
Change-Id: I41beb0f3eaede3f9413a39662c213a4e904bdd69
|
|
This shows a short descriptive text in empty trellis cells,
that describes the current state to the user and suggests
actions on how to get rid of the empty trellis cell, e.g.
by changing the layout or moving chats to the empty cells.
Test-Information:
Tested with Qt 5.5.1 on macOS 10.12.
Change-Id: Ibc7d3a327cf32b8a21304b37e79534773b5d3761
|
|
Test-Information:
Unit tests pass with Qt 5.7.0. Chat view sizes are synchronised
on change. ASAN does not complain when opening/closing lots
of chat windows and then closing Swift.
Change-Id: Ib00260d2331f48f0ca3c47a2340311dcff85c5ed
|
|
Test-Information:
Build successfully with Qt 5.6.1 on macOS 10.12 and opening
about dialog, license window and change log window still works.
Change-Id: I4a91b41f3848ee8049c179598b1b8e498d8ed35d
|
|
The moves the timestamps from the sidebar into the message
block to the right, after the nickname, floating right-aligned
at the top of a message.
This reduces the width of the sidebar.
Test-Information:
Tested with Qt 5.7.0 and QtWebKit TP4 on macOS 10.12.
Tested MUC and 1-to-1 chat views. Tested last message
correction UI behaviour.
Change-Id: Ibd899e9017ac5654b3eb3fe909c9be1524d4b50b
|
|
A recent change to web view scaling to have equal font sizes
in and outside the web view cause the pixel sized avatars
to be half the usual size. With this fix the avatar is as
high as The the nickname plus the first line of the first
message.
Test-Information:
Tested on macOS 10.12 with Qt 5.7.0 and QtWebKit TP4.
Change-Id: I13e3c83fdb00e0dc9079c3ad5d6a380f6db5a499
|
|
The delviery-warning.svg matches the style of
delivery-failure.svg and delivery-success.svg. It is a
yellowish circle with a white border and a white exclamation
mark in it.
Test-Information:
Build and checked the new icon is shown when a message
receipt is requested but no receipt is received.
Tested on macOS 10.12 with Qt 5.7.0 and QtWebKit TP4.
Change-Id: Ie715993eabd8f853ea0a6983645d7d89259f61a7
|
|
This removes resource forks from our template disk image.
Add custom InstallWithSymLinks command that does behave
similar to the default env.Install command, however preserves
relative symbolic links inside an installed directory.
This is needed because the Sparkle.framework internally
uses symbolic links and codesign utility fails if these
links are replaced by copies of the original files.
Test-Information:
Verified dist=1 builds with and without code signing on macOS
10.12. Verified that on change of presence of the
codesign_identity SCons argument or its value, a new package
is build. If it does not change nothing is built again.
Change-Id: Iade94811b7d608cb7520662e2820be3b128ee90b
|
|
Test-Information:
Unit tests pass in ASAN-enabled build on macOS 10.12.
Change-Id: I2dd2ab79e70b0613550fd0eacb739f50627a192f
|
|
Changed the code to use range-based for loop were possible.
Test-Information:
Builds and unit tests pass on macOS 10.12 with Qt 5.5.1.
Change-Id: I118aa4ac5887544a1b2d8fb6ee2910b44447467a
|
|
Test-Information:
None.
Change-Id: I2514d83fdec851db9874f2f0160493435e7240f8
|
|
QtChatWindow was setting and resetting the Qt stylesheet for
the chat input for message correction UI. This conflicted
with the focus rectangle styling.
Moved correction styling inside QtTextEdit which can handle
focus rectangle and correction background styling together
without overriding each other.
On OS X, the native focus rectangle drawing, i.e. setting
the Qt::WA_MacShowFocusRect widget attribute on the input,
can not be used anymore, as it conflicts with setting the
stylesheet for the correction background color.
Test-Information:
Tested message correction, trellis and security label UI on
OS X 10.11.6 and Windows 8 with Qt 5.5.1.
Change-Id: I0b771a2d47d5437512e870a9887b0b6e7262b359
|
|
Previously, presence from your own full JID was not applied
to your own roster entry. With this commit all presence
changes are applied.
Test-Information:
Added unit test verifying new behavior. All unit tests
pass on OS X 10.11.6.
Change-Id: Ib93f487329aa1eec0e876857541780ff44b8cac9
|
|
Test-Information:
Tested that at 1em scaling, the default, the main text in the
chat style has the same height as the nicknames in the roster.
Tested with Qt 5.4.2 on macOS 10.12 on a retina system,
with Qt 5.4.2 on macOS 10.12 on a non-retina system, and
Windows 8 with Qt 5.7.0 with QtWebKit Technology Preview 4.
Change-Id: I10701c411d9f787bf497eb6aab208a0f3fda621c
|
|
Test-Information:
Unit tests pass in ASAN-enabled build on macOS 10.12.
Change-Id: I7a8dae7d06e5e1d3dc9391f9c9a342df384d90fc
|
|
Modernised code to C++11 lambdas and range-based for loops,
and cleaned up includes in the process.
Test-Information:
All unit tests pass with ASAN-enabled built on macOS 10.12.
Verified recent status list is still loaded in Swift UI.
Change-Id: I44fe09a079cfae15ed9fb2860e7352badedf6c1c
|
|
The default avatar is a embedded SVG which doesn't need to
be scaled specifically.
Test-Information:
Builds on macOS 10.12 with Qt 5.6.1 and tooltip avatars are
still shown without an error message being logged.
Change-Id: I5aff38856e97dee9133b1daf9039cabc063dc01c
|
|
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
|
|
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
|
|
All our pimpl idiom usage used std::shared_ptr due to being
written in C++03. Now we use C++11 and const std::unique_ptr
is more sensible.
Test-Information:
Builds on macOS 10.12 and unit tests pass.
Change-Id: I1b9b3fbb22e337d53ae71e5a5e03118998cc3376
|
|
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
|
|
The default focus indicator on the text input fields in chat
windows becomes harder to notice in trellis mode as there are
many similar looking chat windows visible at the same time.
This change increases the visibility of the focus indication
border on Windows and will enable the
standard blue focus halo on OS X for focused chat inputs
in trellis mode.
Test-Information:
Tested with Qt 5.5.1 on OS X 10.11.6 and Qt 5.5.1 on Windows 8.
Change-Id: If9fe9edea6fef292bb99eabbb125c7a9ec20dcc2
|
|
This is implemented with the help of an implementation of
QSortFilterProxyModel which filters room names based on a
user search string.
Test-Information:
Tested on OS X 10.11.6 with Qt 5.5.1. Tested UX with different
MUC services and search strings.
Change-Id: I88085d089493008b2197a4aeb45d8c4d75724b9c
|
|
This is supposed to happen automatically according to Qt
documentation but it does not.
Qt also changed the context of QT_LAYOUT_DIRECTION from
Application to QGuiApplication. This commit adjusts our
translations accordingly.
Test-Information:
Tested with Qt 5.4.2 and Qt 5.5.1 on OS X 10.11.6 with
German and Hebrew translations.
Change-Id: I0b6a8bf35487e95f5186fd4fa09d4dcb92ba0c01
|
|
The cache for each version is stored in a dedicated directory
that exists next to the raw avatar images.
This allows running different Swift versions which use
different versions of the QtScaledAvatarCache.
Test-Information:
Tested on OS X 10.11.6 with Qt 5.5.1 and Windows 8 with Qt
5.5.1.
Verified that the avatar paths changed to the new versioned
cache path in the web views.
Change-Id: I12cb46c4d6750ae7ad82c719eef290f721d1d131
|
|
Change-Id: Ic3d735c39fa278eb8e168eb7f0cd140ecb445b5c
|
|
Change MUCSearchItem::setParent to take weak_ptr over
shared_ptr and converting it to weak_ptr in the method.
Test-Information:
Builds on OS X 10.11.6. Tested that various MUC room searches
still work.
Change-Id: I26d62861c99957759127c18a629bdda3635012c7
|
|
This also changes the classes around MUCSearchModel to C++11
smart pointer based memory management.
Test-Information:
Verified that dtors of MUCSearch*Items are called when old
search results are replaced by new search results. This
was not the case previously.
All unit tests and manual testing with an ASAN enabled build
succeeded.
Change-Id: I84d62f3b86138728401b98d3774f47c72fdf9a4c
|
|
This changes the icons for delivery success and delivery
failure to vector graphics in SVG format.
Added a slight white circle around the graphics for better
readability on backgrounds with low contrast.
Test-Information:
Tested with Qt 5.4.2 and Qt 5.5.1 on OS X 10.11.6 on retina
and non-retina systems.
Noticeable better rendering due to SVG over PNG. Noticeable
but not attracting attention white circle.
Change-Id: I3c9be99854a300a4e40161a74964514aa47d292a
|
|
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
|
|
This changes the minimal font scaling to 0.8em, so that the
font size in the chat view can be smaller than the font size
in the rest of the application.
At 1.0em the font in the chat view has the same size as the
rest of the application.
Also changed fixed pixel sizes in main.css to relative
percentage sizes.
Test-Information:
Verified the font size in the chat view is the same as the
font size for the contact lists at 1.0em on Windows and OS X
with Qt 5.5.1.
Change-Id: Ib625f11cea0aacd31edee27c2dc89df5e2cbd1c4
|
|
This allows building Swift with debug symbols and the
non-debug MSVC dynamic runtime.
Test-Information:
scons debug=1 optimize=0 and ./scons debug=1 optimize=1
both build and Swift runs in both configurations on
Windows 8 with VS 2013.
Change-Id: I47d75916963c4e64732c547bc7dfb322096d6189
|
|
Test-Information:
Tested on OS X 10.11.6 with Qt 5.5.1.
Change-Id: Ie96bae26e4001b3955007064313ae76cb47c0a7e
|
|
All fonts belong to the same font family, i.e. Late.
Set the correct font weights obtained from the download page
of the font website.
Test-Information:
Verified in Web Inspector that all fonts are loaded. Previously
only two fonts were loaded.
Change-Id: Ifa0a01058d80c1ddf3c500a28bd3e50823eb4246
|
|
Due to Windows focus handling, the handleApplicationFocusChanged
method was called during the relayout process while the dynamic
grid layout is not in a consistent state.
With this change a call to handleApplicationFocusChanged will
just be ignored during the relayout process when changing the
layout.
Now it also remembers the current active widget in the layout
and activates it after the relayouting is done.
Test-Information:
The crash happened in a scenario where you had a few rows and
columns and with many tabs randomly distributed, leaving some
trellis cells without a widget. When changing back to a 1x1
grid in this situation it sometimes crashed.
Now it does not anymore.
Tested on Windows 8 with Qt 5.4.2.
Change-Id: I829bac2ba050cf320e15ab48b49bbb9606a82831
|
|
Previously users could only drag and drop tabs on other tab
bars. With this change the user can simply drop the tab on
another tab widgets. This works on all QtTabWidgets that have
a QtDNDTabBar set, regardless of their number of child widgets.
This works by forwarding dragEnverEvent() and dropEvent() calls
on the QtTabWidget to the corresponding QtDNDTabBar.
Tabs dropped on the tab widget instead of the tab bar are
added at the end of the tab bar.
Test-Information:
Tested with Qt 5.5.1 on OS X 10.11.6 and Windows 7.
Change-Id: Ie73e02de24472eab2d20a89c937fb6630b1ef7b8
|
|
Recent testing on Debian 8 showed two rendering issues:
1. CE_MenuBarItem in the selected state shows drawing
artifacts for our drawing size with Debian's default style.
2. CE_SizeGrip shows drawing artifacts unless it's drawn
at position (0,0).
Removed size grip as the resizability signification is also
provided by the description text. Cells are drawn as simple
squares in the palette's highlight color.
Test-Information:
Verified that there are no artifacts and the dialog is usable
on Debian 8, Windows 8 and OS X 10.11.6.
Change-Id: I9eaf1e1fd34d035ec3dffcb0dc29efca40d6da24
|
|
If the gpg tool is found in the PATH and a key exists for
Swift's signing identity, package.sh will generated a GPG
signature (.asc) file alongside the tarball.
Test-Information:
Created a new GPG key with Swift's signing identity,
ran package.sh script and correctly verified the generated
signature with GPG.
Tested both with and without --nosign flag.
Tested on Debian 8.5 with GPG 1.4.18.
Change-Id: I7e6c8b6a7c900b68e53ece97a59eba33a2de565d
|
|
Test-Information:
Verified that ./package.sh builds a Swift package with
spellchecking support enabled on Debian 8.
Change-Id: I31bce4be6a3cc35e9c9bbeca1ec146ec179a3bb8
|
|
This fixes UI drawing quirks on Windows and improves the
margins.
It also adds a descriptive text on how to use the dialog.
It adjusts the cursor position when changing the size via
keyboard so switches between keyboard and mouse usage of
the dialog are fluid.
Test-Information:
Verified usage and looks on Windows 8 with Qt 5.4.2 and on
OS X 10.11.6 with Qt 5.5.1.
Change-Id: I983656d7d08d49ac4914380ae42ed5ce49fcea12
|
|
This adds the ability to provide more specific date formatting
via the Translator interface. The default translator will use
Boost's formatting capabilities. The QtTranslator use more
localized and better readable formatting.
Test-Information:
Tested with Qt 5.5.1 on OS X 10.11.6. Checked that tooltips
and presence text in new chat views show the new formatting.
Change-Id: I90ff5ab8b31fb41f2dcbea2c40b8846c534c355f
|
|
Added Qt image format plugin packages and Qt SVG image format
plugin to InstallSwiftDependencies.sh script and Debian
packaging.
Test-Information:
Tested that macdeployqt now adds the image format plugin for
SVG to the deployable app bundles.
Change-Id: Id1ce265073cb8adb9315cb40da032ee11ea8761d
|
|
It now uses the same dark gray tone as the chat view uses
for its text.
Moved some constants to named variables for readability.
Test-Information:
Compact and non-compact contact lists, in the roster and MUC
roster and the chats view all show the first line drawn in
a dark gray instead of the hard black.
Change-Id: Ief36fd4f27d30ace61f04d50e846db571ab84a4e
|
|
Test-Information:
Created a custom CA and added it as trusted to the system.
Created a signing certificate and passed it to scons as
described. The resulting installer does not show a red UAC
dialog anymore during installation. Instead the publisher from
the certificate is shown in a blue UAC dialog.
Change-Id: Ie4043520f6d45ec2e7aad712441a928cb423b0de
|