Age | Commit message (Collapse) | Author |
|
Test-Information:
From view menu chose "Change Layout". Cancelled the trellis resizer
using Escape.
Change-Id: I82e196f813cf34db9b50d812ce0597975432869f
|
|
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 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
|
|
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
|
|
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
|
|
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
|
|
Test-Information:
Unit tests pass on Debian 8.
Change-Id: I648f97a3ebd2c798df809a1f2cb37b689df94f42
|
|
The issue is visible when having two chat windows with the
same label. One of them is elided even though enough horizontal
space is available.
Test-Information:
Tested multiple chats including some with the same tab
label.
Tested many open chat windows overflowing the horizontal space
of the tab bar to test scroll behavior on overflow.
Verified that the code stops the early eliding bug on
OS X 10.10.5 with Qt 5.4.2.
Verified that workaround is not needed on Debian 8.2 with
Qt 5.4.2.
Change-Id: I2dc0d417fb6f402dda2f7575a83ca3faf4eb63cf
|
|
Test-Information:
Verified that using trellis shortcuts does not crash Swift
anymore if no chat window is open.
Change-Id: Ie5c7b4675c89c8481cad48f2a348e6520ac42b13
|
|
Bugs like:
* Tab title not matching shown chat window
* Duplicated tab titles after tab movement
Swift is also subject to QTBUG-36455, which is fixed for Qt >= 5.3.0.
This commit removes the use of application wide focus handlers in
QtChatWindow class, the QtChatWindow::qAppFocusChanged method.
The reason for this is due to the way QTabBar::moveTab is implemented
in Qt which we use for the Trellis feature.
Internally QTabBar::moveTab first adjusts its tab bar labels, then
removes the tab from its old location in the internal QStackedLayout
and then inserts it in the new location. After the remove Qt gives
focus to another widget via a focus change that does not go through
the event loop of the application and is not interceptable with
eventFilters.
Previously we would set the focus and call other signals in the
application wide focus change handler which then used the currently
inconsistent QTabBar/QTabWidget.
Test-Information:
Tested tab switching and movement on Windows 8 (Qt 5.3.2),
OS X 10.9.5 (Qt 5.4.3) and Ubuntu 14.04.2 LTS (Qt 5.4.3).
Change-Id: Ief423c4add58a90279109f72fac95fc58cb71111
|
|
Popup windows cannot change the mouse cursor on OS X. A frameless
window looks the same.
Test-Information:
Tested on OS X 10.9.5 with Qt 5.4.
Change-Id: Ia97e645be2ad1e5063f0cd8ef54344b63274b2d1
|
|
Test-Information:
Tested on Mac OS X 10.9.5 with Qt 5.4.
Change-Id: I7581ae478fb347bb468b28997be963799b82b2cb
|
|
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
|
|
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
|
|
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
|
|
Test-Information:
None.
Change-Id: Iaff0108547658e1b103905c78fac5d1faf3a15e1
|
|
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
|
|
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
|