summaryrefslogtreecommitdiffstats
path: root/Swift
AgeCommit message (Collapse)Author
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-28Fix typo in ChatController regarding Message ReceiptsTobias Markmann
Test-Information: None. Change-Id: If02bc8bf250b129522bbeb841f699ccea9721422
2015-03-27Fix terminology inconsistency "Organisation" -> "Organization"Tobias Markmann
Test-Information: Verified in the UI after a build. Change-Id: I7586fc5c8f3bd4de4ea8e52e70ced3f9b50244f7
2015-03-27Improve Windows MSI installer upgrade experienceTobias Markmann
Previously every time WiX heat.exe ran it generated new GUIDs for all the file components that MSI was going to install. Windows installer deletes components if there is no software/component left that is referencing it. This patch uses the -ag flag instead of the -gg flag for heat.exe so it will generate deterministic GUIDs based on the filename and other things instead of completely random new one on each run. In addition we schedule the upgrade to run after the new version has been installed. This way old files are first replaced with the new ones, shortcuts remain and are not deleted, pinned shortcuts remain usable. Afterwards MSI uninstalls the old version, specifically the components that are not reference anymore. Test-Information: Tested (a) two version upgrade with this patch and (b) an upgrade from a version without this patch to a version with this patch. a) The upgrade works as expected. MSI installs the new version and then uninstalls the old version. The pinned shortcut stays alive and works. b) In this case during the deinstallation files of the new installation are deleted, since there are two components with different GUIDs which however use the same filenames. Running a repair on this installation, or first deinstalling the old version and then the new one manually fixes this. Change-Id: I842a288d837962e77efaa15b17d3877e923c7e49
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-03-24Don't crash when the UI doesn't provide a user search windowKevin Smith
Change-Id: I9c8692e0c4f36877591385a7580cb8a2107bd68f
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-17Fix terminology: 'join room' -> 'enter room'Tobias Markmann
Test-Information: None. Change-Id: I022a65c64e73e1ae70ee21673fa5cce7afbe51a6
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-11Do not try highlight words if no text and background colours are specifiedTobias Markmann
The tests have been adjusted so a colour is set in their highlight actions. Test-Information: Tested with a "own nick" highlight rule with a "No highlight" action and one with highlights colours set. The cases now work as expected. Added a unit test that checks that no highlighting happens when no colour is specified. Change-Id: Ied48d8c2e033531c1b0532348b9380e1bd884b44
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 unused parameter warnings in some testing headersKevin Smith
Test-Information: Warnings went away in another project using these headers Change-Id: I336925153a4a549bb33cc977c6a483ec81cd1ff6
2015-02-09Fix sender text that is used for matching highlight rulesTobias Markmann
Old behavior: MUC group messages are matched against the nickname as sender. MUC 1-to-1 messages and classic 1-to-1 messages are matched against the display name as sender. New behavior: MUC group messages are matched against the nickname as sender. MUC 1-to-1 messages are matched against the nickname as sender. Classic 1-to-1 messages are matched against the bare JID as sender. Test-Information: Tested on Mac OS X 10.9.5 that a chat rule matching a nickname string and a rule matching a full JID are highlighted correctly. Change-Id: Icaee2c946e34fceb6b1d40561674030740555de1
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-06Document the less self-explaining setting constantsTobias Markmann
Test-Information: None required. Change-Id: If267201ea28e894a9f79335972b71611b0058912
2015-02-05Fix typoKevin Smith
Thanks Zash Change-Id: I696ab1e44b24e6b3fe2f829b854af3dbffcc0beb
2015-02-05Fix ASAN reported use-after-free errorTobias Markmann
The class connects to SettingsProvider::onSettingChanged in its c-tor but never disconnects from the signal. When an instance is deleted and the signal is called afterwards it will call the method which will try to access class members which have already been deleted. Test-Information: Tested on OS X 10.9.5. ASAN reported it sometimes on exit. Have not been able to reproduc it anymore with this fix. Change-Id: I7f1d815dca87f84a4ae93a5455307e261a1ee329
2015-02-05Correctly render MUC system messages as system messagesTobias Markmann
Messages received from a MUC bare JID in a MUC have been rendered as user messages in the past. They are now rendered as system messages. Test-Information: Tested with a MUC component that sends a bare message on login. Change-Id: I9a548ec9b81db8ba329182e08446d72c3518c7cb
2015-02-05Add default hightlight rule that matches for the own nicknameTobias Markmann
Test-Information: Tested on OS X 10.9.5. Change-Id: I2ed72f0147a1dacd6e146e4d3b4c2d05ea1c7a85
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