David Rosca
31e4d5fd5f
TabWidget: Fix saving last closed tab with "no quit on closing last tab" option
...
Closes #2596
2018-02-09 18:14:35 +01:00
David Rosca
2283b41fdc
TabBar: Fix calculating pinned tab width
...
It takes into account cornerWidth and calculates correct value with RTL.
For the last time now hopefully.
2018-02-06 17:40:31 +01:00
David Rosca
c506283534
ComboTabBar: Disable tab drag bounds with RTL
2018-02-06 17:40:27 +01:00
David Rosca
6c94d40187
BrowserWindow: Make Ctrl+PgUp/Down shortcuts use tab bar order
2018-02-06 17:39:47 +01:00
David Rosca
beeb68f7a6
TabMruModel: Ignore moving already first index
2018-02-06 17:39:42 +01:00
David Rosca
71f5d72a65
Move last tab tracking from TabWidget to TabBar
2018-02-06 17:39:37 +01:00
David Rosca
94e6b98450
TabModel: Check return value of beginMoveRows
2018-02-06 17:39:26 +01:00
David Rosca
b933e87c99
Add TabMruModel
...
Sorts tabs in most recently used order.
2018-02-06 17:39:05 +01:00
David Rosca
67e82e8923
TabTreeModel: Fix reordering tabs in the same tree with drag&drop
2018-02-05 16:49:31 +01:00
David Rosca
ea432a7de7
TabContextMenu: Add Options flags
2018-02-05 16:44:44 +01:00
David Rosca
825ee7ea96
Revert "TabContextMenu: Require only WebTab in constructor"
...
This broke context menu on empty tab bar space.
This reverts commit e791e77045b572af02d27f7a15ae082a4a13814c.
2018-02-05 16:44:39 +01:00
David Rosca
408b2ffad6
TabWidget: Add public webTab method
...
Also cleanup tabbedwebview.h includes.
2018-02-05 16:44:23 +01:00
David Rosca
fbbe3c6385
TabTreeModel: Ignore dropping child on its parent
2018-02-04 17:23:52 +01:00
David Rosca
9eccf4fae3
TabModel: Rework drag&drop logic
...
Use QMimeData subclass to safely pass pointers.
Only allow to drop one tab at a time and disable drop action
when not possible. Allow to move tabs to other windows, with the
exception of tabs with children.
2018-02-04 17:23:06 +01:00
David Rosca
ca15006145
TabWidget: Track last WebTab instead of only index
2018-02-04 17:22:05 +01:00
David Rosca
ee2e1e9f78
TabWidget: Add BrowserWindow accessor
2018-02-04 17:21:47 +01:00
David Rosca
0bf881c168
Plugins: Hook key events in TabWidget
2018-02-04 17:21:42 +01:00
David Rosca
4ad6d6cda1
TabTreeModel: Only sync top-level tabs when closing window
...
Otherwise reordering tabs is too distracting when tabbar is visible.
2018-02-04 17:18:39 +01:00
David Rosca
e9f3679bb1
TabTreeModel: Sync top-level tabs with main tabbar
...
This way the order of top-level tabs is also preserved in session.
2018-02-04 17:18:23 +01:00
David Rosca
9f4ac24cf8
TabBar: Initialize pinned tab width from real tab
...
Calculates the padding between tab border and icon from tabRect
instead of using style pixel metric which was oftentimes incorrect.
Pinned tabs should now have correct size and icon be perfectly centered
with all possible widget and qss styles.
2018-02-04 16:58:35 +01:00
David Rosca
0c7245fa9f
TabContextMenu: Require only WebTab in constructor
2018-02-04 16:58:08 +01:00
David Rosca
349f6b9c32
TabWidget: Fix emitting tabMoved when pinning tabs
2018-02-04 16:57:49 +01:00
David Rosca
188082b690
TabModel: Add AudioPlayingRole and AudioMutedRole
2018-02-04 16:56:04 +01:00
David Rosca
47be65f903
TabIcon: Make static image data public
2018-02-04 16:47:25 +01:00
David Rosca
59dbfc1f48
TabTreeModel: Reset model when source resets
2018-01-31 21:06:33 +01:00
David Rosca
ebaab19f88
TabWidget: Correctly emit tabRemoved when detaching tab
2018-01-31 21:05:56 +01:00
David Rosca
43e472e50e
TabBar: Disallow detaching tab when there is only one tab in the only window
...
Otherwise it would close the last window which would quit the app.
2018-01-31 21:05:48 +01:00
David Rosca
dc8ddb03c1
TabTreeModel: Don't allow to move pinned tabs
2018-01-31 21:05:41 +01:00
David Rosca
85def54d3c
WebTab: Preserve order of child tabs in session file
2018-01-31 21:05:30 +01:00
David Rosca
e57fb65c95
Add TabTreeModel
...
This model orders tabs in "Tree Style Tabs" fashion.
2018-01-31 21:03:06 +01:00
David Rosca
57b605e4e0
TabModel: add CurrentTabRole and LoadingRole
2018-01-31 21:01:36 +01:00
David Rosca
a8bda61f3e
TabModel: Remove ParentTabRole and ChildTabsRole
2018-01-31 21:00:20 +01:00
David Rosca
1b473ac580
Detach WebTab when removing tab
...
That way tab is removed from parent and children before
it is removed from tabbar.
2018-01-31 20:56:48 +01:00
David Rosca
72c4b605a5
TabModel: Implement drag&drop
2018-01-31 20:56:39 +01:00
David Rosca
61299c89b6
WebTab: Save parent tab index in session file
2018-01-31 20:55:35 +01:00
David Rosca
e44877d4c7
WebTab: Add parentTab and childTabs properties
2018-01-31 20:54:59 +01:00
David Rosca
2377503517
Add TabModel
2018-01-31 20:54:50 +01:00
David Rosca
1fe7f0c232
Correctly handle possibility that page changes in WebView
2018-01-28 22:41:08 +01:00
David Rosca
b5d872f64e
TabContextMenu: Add Load Tab action
2018-01-28 22:40:46 +01:00
David Rosca
ba75905134
TabContextMenu: Add Unload Tab action
...
Closes #2563
2018-01-24 15:15:03 +01:00
David Rosca
0b1d9e0b16
TabIcon: Don't resize to (0,0) when hiding
...
ComboTabBar depends on tab button position for calculating
drag offset and it breaks with some themes that returns invalid
subElementRect for buttons with (0,0) size.
2018-01-13 16:42:54 +01:00
David Rosca
cf5831d1db
ComboTabBar: Ignore buttons that returns invalid element rect in dragOffset
...
Closes #2546
2018-01-13 16:42:35 +01:00
David Rosca
b21e2634bc
ComboTabBar: Only reset dragInProgress on left mouse button release
2018-01-13 16:42:30 +01:00
David Rosca
54bad20590
ComboTabBar: Fix division by zero when icon pixmap is null
2018-01-13 16:42:24 +01:00
David Rosca
195d3f2b93
TabWidget: Reset zoom when resetting tab when closing last tab
...
Closes #2540
2018-01-11 19:56:19 +01:00
David Rosca
5cd580d284
ComboTabBar: Update moving tab contents during drag
...
Unlike QTabBar, ComboTabBar now redraws contents of moving tab.
2018-01-11 19:50:31 +01:00
David Rosca
d7146519b4
ComboTabBar: Fix draggedTabRect returning rect of current instead of pressed index
2018-01-11 19:50:26 +01:00
David Rosca
b2de2a00f4
ComboTabBar: Fix tabPixmap with high-dpi
2018-01-11 19:50:23 +01:00
David Rosca
516bd92089
TabBar: Allow to change width of tabs using style sheets
...
It can be set in themes or in userChrome.css as in example.
/* userChrome.css */
TabBarTabMetrics
{
qproperty-normalMaxWidth: 250;
qproperty-normalMinWidth: 150;
qproperty-activeMinWidth: 150;
qproperty-overflowedWidth: 150;
qproperty-pinnedWidth: 35;
}
2018-01-11 19:49:12 +01:00
David Rosca
95921692be
ComboTabBar: Apply padding adjustment to all tabs
2018-01-11 19:49:03 +01:00