summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2015-05-19Consolidate Python and SCons files to tab based indentationTobias Markmann
Test-Information: Verified that SCons still runs on OS X. Change-Id: I7e9b97f90ee5581a691a959b6f2c999d93e0be53
2015-05-07Add support for Qt 5.4.1 to build and distribution process on WindowsTobias Markmann
Test-Information: Tested with Qt 5.3.2 and Qt 5.4.1 from qt.io website. Change-Id: Iada3e64e530d8a5b53b8b5c8943bcafbd9bd6c64
2015-04-28Allow editing bookmarks of MUC chats in the "Recent Chats"Tobias Markmann
Test-Information: Tested with online and offline account. Tested with not bookmarked and already bookmarked chats. Works as expected. Change-Id: Ib8851a70a7a82a198ee5b7a207816f03ad9df61e
2015-04-28Add Qt flags detection using pkg-config on Linux platformsTobias Markmann
Fix qt4.py SCons module to use the specific tools of the correct Qt verison. On non-Windows and non-Darwin platforms SCons will try to detect the correct Qt compiler and linker flags from pkg-config. Added the ability to build Slimber with Qt5. Fixed Qt5 support on Linux when using prebuilt Qt distribution from Qt. This patch adds support for building Swift on Arch Linux, with Qt4 and Qt5. Test-Information: Tested under Mac OS X 10.9.5 and Manjaor Linux (Arch Linux) in Qt4 and Qt5 configuration, and tested Qt5 Linux binary from their website on Arch Linux with the qt variable set in config.py. Change-Id: I2e19ab4aa7a26fdd989e2a12faa51a0f3f89c3ce
2015-04-10Fix keyboard shortcuts for --no-tabs modeTobias Markmann
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
2015-04-10Change trellis tab movement shortcutsTobias Markmann
The previous shortcuts conflicted with the shortcuts for moving to the begin and end of a line in text input widgets. New Shortcuts: Move tab left Ctrl+Shift+Page Up Move tab right Ctrl+Shift+Page Down Move tab to previous group Ctrl+Alt+Page Up Move tab to next group Ctrl+Alt+Page Down Test-Information: Tested and it works on Mac OS X 10.9.5 with Qt 5.4.1. Change-Id: Ie8b6fb05d56013d499e46838b15840554bbe6f72
2015-04-10Introduce FeatureOracle class for contact feature support detectionTobias Markmann
This modifies the feature detection in the ChatController to try to use the common features of all available resources feature detection if no full JID has been bound to the chat yet. Test-Information: Tested with two Swift instances. Tested a) the initial chat start case and, b) the offline/online. In case a) Swift used to initally show a yellow warning about no support for message receipts. This warning is gone now. In case b), after a user gone offline and online again in a running chat, Swift used to show a warning about missing support for message receipts. This warning is gone now. Change-Id: I7a769fde8d14847b180503aeaa58280c572d81b3
2015-04-05Improve UX regarding room bookmark handlingTobias Markmann
Label the window for adding bookmarks as "Add Bookmark Details". Allow modification of bookmarks from the cog menu in the chat window and adjust the context menu item accordingly. Test-Information: Tested the bookmarks section of the "Chats" tab in the contact list and the UX scenario using the cog menu that it works as expected. Tested it on OS X 10.9.5 with Qt 5.4.1. Change-Id: I80daf339fc86506db3d863decae4bcd892e3ea88
2015-04-04Fix popup visibility issues in QtSuggestingJIDInputTobias Markmann
When hiding the popup after selection of an item via mouse, the focus was given to a widget other then the QtSuggestingJIDInput or its parent dialog. This patch explicitly sets the focus back to the QtSuggestingJIDInput. Hide the potentially open popup when the QtSuggestingJIDInput is hidden. This can happen when the user closes a dialog with a QtSuggestingJIDInput inside of it. Test-Information: Verified described behavior on OS X 10.9.5 and Windows 8. Change-Id: Ic6629e6e626be18a70de159df62cda79dd82ee09
2015-04-03Fix vertical alignment of close button in QtClosableLineEditTobias Markmann
Test-Information: Tested vertical alignment of close button on OS X, Windows 7 and Elementary OS. Change-Id: Ia07a8476912674c94d851315f80630710e5f4217
2015-04-03Use SizeAllCursor for trellis resize dialogTobias Markmann
This is should be a union of the two diagonal resize cursors on most systems and is provided by Qt. Test-Information: Tested on Windows 7 and OS X 10.9.5. On OS X the cursor does not look like the union of the two diagonal resize cursors with Qt 5.4.1. Change-Id: I442f7e25b9bf0a3e6868cbcc9bd0a48d24da718d
2015-04-03Elide rightmost fields in the VCard dialogTobias Markmann
This patch changes the rightmost widget in the VCard fields from a QLabel to a QtElidingLabel. It also improves the spacing in the header in VCard profile dialog. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.1. Change-Id: I771ddb555c5990c67550d9e36f001e57644712da
2015-03-31Disable signals when adding a tab to the trellis layoutTobias Markmann
Due ot the way Qt implements widgets and the events, the windowOpening signal of a QtTabbable is emitted before the QtTabbable is a member of a QTabWidget when adding a QtTabbable to a QTabWidget. Disabling the signals when adding the widget will prevent these signals to be called and will prevent and endlress recursion. This has originally been reported by Pavol Babincak. Test-Information: Without this patch the reporter had Swift crash after a day or two. With this patch the reporter does not experience the endless recursion (crash) anymore. Change-Id: I8b3d791d79e9ab8f42dd1a1cba30d118f620f15d
2015-03-28Move common code into a shared QtUIFactory::showTabs() methodTobias Markmann
Test-Information: Still builds and behaves as expected. Change-Id: Ic3553ae2e34acf58a912bc7e2643fcb7d66f824e
2015-03-27Fix terminology inconsistency "Organisation" -> "Organization"Tobias Markmann
Test-Information: Verified in the UI after a build. Change-Id: I7586fc5c8f3bd4de4ea8e52e70ced3f9b50244f7
2015-03-26Add emoticons input popupDaniel Baczynski
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
2015-02-23Fix chat window title showing wrong chat titleswift-3.0beta1Tobias Markmann
Setup an application wide focus handler which updates the title if a focus change to a QtTabWidget happened. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.0. Change-Id: Ib2e2f4c4a93deddb286350bdef685eb7aee504c9
2015-02-20Fix Ctrl/Cmd + Page Up/PageDown shortcutsTobias Markmann
Test-Information: Tested on OS X 10.9.5 with Qt 5.4.0. Change-Id: Ia60808f5ae371db6b438b7396fa1f999f4572a96
2015-02-18Fix crash when a tab drag is aborted in trellis modeTobias Markmann
To prevent an infinite recurison during when a tab is returned (added again) to the original QTabWidget. The recursion was caused by a show event that is emmitted during insert and our QtChatTabs::handleWidgetShown function trying to add the tab again because it is not in the QTabWidget yet; it would be if the show event would be emitted after the insert is done and not somewhere during the insert. Test-Information: Dragging a tab in trellis mode and *not* dropping it on a tab bar. Previously this would cause an infinite recursion. Now it just returns the tab to its previous place. Tested on OS X 10.9.5 with Qt 5.4.0. Change-Id: Icd54b95b6f0542b6a9d3921fa1b0ab4df409950a
2015-02-17Fix shortcut handling for chat window navigationTobias Markmann
This commit fixes CTRL-Tab, CTRL-Backtab and CTRL-W shortcuts on Mac, Windows and Linux. These shortcuts work in all mode except --no-tabs mode. This will be fixed in a future commit. There is still different behavior across platforms: on Windows and Linux they are handled on key press and repeat, and on Mac they are handled on key release and do not repeat. Test-Information: Tested on OS X 10.9.5, Windows 7 and Elementary OS. Change-Id: I2179f234cfd76b86cf261f2cf7500fc1cf0439a4
2015-02-16Show a warning notice when trying to enter a blocked roomTobias Markmann
When the user tries to enter a blocked room, we now show a warning notice and describing how the room can be unblocked. Swift will not send the joining presence when trying to enter a blocked room. Test-Information: Tested on Mac OS X 10.9.5 against a popular open source server and its MUC and Blocking Command implementation. Change-Id: I875db056f21f97845c5a9a43167b0f2a16bdaa36
2015-02-11Fix missing removable icon in contact listing of "Start Chat…" dialogTobias Markmann
QtRemovableItemDelegate only renders the icon if the data for the cell is empty. This is to enable persistent entries. With this commit the model only returns the expected data for the first column. Test-Information: Tested on OS X 10.9.5 with Qt 5.4.0. Change-Id: I5cacebcc47323280b689badf2ba90b3503c17061
2015-02-11Fix code styleTobias Markmann
Test-Information: None. Change-Id: Iaff0108547658e1b103905c78fac5d1faf3a15e1
2015-02-11Fix --no-tabs mode brokenTobias Markmann
Trellis changes introduced a bug for the --no-tabs mode. Test-Information: Tested on Mac OS X 10.9.5. Change-Id: Ic918a38cda00a64f8eca496ede0190fbef6b6602
2015-02-09Fix focus handling bug with regard to tab changingTobias Markmann
QtChatWindow: Require now parameter is set in QtChatWindow::qAppFocusChanged which is required so only the visible tab that is changed to gets focus. QtDynamicGridLayout: A change of tab in a QTabWidget set focus on the new tab even if the QTabWidget has no keyboard focus. Test-Information: Tested on Mac OS X 10.9.5 and Qt 5.4.0. Change-Id: I3d9d230c7753f1898b251b49c06fe7318ad953fb
2015-02-09Fix UI update issue and enabled state of "Display Notice" in Notices viewTobias Markmann
EventModel was missing calls to endResetModel() in two return-paths. In addition the limit for inactiveEvents was out-of-sync in different places. The "Display Notice" button is now disabled if there is no notice left to display. Test-Information: Tested on Mac OS X 10.9.5. Change-Id: I2b74b942f58e80a9c1a46f434ffcebf8e1ce64bf
2015-02-09Fix memory leaks reported by LSANTobias Markmann
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
2015-02-06Use windeployqt.exe if available and Win distribution documentation fixTobias Markmann
If windeployqt.exe is available for Qt5, it will be used to detect which Qt DLLs to put in the Windows distribution and its dependencies correctly. Added a note to our Windows building documentation about the VS redistributable. Test-Information: Tested building a MSI package on Windows 8.1 Pro with Qt 5.3.2 32-bit msvc2013_opengl which successfully installs and runs. Change-Id: I786da40d6467f1de8e64bfae275f8363ac1d5ba8
2015-02-05Fix typoKevin Smith
Thanks Zash Change-Id: I696ab1e44b24e6b3fe2f829b854af3dbffcc0beb
2015-02-05Add "Reset defaults" button to highlight editor window.Tobias Markmann
The button is only shown if the current rules are *not* the default set of rules. Test-Information: Tested on Mac OS X 10.9.5. Change-Id: Ibf1856af04c6bdacf6102d240e6fe5f6071cb46a
2015-02-03Fix chat log system messages related to entering a roomTobias Markmann
In the past MUCController added a "trying to enter..." message and later tried to replace this with "entered room as..." message. However, any message received in between, like a system message about room topic, came in between since MUCController replaced the *last* message added to the log. The new code also adds message IDs to system messages. This way the correct message can be replaced on successful login, no matter how many messages came in between. Test-Information: Tested against a MUC component that send a system message before sending the join presence back to a user. Change-Id: I3bcb5d78de680494965d837b2ad3edb847ff7f99
2014-12-15Update copyright in missed fileKevin Smith
Change-Id: I9cc7b3805b7de972adfef4952f4841c21603542f
2014-12-15Update Copyright in SwiftKevin Smith
Change-Id: Idb6ef5fa191b1465c0bf46c47e63b695de07fa0b
2014-12-14Add support for new trellis layout for chat windows.Tobias Markmann
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
2014-12-10Fix spell checking by using QSyntaxHighlighter.Tobias Markmann
This fixes spell checking not interfering with Qt's undo stack management anymore. Test-Information: Tested on OS X 10.9.5 with Qt 5.3.2. Change-Id: Icc3aa9f7213856388e4da317525c75ac97da72e3
2014-12-10Fix typos in "Edit Blocking List..." dialog.Tobias Markmann
Test-Information: Tested it now shows the corrected text. Change-Id: Id4d768428064608ba8e034cefdbbe6530e5ee8ef
2014-11-13Correct notification of Qt in EventModel about changes in the model.Tobias Markmann
Test-Information: UI still updates when events are added. Change-Id: Id37a5291ae7a63a46741781298549b9e87f73b8c
2014-11-06Wording improvements in 'Start chat'/'Invite'-dialogs.Tobias Markmann
Test-Information: Builds on OS X and the text changes fit in both usage scenarios from the UX perspecitve. Change-Id: I8c9fe4e5dc3cde9db1c8f852b0b40853a6a861b8
2014-11-06Open context menu for the roster on menu key you find on Windows keyboards.Tobias Markmann
Test-Information: Tested on Windows 8.1. Change-Id: Iec6273023289f2da4de2f22cdbabd8a157830633
2014-11-04Remove old suggestions from contact edit dialog before adding new ones.Tobias Markmann
Previously if we received an updated VCard after the suggestions have already been set we would have duplicate suggestions. Test-Information: Tested by running Swift and editing a contact. Change-Id: I960392fb76a574304d75a358af3f3cfcc9ca3adb
2014-10-31Fix uninitialized members in whiteboard's GView.Tobias Markmann
Test-Information: Still builds with clang (3.6.0) on OS X (10.9.5). Change-Id: I857b66b08d684d08ed8e0c99fb7a981e6842c6a8
2014-10-31Enable unblocking contacts from cog menu.Tobias Markmann
Renamed ChatWindow::setInputEnabled to ChatWindow::setOnline. Moved some input return key disabling logic into QtChatWindow. Test-Information: Tested in Swift, blocking a contact and unblokcing it from cog menu. Return still does not do anything on blocked contacts or when offline. Change-Id: I42faffb8618598fcc7c0bd44148902ea7028258e
2014-10-31Fix source code layout.Tobias Markmann
Change-Id: I5042943377bbb09bc46b416975f546e011c313ee
2014-10-31Pass QString arguments by reference and not value.Tobias Markmann
Test-Information: Still builds with clang (3.6.0) on OS X (10.9.5). Change-Id: I3382e2165a5f14e13ecd48277baefaf728edbbe1
2014-10-30Prevent user from adding contacts twice to a roster.Tobias Markmann
This removes roster JIDs from the suggesting in the 'Add User'-dialog. In addition, an indication is added when a manually entered JID is invalid or already on the roster. Test-Information: Tested scenarios with recent JIDs and JIDs from the roster. Tested that 'Start Chat'-dialog suggestions still work. Change-Id: I1ff51637adb4224184b78a1af9090a04b1e18fff
2014-10-30Add missing virtual and SWIFTEN_OVERRIDE annotations to reduce warnings with ↵Tobias Markmann
C++11. Test-Information: Tested with Clang 3.6.0. Change-Id: I1f9ae8ae535d90f92b7263e86b51fe64b15524b4
2014-10-17Disable online only actions when offline.Tobias Markmann
Disabling action, menu items and drag 'n' drop which require an online connection when the user is offline. Test-Information: Checked by going offline and checking the relevant actions and menu items. Change-Id: Iacfa2c9f815d3b9bbad9ca4c2d0d04f95ce9a9e4
2014-10-16Change text in blocking list editor from 'click' to 'double-click' to reflectTobias Markmann
actual behavior. Test-Information: Swift's blocking list UI works as descibed in the text displayed in the UI. Change-Id: Ic10d907d89dfc43b97aa21132ceb58210de807b4
2014-10-16Fix user experience issues related to blocking list editor.Tobias Markmann
This commit enables complete keyboard accessibility for editing the block list including list navigation via cursor keys, editing via enter key and deletion via backspace. The placeholder item for adding new items is now non-removable and is indicated as such. The 'Save'-button is disabled during processing of a request. The window is closed on 'Save' if no changes have been made or the changes have been applied successfully. On failure the error message is shown in the window. A description text has been added at the top to tell the user about the use of the dialog. Test-Information: Success cases have been tested by running Swift and do change the blocking list via mouse and keyboard and doing no changes at all. Error cases have been tested using a server adjustment which replys with IQ errors on any blocklist change. Change-Id: I028a9dd15e66ba7363a30b66c5d5a15ba2a5a518
2014-10-14Remove empty fields from XEP-0055 search query before sending it over the wire.Tobias Markmann
This clears both, empty fields of XEP-0004 data forms and the XEP-0055 predefiened fixed form. Test-Information: Verified using Swift's debug console and M-Link. Change-Id: I3cd2314abfe5111f66569d39aae9b8587157ec07