Age | Commit message (Collapse) | Author |
|
When removing a contact, a XMPP client will not receive an explicit
unavailable presence stanza for the contact from the server. Because
of that Swift used to show removed contacts still with their old
presence in the Chats tab or the chat view.
With this patch, the PresenceOracle will flush all known presence
of a contact as soon as the JID is removed from the roster. An
unavailable presence will stored under the removed bare JID and
is emitted via the PresenceOracle::onPresenceChange signal.
Test-Information:
Added a unit test verifying this behavior. Tested the behavior with
two scenarios:
a) Account A and B adding each other and accepting the subscription
request. Starting a chat between A and B. After removing B in A's
account, B used to be shown as available in the chat view and the
Chats tab. With this patch B is shown as unavailable.
b) Account A and B adding each other and accepting the subscription
request. A removing B, and B removing A. After A adds B again,
B used to be shown with the old presence even before B accepted
the subscription request. This behavior is also fixed with this
patch, not showing B as online until B accepted the subscription
request.
Change-Id: Iba97d3bedd0ac962ea00b25a0d2ed6106ed55a55
|
|
While it is possible to add domain only JIDs to a user's roster
this is rarely the intention of a user. This patch adds the
requirement of a node-part for the address entered in the dialog
and presents a warning if the node-part is missing.
Test-Information:
Verified that a warning triangle is shown if there is no node-part
in the user entered address.
Change-Id: I38dd0b34ca7cb19b38bb7e1c457f7a8a9ef84028
|
|
The recent commit 582ca91 changed the behavior the binding
between chat sessions and the full JID of a chat contact.
This commit adds additional unit tests verifying the behavior
of implemented in 582ca91. This means a chat session binds to
the full JID of an incoming message only if the message has
a non-empty body text or is a 'typing' chat state notification.
It also tests the rebind to another resource if a 'typing'-CSN
or a body message is received from that resource.
Test-Information:
All unit tests pass on OS X 10.10.5.
Change-Id: Id3f25d8a3ff78c407ed4b2a97bd421dc4aa58688
|
|
Previously, if a base installation of Qt was available but not
all Qt modules required by Swift are available Scons would fail
configuration. If a basic Qt installation is available SCons will
try to configure Swift even if you only want to build Swiften.
This commit changes the hard failure in Swift configuration to a
warning. This allows only Swiften to be build.
In addition, the warning now lists the Qt packages required by
Swift.
Test-Information:
Tested on Arch Linux.
Change-Id: I220ea61a7e4af849912e1fb1ae66cbecf5136d29
|
|
With this commit a ChatController is only bound to a full JID
of a contact, if the incoming message of the contact has a
non-empty body or is a 'typing' chat state notification.
This avoids random binding to an arbitrary resource of a contact,
that has multiple online resources and responds with delivery
receipts.
Test-Information:
Tested with a conversation of a one resource account (A) to a
two resource account (B). Sending two messages to B, the first
used to go to both resources, then A would bind to the full
JID and the second message would only go to one resource.
With this fix all messages go to both resources, i.e. are
send to the bare JID, until one resource of B replies. This
binds the controller at A to the full JID of the reply of B.
Change-Id: I8d9321a4226ab798e1196351ad087990d5dff8c3
|
|
Test-Information:
Still builds and unit tests pass.
Change-Id: I472491184ba10ec3bdbd4cb94613768639ac6f57
|
|
The default Swift icon is black with transparent background.
It is hardly visible on Windows 10 as it has a black task bar
by default.
This commit changes the Windows icon of Swift to the default
avatar icon.
Test-Information:
Verified icon visibility on Windows 10.
Change-Id: Ic78aa6b816deb5769666c7e2337917262c75046e
|
|
Commit 9b48a73 introduced a bug because it always assumed
the 'Add contact' user case.
Test-Information:
Retested the add contact case described in commit 9b48a73 and
tested MUC invitation by DND. Neither crashes anymore.
Change-Id: Ifab356e6ad9a52365ed15dd46e4e94492bdc60bf
|
|
Test-Information:
None.
Change-Id: I4e0cd54c9009bc19fdc10cd1ec2697252bd6f7f7
|
|
The moving of our sound playing to our message highlighting code
resulted in non-message events not having sound notifications played
anymore. This commit fixes this issue for incoming file-transfers,
by playing the default message received sound as long as sounds are
not globally disabled in Swift.
Test-Information:
Tested on OS X 10.9.5 with Qt 5.4.2, by exchanging files and
messages between two Swift instances.
Change-Id: Ie09473efeef8366b76f6f7b59cc941fe6a0ad8f0
|
|
When moving a rule up or down in the highlight rule editor on
Linux, the scroll area scrolled all the way down after each move.
This problem is not reproducible on OS X.
With this commit the dialog remembers the scroll area position
before moving a rule and sets the scroll position back to the
remembered value after the move of the highlight rule.
Test-Information:
Verified that the scroll position is not changed when moving
highlight rules up or down on Debian 8.2 and OS X 10.9.5.
Change-Id: Ide7c99e1311671c77cbf72da5cad4f64bfaab11f
|
|
Test-Information:
Still compiles, the menitoned warnings in Swift are gone and unit
tests pass.
Change-Id: I8e113e7faf2e9273b4741f18c19e35e1b7bc7661
|
|
Test-Information:
Tested by entering an existing JID, closing the dialog window and
reopening it.
Change-Id: I6c24ba319a062d19f2144c70fcc94fe77d36befe
|
|
The MUC bookmark editor window opened from the chat window would
always show a new bookmark. With this commit it will show the
existing bookmark if it exists. Otherwise it will show a new
bookmark.
Test-Information:
Tested this behavior by creating a bookmark, changing name and
nickname to different values and verified that the bookmark dialog
for this room, opened from its chat view, would show the existing
bookmark.
Change-Id: I6766253ce11be271016473dff1105369482e73df
|
|
The highlight editor did not save if the user set the 'apply to
all' property on a rule. It allows to highlight complete messages
or be notified only based on the incoming message type.
This commit enables saving the property.
Test-Information:
Tested chat and room rules with the 'apply to all' property set
and verified that the complete messages are highlighted.
Change-Id: Ib06bd3111ae810c8362ab8fd36a2d3b67f5a14cc
|
|
After selecting an emoticon on Windows the keyboard focus does not
return to the text input. OS X did not exhibit that behavior.
This fix explicitly sets the focus back to the text input after
selection of an emoticon, as expected by the user.
Test-Information:
Verified the behavior on OS X 10.9.5 and Windows 7, both with
Qt 5.4.2.
Change-Id: I8737a7e3f6d1a6b7a8e60261e9bd14c7be8d07a6
|
|
Our packaging procedure temporarily needs more space on the disk
image as it first copies the application bundle and frameworks on
the image and afterwards removes debugging symbols and other files
not required by the end user.
The package.sh script reported this error of not having enough space
left on the disk image.
Test-Infromation:
Verified that the disk image is still build, the package.sh error
is gone and the packaged Swift.app works.
Change-Id: Iba853bd30eb63f74f07cdda08b93e76dd89368bb
|
|
This is a workaround for QTBUG-34641. The Qt bearer API for
detecting network changes will poll for available wireless networks
every 30 seconds or so, resulting in needless CPU load.
This patch removes the plugins for this API from the installation
package, which will disable the constant polling for available
wireless networks.
Test-Information:
Verified that the plugins are removed from the application bundle
in the final installation DMG.
Change-Id: If46d03ca5623885879ecc10e06a29cec96e7caa4
|
|
Commit 22ea5735ad1a105a4294b7475aba58646ef3ee8a added a qt.conf
file to the compiled binary resources of Swift which is picked up
by Qt and configures Qt to disable DPI awareness on Windows, as it
is not supported by the Qt WebKit widgets yet.
However, the Mac application bundle also ships with a qt.conf
file which set the correct folders for Qt plugins. This was
overridden by the compiled qt.conf resource file.
This commit only compiles the qt.conf resoruce file require for
Windows on the Windows platform.
Test-Information:
Tested on Windows 10 with 150% scaling that Swift is scaled up
based on the pixel data.
Tested on OS X 10.9.5 that the installation package works again.
Change-Id: I74ce722cff1090e7dafc3a67e04f2a45d375a43d
|
|
The vCard fields for middle name and suffix have been swapped at
some point in the past. This commit fixes this error.
It also specifies the correct tab sequence for the widget.
Test-Information:
Tested the correct visual appearance and tab sequence on Mac OS X
10.9.5 with Qt 5.4.2.
Change-Id: I80d7e21982ddbb836c9f9a690e685a902e54df9c
|
|
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
|
|
The default Debian 7 desktop uses window decorations for dialog
windows that does not have close window buttons at the top. This
commit adds a dedicated close button to the about window.
This button is *not* added on Windows and OS X.
Test-Information:
Tested looks and function on OS X 10.9.5 with Qt 5.4.2 and
Debian 7 with Qt 5.3.2.
Change-Id: Ia363f66666eb88d43834ab0556f7b06efd3cedef
|
|
Test-Information:
Verified behavior with Qt 5.5.0 on Elementary OS 0.2.
Change-Id: Id4dd1e5e35c1ec20d0a2dd39727ee0ba352b611a
|
|
This is an intermediate solution to the problem that the web views
of Qt do not scale to the correct size out of the box.
Disabling support for HiDPI mode will let Windows do pixel based
scaling. The resulting appearance is not as clear but the web
views remain readable.
Test-Information:
Tested with Qt 5.4.2 on Windows 8.
Change-Id: I9460902e728e6190c8382d4eb954135470654e5c
|
|
Test-Information:
Verified that using trellis shortcuts does not crash Swift
anymore if no chat window is open.
Change-Id: Ie5c7b4675c89c8481cad48f2a348e6520ac42b13
|
|
Test-Information:
Tested that the bookmarks context menu still works after an
offline/online cycle.
Change-Id: I9248b7405a6a09bc813c6590e0f2f9a4ed92acb3
|
|
Test-Information:
Verified the change is visible in the UI.
Change-Id: I31ebb28b3930c45e791ffea2ba8eb08364fcbd9b
|
|
Test-Information:
Tested by searching at some services and checked that they
are present in the combo box after a Swift restart.
Change-Id: Ia30d932f20447f44e458af3b32a38665872da025
|
|
The delegate was not correctly freed and was leaking across
login/logout sessions.
Setting the parent of the delegate during initialization, so it
will be freed by Qt when the QtUserSearchWindow is freed.
Delegated the deallocation to Qt, because it has to be freed
after the widget that uses the delegate is freed.
Test-Information:
The leak was reported by Valgrind. Verified with Valgrind that
this commit fixes the leak and is not reported anymore.
Change-Id: Ib48d2628577433bce82103b3f14cbd11d733b7ac
|
|
Check that checker_ and highlighter_ are initialized before
calling them.
A crash report indicated a crash calling getMisspelledPositions()
on highlighter_ from QtTextEdit::contextMenuEvent(). This fix
should prevent this call to cause a crash.
Test-Information:
Verified that spell checking still works on OS X.
Change-Id: Idae37c1f9e2d1a0d0f64da251aa6778f2e9b47a2
|
|
Test-Information:
Checked that the button has the new label.
Change-Id: Ic0e00e479de01decd23e14477d0bf34950ab6160
|
|
The 'Clear all' button in the file transfer overview window
was only present in the UI, without any logic behind. That's fixed now.
Test-Information:
Send a file in between two Swift instances. Verified that the button is
enabled/disabled at appropriate times and works as expected if pressed.
Change-Id: Ib92621cba479683ade8d815ce5ace9768449a499
|
|
Test-Information:
Send a file from one Swift instance to another. The UX is similar to
that of a MUC invite, clicking the notice will bring the relevant chat
in front.
Change-Id: Ief3cd7371ae01b2b38b6d1af36189df961eacef4
|
|
Swift did not remember the correct scrolled-at-bottom position for
the current chat view after it added/updated file-transfer UI to the
chat view.
Test-Information:
Tested with two Swift instances (one with the fix, one without) and
send files in both directions. The instance with this fix, scrolls
down along with new messages as they are recevied if the chat view
is scrolled to the bottom.
Change-Id: Ia9afa68254c3add5f7677b1f4b7ed3c7e1edcf6f
|
|
The code passed local time to the B2QDATE macro. The B2QDATE macro
however requires its input to be in UTC.
Test-Information:
Tested a file-transfer and MUC invite between two Swift instances.
Change-Id: I3a44f35d804b4029a6ff80548a6cb8a1d3edc27e
|
|
Show the user the collection of possible file transfer candidates
after pressing the 'Start' button for a file transfer. Previously the
buttons remained in the UI giving no feedback to the user at all. If
no UPnP/NAT-PMP device is present, it this stage can take a couple
seconds to timeout and move on to the next stage.
Furthermore this commit adds documentation for the different states
in the ChatWindow::FileTransferState enum.
Test-Information:
Tested this in a network environment with no UPnP/NAT-PMP device
between two Swift instances.
Change-Id: I76ec6e641a2acd683938fe2d8f542d023a244145
|
|
The button is shown after the 'Transfer completed successful.'
message and asks the desktop environment to open the file with the
default program.
Test-Information:
Send a file to another Swift on OS X 10.9.5 and verified that it opens
the file on button click.
Change-Id: I602e534ef07a119247cbf979e13551be7771880c
|
|
Add a hidden option to enable single sign on. When that is enabled, ensure that
the user only enters the domain name and that the JID is constructed from the
Windows log-on credentials.
Test-information:
Tested on Windows.
Unit tests pass.
Change-Id: Ia5592a3893f0807a3801b515c8fcddb580c9ef8d
|
|
Connect FileTransfer::onStateChanged signal earler to slot in
FileTransferController, so the slot will be called for state changes
that occur before a transfer started.
Test-Information:
Tested with two Swift instances and cancelling the sender side and
receiver side. Without this patch the receiver side UI does not change
if the receiver side cancels the transfer.
Change-Id: I1d4d3e1ac78689a16120bfa9ccdec30ab1191ee3
|
|
Test-Information:
Not applicable.
Change-Id: I1620be8361c1b70b365011ac7f0ec6ac11dbe76f
|
|
Rooms in the recent chats list and bookmarks can be entered by double
click if the user is offline. They are joined when the user goes
online again.
Test-Information:
Tested by going offline via the presence menu and then entering rooms
via recent chats and bookmarks.
Change-Id: I8c3eadd29c3353c2cf5f04f53b71ef7ad67a5c05
|
|
Previously QtVCardWidget would work on a shared copy of a VCard and
modify the shared version. Now when setting the vCard on the widget
it creates its own copy and works on that.
The ProfileController holds a reference to the VCard it sets on the UI.
If the server rejects an update it can reset the UI to this VCard.
Test-Information:
Tested against a XMPP server that rejects all vCard updates
(mod_readonly).
Change-Id: Iaa8eed6406f2dc6cc7ac5434194a7dae4f879b33
|
|
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
|
|
Test-Information:
Tested on Elementary OS 0.2.
Change-Id: Ieae4fc2a2c6fdfaaac9895153b09c9504ef71495
|
|
Test-Information:
Building on a system without Qt now says that the application
is all that isn't compiled. Swift/Controllers still compiles if requested
(as before).
Change-Id: I24631f6ba2bf3475a1a6456207c1da94f1b3f1c0
|
|
This patch creates and passes on an optional boost::system::error_code variable
which contains more error info which can be displayed in case of an error.
Test-information:
Tested using WIP code on Windows.
Change-Id: I285b8aec5e9c00d3a8e0d8cc0d5e7b4c5d94c099
|
|
HighlightRule did not consider keywords in its isMatch() routine.
MUCController only triggered possible HighlightActions if it was a
direct 1-to-1 MUC message or an impromptu chat message.
Both issues are fixed.
Additionally fixed the HighlightRuleTest. It had some wrong assertions
related to rules being case insensitive by default and keywords match
inside longer words by default.
Test-Information:
Tested with a highlight rule that highlights text and tested that
sound actions are executed if the text is highlighted. Additionaly
verified that other behaviour (own nick mentions, direct 1-to-1 messages)
have their potential sound actions still executed.
Change-Id: Ia922a1ff38c66f6458d28a18a8cdde10e821f83d
|
|
Some servers have very restrictive TLS stacks that respond badly
to a bug in the SChannel TLS implementation, meaning that TLS
has to be limited to 1.0.
Add ClientOptions.tlsOptions. This is a method of passing options into
the TLS stack. It's currently
only used for the TLS 1.0 workaround in SChannel, but we might reasonably
expose other options in the future, such as limiting cypher suites.
Disables use of SSLv3 for SChannel
Also updates the coding style in SchannelContext a bit.
Test-Information:
Compiles on both OS X and Windows(SChannel). OS X doesn't show the new
option. Windows shows it, and remembers it between logins. Not tested
against a server requiring 1.0 only, but a previous hack with the
same approach was tested.
Change-Id: I1e7854d43811fd173f21f98d4dc3915fc7a4b322
|
|
Use QDialogButtonBox instead of custom button layout code. This way
the button are correctly layouted depending on platform guidelines.
Show a 'Ok' button if no other button is shown which closes the window.
Test-Information:
Tested on OS X 10.9.5 with Qt 5.4.2.
Change-Id: I37581982766d013f4d3d636880fd5ada59ee0c40
|
|
This adds layout margin and spacing to the calculation of the correct
size hint.
Test-Information:
Tested on OS X 10.9.5 with Qt 5.4.1.
Change-Id: I7036f64a6621f5ce6603e77da26a887e28c663ca
|