status-desktop/ui/app/AppLayouts/Browser/panels/FavoritesBar.qml

65 lines
2.1 KiB
QML

import QtQuick 2.13
import QtQuick.Layouts 1.13
import utils 1.0
import StatusQ.Controls 0.1
RowLayout {
id: favoritesBar
property alias bookmarkModel: bookmarkList.model
spacing: 0
height: bookmarkModel.rowCount() > 0 ? 38: 0
ListView {
id: bookmarkList
spacing: Style.current.halfPadding
orientation : ListView.Horizontal
height: parent.height
clip: true
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
width: parent.width
boundsBehavior: Flickable.StopAtBounds
delegate: StatusFlatButton {
id: favoriteBtn
height: 32
icon.source: imageUrl
icon.width: 24
icon.height: 24
text: name
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
z: 51
onClicked: function (mouse) {
const isAddBookmarkButton = url === Constants.newBookmark
if (mouse.button === Qt.RightButton && isAddBookmarkButton) {
return
}
if (mouse.button === Qt.RightButton) {
favoriteMenu.url = url
favoriteMenu.x = favoriteBtn.x + mouse.x
favoriteMenu.y = Qt.binding(function () {return mouse.y + favoriteMenu.height})
favoriteMenu.open()
return
}
if (isAddBookmarkButton) {
addFavoriteModal.toolbarMode = true
addFavoriteModal.ogUrl = browserHeader.currentFavorite ? browserHeader.currentFavorite.url : currentWebView.url
addFavoriteModal.ogName = browserHeader.currentFavorite ? browserHeader.currentFavorite.name : currentWebView.title
addFavoriteModal.open()
return
}
currentWebView.url = determineRealURL(url)
}
}
}
}
}