100 lines
2.4 KiB
Markdown
100 lines
2.4 KiB
Markdown
# Falkon QML Tutorial - 10. Falkon tabs
|
|
|
|
Hello, in this chapter I will show you how to work with tabs. Keep in
|
|
mind that this is just a short example and always check documentation
|
|
for more information, do not trust me.
|
|
|
|
## Access tabs api
|
|
The tabs API can be accessed through code.
|
|
```qml
|
|
Falkon.Tabs
|
|
```
|
|
More information can be found in the
|
|
[documentation](http://falkon.sgorava.xyz/docs/class_qml_tabs.html).
|
|
|
|
Most of the functions also returns a result of the operation which can
|
|
be either `True` or `False`.
|
|
|
|
## Switching tabs
|
|
The current tab can be changed to `previous`, `next` and based on tab
|
|
`id` as it is stored in Falkon. These function needs to specify the
|
|
`windowId` and the previous and next tab is based on some Falkon
|
|
thing which can be changed at least by C++ addon (investigate
|
|
VerticalTabs extension).
|
|
|
|
```qml
|
|
// the id of the first window is 0, so good enough for an example
|
|
property int window = 0
|
|
|
|
Falkon.Tabs.nextTab(window)
|
|
Falkon.Tabs.previousTab(window)
|
|
Falkon.Tabs.setCurrentIndex({
|
|
windowId: window,
|
|
index: 0
|
|
})
|
|
```
|
|
|
|
## TabBar related operations
|
|
We can `move`, `pin`, `unpin`, `detach`, `duplicate`, `close`, `reload`,
|
|
`stop` loading and `add` a tab.
|
|
|
|
```qml
|
|
// the id of the first window is 0, so good enough for an example
|
|
property int window = 0
|
|
property int tabIndexFirst = 0
|
|
property int tabIndexSecond = 1
|
|
|
|
// Move second tab to the first position
|
|
Falkon.Tabs.moveTab({
|
|
from: tabIndexSecond,
|
|
to: tabIndexFirst,
|
|
windowId: window
|
|
})
|
|
// Create a new tab
|
|
Falkon.Tabs.addTab({
|
|
url: 'https://falkon.org/',
|
|
windowId: window
|
|
})
|
|
|
|
// The other commands are exactly the same
|
|
Falkon.Tabs.pinTab({
|
|
index: tabIndexFirst,
|
|
windowId: window
|
|
})
|
|
Falkon.Tabs.unpinTab({
|
|
index: tabIndexFirst,
|
|
windowId: window
|
|
})
|
|
Falkon.Tabs.detachTab()
|
|
Falkon.Tabs.duplicateTab()
|
|
Falkon.Tabs.closeTab()
|
|
Falkon.Tabs.reloadTab()
|
|
Falkon.Tabs.stopTab()
|
|
```
|
|
|
|
## Misc
|
|
Next we can get an exact tab or all tabs in given window, tab counts and
|
|
search in tabs.
|
|
|
|
```qml
|
|
// the id of the first window is 0, so good enough for an example
|
|
property int window = 0
|
|
property int tabIndexFirst = 0
|
|
|
|
var tab = Falkon.Tabs.get({
|
|
index: tabIndexFirst,
|
|
windowId: window
|
|
})
|
|
var tabsAll = Falkon.Tabs.getAll({
|
|
windowId: window,
|
|
withPinned: true
|
|
})
|
|
vat tabs = Falkon.Tabs.search({
|
|
title: 'Falkon',
|
|
url: 'https://falkon.org/',
|
|
withPinned: true
|
|
})
|
|
var tabsNormal = Falkon.Tabs.normalTabsCount(window)
|
|
var tabsPinned = Falkon.Tabs.pinnedTabsCount(window)
|
|
```
|