diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusBaseButton.qml b/ui/StatusQ/src/StatusQ/Controls/StatusBaseButton.qml index 8544ce2a7ba..6cc83ac7982 100644 --- a/ui/StatusQ/src/StatusQ/Controls/StatusBaseButton.qml +++ b/ui/StatusQ/src/StatusQ/Controls/StatusBaseButton.qml @@ -74,7 +74,7 @@ AbstractButton { readonly property color textColor: { if (!root.interactive || !root.enabled) return root.disabledTextColor - if (root.hovered) + if (pointerHoverHandler.hovered) return root.textHoverColor return root.textColor } @@ -246,7 +246,7 @@ AbstractButton { StatusToolTip { id: tooltip objectName: "buttonTooltip" - visible: tooltip.text !== "" && root.hovered && !root.pressed + visible: tooltip.text !== "" && pointerHoverHandler.hovered && !root.pressed offset: -(tooltip.x + tooltip.width/2 - root.width/2) } @@ -266,8 +266,8 @@ AbstractButton { StatusRoundIcon { asset.name: root.icon.name - asset.width: d.iconSize - asset.height: d.iconSize + asset.width: root.icon.width + asset.height: root.icon.height asset.color: root.icon.color asset.bgColor: root.asset.bgColor } diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml b/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml index d395747026a..4ce5fef45a5 100644 --- a/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml +++ b/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml @@ -46,7 +46,7 @@ TextField { return "transparent" if (root.cursorVisible) return Theme.palette.primaryColor1 - return hoverHandler.hovered ? Theme.palette.primaryColor2 : "transparent" + return hoverHandler.hovered ? Theme.palette.primaryColor2 : Theme.palette.primaryColor3 } } diff --git a/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogFooter.qml b/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogFooter.qml index 859b9f47a63..aca28714fbf 100644 --- a/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogFooter.qml +++ b/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogFooter.qml @@ -16,8 +16,8 @@ Control { property color color: Theme.palette.statusModal.backgroundColor property bool dropShadowEnabled - spacing: Theme.halfPadding - padding: Theme.padding + spacing: Theme.defaultHalfPadding + padding: Theme.defaultPadding bottomPadding: padding + root.parent.SafeArea.margins.bottom background: Rectangle { diff --git a/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogHeader.qml b/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogHeader.qml index 5de5c4e5dc8..a242f5f40ae 100644 --- a/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogHeader.qml +++ b/ui/StatusQ/src/StatusQ/Popups/Dialog/StatusDialogHeader.qml @@ -30,15 +30,10 @@ ToolBar { position: ToolBar.Top background: StatusDialogBackground { color: root.color - radius: root.radius - - // cover for the bottom rounded corners - Rectangle { - width: parent.width - height: parent.radius - anchors.bottom: parent.bottom - color: parent.color - } + topLeftRadius: root.radius + topRightRadius: root.radius + bottomLeftRadius: 0 + bottomRightRadius: 0 } Item { @@ -55,7 +50,7 @@ ToolBar { anchors { fill: parent - margins: Theme.padding + margins: Theme.defaultPadding } spacing: Theme.halfPadding diff --git a/ui/StatusQ/src/assets/png/browser/new_tab.png b/ui/StatusQ/src/assets/png/browser/new_tab.png new file mode 100644 index 00000000000..754a0efe819 Binary files /dev/null and b/ui/StatusQ/src/assets/png/browser/new_tab.png differ diff --git a/ui/StatusQ/src/assets/png/browser/new_tab_dark.png b/ui/StatusQ/src/assets/png/browser/new_tab_dark.png new file mode 100644 index 00000000000..f77776a89db Binary files /dev/null and b/ui/StatusQ/src/assets/png/browser/new_tab_dark.png differ diff --git a/ui/StatusQ/src/assets/png/browser/pepehand.png b/ui/StatusQ/src/assets/png/browser/pepehand.png deleted file mode 100644 index e32f23925e5..00000000000 Binary files a/ui/StatusQ/src/assets/png/browser/pepehand.png and /dev/null differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png index 7ac1d5060fb..766b68f9cbe 100644 Binary files a/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png index 9ef774be10a..581cdce0147 100644 Binary files a/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png index 0744ea13b6d..7fdeb6c6897 100644 Binary files a/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png index 19617c7fc44..45dcfc84704 100644 Binary files a/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png differ diff --git a/ui/StatusQ/src/assets/png/png.qrc b/ui/StatusQ/src/assets/png/png.qrc index afadb091cc8..3b44fa7e240 100644 --- a/ui/StatusQ/src/assets/png/png.qrc +++ b/ui/StatusQ/src/assets/png/png.qrc @@ -10,7 +10,8 @@ appearance-system.png backup-popup.png browser/chooseBrowserImage@2x.png - browser/pepehand.png + browser/new_tab.png + browser/new_tab_dark.png chat/chat@2x.png chat/request_payment_banner.png chat/wave.png diff --git a/ui/app/AppLayouts/Browser/BrowserLayout.qml b/ui/app/AppLayouts/Browser/BrowserLayout.qml index dddb3f5b113..8bdb70f3957 100644 --- a/ui/app/AppLayouts/Browser/BrowserLayout.qml +++ b/ui/app/AppLayouts/Browser/BrowserLayout.qml @@ -57,8 +57,8 @@ StatusSectionLayout { signal sendToRecipientRequested(string address) - function openUrlInNewTab(url, initialTitle) { - Qt.callLater(() => _internal.addNewTab(root.browserRootStore.determineRealURL(url), initialTitle)) + function openUrlInNewTab(url, initialTitle, activate=false) { + Qt.callLater(() => _internal.addNewTab(root.browserRootStore.determineRealURL(url), initialTitle, activate)) } function reloadCurrentTab() { @@ -144,12 +144,17 @@ StatusSectionLayout { tabs.activateTab(tabs.count - 1) } - function addNewTab(url, initialTitle) { + function addNewTab(url, initialTitle = undefined, activate = false) { var tab = webViewContext.createEmptyTab(tabs.count !== 0 ? currentWebView.profileParams : connectorBridge.defaultProfileParams, false, true, url, initialTitle); - browserToolbarLoader.activateAddressBar() + if (activate) + browserToolbarLoader.activateAddressBar() return tab; } + function addNewEmptyTab() { + addNewTab("", "", true) + } + function onRequestLaunchInBrowser(url) { if (localAccountSensitiveSettings.useBrowserEthereumExplorer !== Constants.browserEthereumExplorerNone && url.startsWith("0x")) { webViewContext.setCurrentWebUrl(root.browserRootStore.get0xFormedUrl(localAccountSensitiveSettings.useBrowserEthereumExplorer, url)) @@ -301,7 +306,7 @@ StatusSectionLayout { determineRealURL: function(url) { return root.browserRootStore.determineRealURL(url) } - onOpenNewTabTriggered: _internal.addNewTab() + onOpenNewTabTriggered: _internal.addNewEmptyTab() fnGetWebView: (index) => { return webViewContext.getWebView(index) } @@ -321,6 +326,10 @@ StatusSectionLayout { mobileAddressBar.activateAddressBar() else item.activateAddressBar() + Qt.callLater(() => { + if (!InputMethod.visible) + InputMethod.show() + }) } Connections { @@ -555,6 +564,7 @@ StatusSectionLayout { onResetZoomFactor: webViewContext.resetZoomCurrent() onNextTabRequested: tabs.activateNextTab() onPreviousTabRequested: tabs.activatePreviousTab() + onRemoveViewRequested: webViewContext.removeView(tabs.currentIndex || 0) } } @@ -636,7 +646,8 @@ StatusSectionLayout { incognitoMode: _internal.currentTabIncognito zoomFactor: _internal.currentWebView?.zoomFactor ?? 1 - onAddNewTab: _internal.addNewTab() + browserSettings: localAccountSensitiveSettings + onAddNewTab: _internal.addNewEmptyTab() onAddNewDownloadTab: _internal.addNewDownloadTab() onGoIncognito: (checked) => root.applyIncognitoMode(checked) onZoomIn: webViewContext.changeZoomCurrent(0.1) @@ -717,8 +728,7 @@ StatusSectionLayout { bookmarksModel: root.bookmarksStore.bookmarksModel onActivateTabRequested: tabIndex => tabs.activateTab(tabIndex) - onAddTabRequested: _internal.addNewTab() - onAddBookmarkRequested: _internal.openFavoriteModal() + onAddTabRequested: _internal.addNewEmptyTab() onEditBookmarkRequested: (url, name) => _internal.openFavoriteModal(true, url, name) onDeleteBookmarkRequested: url => root.bookmarksStore.deleteBookmark(url) onBookmarkClicked: url => root.openUrlInNewTab(url) diff --git a/ui/app/AppLayouts/Browser/adapters/AbstractWebView.qml b/ui/app/AppLayouts/Browser/adapters/AbstractWebView.qml index 1a41dc5b02f..6c0fc1d1a46 100644 --- a/ui/app/AppLayouts/Browser/adapters/AbstractWebView.qml +++ b/ui/app/AppLayouts/Browser/adapters/AbstractWebView.qml @@ -86,6 +86,7 @@ Item { signal linkHovered(string hoveredUrl) signal windowCloseRequested() signal downloadRequested(var download) + signal devToolsToggled(bool enabled) // Signals to be handled at Layout level // newWindowRequested passes ready-to-use parameters for tab creation: diff --git a/ui/app/AppLayouts/Browser/adapters/LazyWebViewAdapter.qml b/ui/app/AppLayouts/Browser/adapters/LazyWebViewAdapter.qml index 89dadc0a786..7f346d11585 100644 --- a/ui/app/AppLayouts/Browser/adapters/LazyWebViewAdapter.qml +++ b/ui/app/AppLayouts/Browser/adapters/LazyWebViewAdapter.qml @@ -115,5 +115,6 @@ AbstractWebView { function onCertificateError(error) { root.certificateError(error) } function onJavaScriptDialogRequested(request) { root.javaScriptDialogRequested(request) } function onFindTextFinished(result) { root.findTextFinished(result) } + function onDevToolsToggled(enabled) { root.devToolsToggled(enabled) } } } diff --git a/ui/app/AppLayouts/Browser/adapters/WebViewAdapter.qml b/ui/app/AppLayouts/Browser/adapters/WebViewAdapter.qml index e1027613d6d..60f6870bb0b 100644 --- a/ui/app/AppLayouts/Browser/adapters/WebViewAdapter.qml +++ b/ui/app/AppLayouts/Browser/adapters/WebViewAdapter.qml @@ -216,9 +216,7 @@ AbstractWebView { inspectedView: root.devToolsEnabled ? webView : null settings.forceDarkMode: Application.styleHints.colorScheme === Qt.ColorScheme.Dark - onWindowCloseRequested: { - root.devToolsEnabled = false - } + onWindowCloseRequested: root.devToolsToggled(false) } Binding { diff --git a/ui/app/AppLayouts/Browser/controls/BrowserAddressField.qml b/ui/app/AppLayouts/Browser/controls/BrowserAddressField.qml index 28026a4a86c..9697fcc9c75 100644 --- a/ui/app/AppLayouts/Browser/controls/BrowserAddressField.qml +++ b/ui/app/AppLayouts/Browser/controls/BrowserAddressField.qml @@ -23,14 +23,13 @@ StatusTextField { background: Rectangle { color: root.bgColor - radius: root.height + radius: Theme.radius } verticalAlignment: TextInput.AlignVCenter leftPadding: showFavicon ? Theme.halfPadding + favicon.width + favicon.anchors.leftMargin : Theme.padding rightPadding: clearButton.width placeholderText: qsTr("Search or enter address") - font.pixelSize: Theme.fontSize(14) color: root.incognitoMode ? Theme.palette.privacyColors.tertiary : Theme.palette.textColor inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase | Qt.ImhSensitiveData @@ -49,7 +48,7 @@ StatusTextField { StatusRoundedImage { id: favicon visible: root.showFavicon - height: parent.height/2 + height: parent.height*.6 width: height anchors.left: parent.left anchors.leftMargin: height/2 diff --git a/ui/app/AppLayouts/Browser/controls/BrowserHeaderButton.qml b/ui/app/AppLayouts/Browser/controls/BrowserHeaderButton.qml index 3744656aa04..e74b167185b 100644 --- a/ui/app/AppLayouts/Browser/controls/BrowserHeaderButton.qml +++ b/ui/app/AppLayouts/Browser/controls/BrowserHeaderButton.qml @@ -11,12 +11,14 @@ StatusFlatButton { signal contextMenuRequested(var parent, point pos) // as per design - implicitWidth: 36 - implicitHeight: 36 + implicitWidth: 44 + implicitHeight: 44 radius: width/2 padding: 4 - asset.color: { + icon.width: 28 + icon.height: 28 + icon.color: { if (!root.enabled || !root.interactive) { return root.incognitoMode ? Theme.palette.privacyColors.tertiaryOpaque: diff --git a/ui/app/AppLayouts/Browser/panels/BrowserLandscapeToolbar.qml b/ui/app/AppLayouts/Browser/panels/BrowserLandscapeToolbar.qml index b44adef386d..1b442a23111 100644 --- a/ui/app/AppLayouts/Browser/panels/BrowserLandscapeToolbar.qml +++ b/ui/app/AppLayouts/Browser/panels/BrowserLandscapeToolbar.qml @@ -95,7 +95,10 @@ BrowserToolbarBase { Divider {} DappsComboBox { - spacing: Theme.halfPadding + Layout.preferredWidth: 44 + Layout.preferredHeight: 44 + iconSize: 28 + spacing: Theme.defaultHalfPadding incognitoMode: root.currentTabIncognito popupDirectParent: root @@ -141,7 +144,7 @@ BrowserToolbarBase { width: parent.width horizontalAlignment: Text.AlignHCenter - font.pixelSize: Theme.fontSize(11) + font.pixelSize: Theme.fontSize(12) color: parent.asset.color font.weight: Font.DemiBold text: root.openTabsCount diff --git a/ui/app/AppLayouts/Browser/panels/BrowserPortraitToolbar.qml b/ui/app/AppLayouts/Browser/panels/BrowserPortraitToolbar.qml index e82bc1e737f..412d8ceb2bd 100644 --- a/ui/app/AppLayouts/Browser/panels/BrowserPortraitToolbar.qml +++ b/ui/app/AppLayouts/Browser/panels/BrowserPortraitToolbar.qml @@ -28,7 +28,7 @@ BrowserToolbarBase { width: parent.width horizontalAlignment: Text.AlignHCenter - font.pixelSize: Theme.fontSize(11) + font.pixelSize: Theme.fontSize(12) color: parent.asset.color font.weight: Font.DemiBold text: root.openTabsCount diff --git a/ui/app/AppLayouts/Browser/panels/FindBar.qml b/ui/app/AppLayouts/Browser/panels/FindBar.qml index 5d7381fb0fe..0d5c8a54e34 100644 --- a/ui/app/AppLayouts/Browser/panels/FindBar.qml +++ b/ui/app/AppLayouts/Browser/panels/FindBar.qml @@ -98,7 +98,8 @@ Rectangle { color: Theme.palette.baseColor2 radius: Theme.radius } - font.pixelSize: Theme.fontSize(14) + inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhSensitiveData + EnterKey.type: Qt.EnterKeySearch Layout.fillWidth: true Layout.fillHeight: true onAccepted: root.findNext() @@ -109,33 +110,33 @@ Rectangle { StatusBaseText { text: root.activeMatch + "/" + root.numberOfMatches visible: findTextField.text !== "" - font.pixelSize: Theme.fontSize(14) } - StatusFlatRoundButton { - implicitWidth: 32 - implicitHeight: 32 + FindBarButton { icon.name: "chevron-up" enabled: root.numberOfMatches > 0 type: StatusFlatRoundButton.Type.Tertiary onClicked: root.findPrevious() } - StatusFlatRoundButton { - implicitWidth: 32 - implicitHeight: 32 + FindBarButton { icon.name: "chevron-down" enabled: root.numberOfMatches > 0 type: StatusFlatRoundButton.Type.Tertiary onClicked: root.findNext() } - StatusFlatRoundButton { - implicitWidth: 32 - implicitHeight: 32 - icon.name: "close-circle" + FindBarButton { + icon.name: "close" type: StatusFlatRoundButton.Type.Tertiary onClicked: root.visible = false } } + + component FindBarButton: StatusFlatRoundButton { + Layout.fillHeight: true + Layout.preferredWidth: height + icon.width: 28 + icon.height: 28 + } } diff --git a/ui/app/AppLayouts/Browser/panels/MobileAddressBar.qml b/ui/app/AppLayouts/Browser/panels/MobileAddressBar.qml index 1fb24b476fc..d89158696a0 100644 --- a/ui/app/AppLayouts/Browser/panels/MobileAddressBar.qml +++ b/ui/app/AppLayouts/Browser/panels/MobileAddressBar.qml @@ -48,7 +48,7 @@ Control { } contentItem: RowLayout { - spacing: 4 + spacing: 0 BrowserAddressField { id: addressBar @@ -88,7 +88,8 @@ Control { DappsComboBox { Layout.fillHeight: true Layout.preferredWidth: height - spacing: Theme.halfPadding + iconSize: 28 + spacing: Theme.defaultHalfPadding visible: !addressBar.cursorVisible incognitoMode: root.incognitoMode popupDirectParent: root @@ -124,8 +125,9 @@ Control { tooltip.text: qsTr("Close") tooltip.orientation: StatusToolTip.Orientation.Bottom icon.name: "close" - icon.width: 24 - icon.height: 24 + icon.width: 28 + icon.height: 28 + isRoundIcon: true onClicked: root.deactivateAddressBar() } } diff --git a/ui/app/AppLayouts/Browser/popups/BrowserSettingsMenu.qml b/ui/app/AppLayouts/Browser/popups/BrowserSettingsMenu.qml index 0dfcf0181bf..fcf266b97e9 100644 --- a/ui/app/AppLayouts/Browser/popups/BrowserSettingsMenu.qml +++ b/ui/app/AppLayouts/Browser/popups/BrowserSettingsMenu.qml @@ -12,6 +12,7 @@ StatusMenu { required property bool incognitoMode required property real zoomFactor + required property var browserSettings visualizeShortcuts: true @@ -127,9 +128,9 @@ StatusMenu { icon.name: "gavel" shortcut: "F12" checkable: true - checked: localAccountSensitiveSettings.devToolsEnabled + checked: browserSettings.devToolsEnabled onTriggered: { - localAccountSensitiveSettings.devToolsEnabled = !localAccountSensitiveSettings.devToolsEnabled + browserSettings.devToolsEnabled = !browserSettings.devToolsEnabled } } diff --git a/ui/app/AppLayouts/Browser/popups/MobileSettingsMenu.qml b/ui/app/AppLayouts/Browser/popups/MobileSettingsMenu.qml index a3302b060c3..6de23d6902b 100644 --- a/ui/app/AppLayouts/Browser/popups/MobileSettingsMenu.qml +++ b/ui/app/AppLayouts/Browser/popups/MobileSettingsMenu.qml @@ -31,8 +31,7 @@ StatusDialog { footer: null contentItem: ColumnLayout { - StatusListItem { - Layout.fillWidth: true + SettingsListItem { visible: root.supportsIncognito title: qsTr("Incognito") asset.name: "privacy" @@ -48,8 +47,7 @@ StatusDialog { root.close() } } - StatusListItem { - Layout.fillWidth: true + SettingsListItem { visible: root.supportsFind title: qsTr("Find in page") asset.name: "search-custom" @@ -58,14 +56,13 @@ StatusDialog { root.close() } } - StatusListItem { - id: zoomItem - Layout.fillWidth: true + SettingsListItem { visible: root.supportsZoom title: qsTr("Zoom") asset.name: "zoom" components: [ RowLayout { + spacing: Theme.defaultHalfPadding StatusFlatButton { icon.name: "zoom-out" tooltip.text: qsTr("Zoom Out") @@ -100,9 +97,7 @@ StatusDialog { root.close() } } - - StatusListItem { - Layout.fillWidth: true + SettingsListItem { title: qsTr("Settings") asset.name: "settings" onClicked: { @@ -111,4 +106,10 @@ StatusDialog { } } } + + component SettingsListItem: StatusListItem { + Layout.fillWidth: true + asset.width: 24 + asset.height: 24 + } } diff --git a/ui/app/AppLayouts/Browser/popups/TabsBookmarksOverviewModal.qml b/ui/app/AppLayouts/Browser/popups/TabsBookmarksOverviewModal.qml index 49152e9cc21..900abdfe5f9 100644 --- a/ui/app/AppLayouts/Browser/popups/TabsBookmarksOverviewModal.qml +++ b/ui/app/AppLayouts/Browser/popups/TabsBookmarksOverviewModal.qml @@ -12,6 +12,7 @@ import StatusQ.Components import StatusQ.Popups.Dialog import utils +import shared.controls import SortFilterProxyModel @@ -37,7 +38,6 @@ StatusDialog { // bookmarks required property var bookmarksModel - signal addBookmarkRequested() signal editBookmarkRequested(string url, string name) signal deleteBookmarkRequested(string url) signal bookmarkClicked(string url) @@ -56,8 +56,8 @@ StatusDialog { // Tabs Overview readonly property int cardWidth: 162 - readonly property int cardHeight: 106 - readonly property real cardSpacing: Theme.halfPadding + readonly property int cardHeight: 200 + readonly property real cardSpacing: 10 readonly property int columnCount: root.bottomSheet ? 2 : 3 readonly property int iconSize: 28 @@ -101,50 +101,17 @@ StatusDialog { } contentItem: ColumnLayout { - spacing: Theme.halfPadding + spacing: Theme.defaultPadding - StatusTextField { + SearchBox { id: searchField Layout.fillWidth: true - Layout.preferredHeight: 40 visible: searchButton.checked onVisibleChanged: clear() - background: Rectangle { - color: Theme.palette.background - radius: searchField.height - } - leftPadding: Theme.halfPadding + searchIcon.width + searchIcon.anchors.leftMargin - rightPadding: Theme.halfPadding + clearButton.width placeholderText: mainTabBar.currentIndex === TabsBookmarksOverviewModal.Mode.OpenTabs ? qsTr("Search in open tabs") : qsTr("Search in bookmarks") - font.pixelSize: Theme.fontSize(14) - inputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhSensitiveData | Qt.ImhNoAutoUppercase - EnterKey.type: Qt.EnterKeySearch - - StatusIcon { - id: searchIcon - height: parent.height/2 - width: height - anchors.left: parent.left - anchors.leftMargin: height/2 - anchors.verticalCenter: parent.verticalCenter - icon: "search" - color: Theme.palette.primaryColor1 - } - - StatusClearButton { - id: clearButton - anchors.right: parent.right - anchors.rightMargin: Theme.halfPadding - anchors.verticalCenter: parent.verticalCenter - visible: parent.cursorVisible && !!parent.text - onClicked: { - parent.forceActiveFocus() - parent.clear() - } - } } StackLayout { @@ -181,7 +148,7 @@ StatusDialog { width: d.cardWidth height: d.cardHeight padding: 0 - spacing: 6 + spacing: Theme.defaultHalfPadding background: Rectangle { id: openTabDelegateBg @@ -192,21 +159,18 @@ StatusDialog { } contentItem: ColumnLayout { - spacing: Theme.halfPadding + spacing: 0 RowLayout { Layout.fillWidth: true Layout.preferredHeight: 48 Layout.leftMargin: openTabDelegate.spacing Layout.rightMargin: openTabDelegate.spacing - Layout.topMargin: parent.spacing spacing: openTabDelegate.spacing StatusRoundedImage { Layout.preferredWidth: d.iconSize Layout.preferredHeight: d.iconSize - border.width: 2 - border.color: Theme.palette.separator image.source: root.getFaviconFn(d.searchableTabsModel.mapToSource(index)) } StatusBaseText { @@ -216,15 +180,15 @@ StatusDialog { verticalAlignment: Text.AlignVCenter elide: Text.ElideRight color: Theme.palette.primaryColor1 - font.pixelSize: Theme.fontSize(12) + font.pixelSize: Theme.fontSize(13) font.weight: Font.Medium wrapMode: Text.WordWrap text: model.title } } Image { - Layout.preferredWidth: parent.width - openTabDelegateBg.border.width - Layout.preferredHeight: 58 + Layout.preferredWidth: parent.width - openTabDelegateBg.border.width*2 + Layout.preferredHeight: 150 - openTabDelegateBg.border.width*2 Layout.alignment: Qt.AlignHCenter fillMode: Image.PreserveAspectCrop mipmap: true @@ -253,12 +217,12 @@ StatusDialog { required property int index required property var model - spacing: Theme.halfPadding + spacing: Theme.padding width: ListView.view.width icon.source: model.imageUrl || Assets.svg("globe") - icon.width: 24 - icon.height: 24 + icon.width: d.iconSize + icon.height: d.iconSize background: Rectangle { radius: Theme.radius @@ -331,7 +295,7 @@ StatusDialog { StatusBaseText { anchors.centerIn: parent - font.pixelSize: Theme.fontSize(11) + font.pixelSize: Theme.fontSize(12) color: parent.icon.color font.weight: Font.DemiBold text: d.searchableTabsModel.count @@ -346,24 +310,20 @@ StatusDialog { StatusFlatButton { id: searchButton icon.name: "search" + icon.width: d.iconSize + icon.height: d.iconSize checkable: true tooltip.text: qsTr("Search") onToggled: searchField.focus = checked } StatusFlatButton { icon.name: "add" + icon.width: d.iconSize + icon.height: d.iconSize tooltip.text: qsTr("Add") onClicked: { - switch (mainTabBar.currentIndex) { - case TabsBookmarksOverviewModal.Mode.OpenTabs: - root.addTabRequested() - root.close() - break - case TabsBookmarksOverviewModal.Mode.Bookmarks: - root.addBookmarkRequested() - root.close() - break - } + root.addTabRequested() + root.close() } } } @@ -377,6 +337,8 @@ StatusDialog { anchors.centerIn: parent icon: customSwitchButton.icon.name color: customSwitchButton.icon.color + width: d.iconSize + height: d.iconSize } } } diff --git a/ui/app/AppLayouts/Browser/views/BrowserShortcutActions.qml b/ui/app/AppLayouts/Browser/views/BrowserShortcutActions.qml index 5642cc4096c..6e736416644 100644 --- a/ui/app/AppLayouts/Browser/views/BrowserShortcutActions.qml +++ b/ui/app/AppLayouts/Browser/views/BrowserShortcutActions.qml @@ -74,6 +74,7 @@ QObject { signal resetZoomFactor() signal nextTabRequested() signal previousTabRequested() + signal removeViewRequested() Shortcut { sequences: ["Ctrl+L", "F6"] @@ -89,9 +90,7 @@ QObject { } Shortcut { sequences: [StandardKey.Close] - onActivated: { - triggerWebAction(AbstractWebView.WebAction.RequestClose) - } + onActivated: root.removeViewRequested() // might be trigerred from a downloads/empty page } Shortcut { sequence: "Escape" diff --git a/ui/app/AppLayouts/Browser/views/EmptyWebPage.qml b/ui/app/AppLayouts/Browser/views/EmptyWebPage.qml index 5be25c306a8..771ac38a908 100644 --- a/ui/app/AppLayouts/Browser/views/EmptyWebPage.qml +++ b/ui/app/AppLayouts/Browser/views/EmptyWebPage.qml @@ -25,10 +25,10 @@ Rectangle { anchors.horizontalCenter: parent.horizontalCenter anchors.top: parent.top anchors.topMargin: 60 - width: 294 - height: 294 + width: 240 + height: 161 - source: Assets.png("browser/pepehand") + source: Theme.palette.isDark ? Assets.png("browser/new_tab_dark") : Assets.png("browser/new_tab") cache: false } @@ -50,4 +50,3 @@ Rectangle { onFavMenuRequested: (parent, pos, url, name) => root.favMenuRequested(parent, pos, url, name) } } - diff --git a/ui/app/AppLayouts/Browser/webview/BrowserWebViewContext.qml b/ui/app/AppLayouts/Browser/webview/BrowserWebViewContext.qml index 8e6d0b30d55..d1e294d6838 100644 --- a/ui/app/AppLayouts/Browser/webview/BrowserWebViewContext.qml +++ b/ui/app/AppLayouts/Browser/webview/BrowserWebViewContext.qml @@ -219,7 +219,9 @@ QtObject { webChannel: root.webChannel enableJsLogs: root.isDebugEnabled localAccountSensitiveSettings: root.browserSettings + devToolsEnabled: root.browserSettings.devToolsEnabled + onDevToolsToggled: enabled => root.browserSettings.devToolsEnabled = enabled onWindowCloseRequested: root.removeView(StackLayout.index) onNewWindowRequested: (makeCurrent, requestedUrl, callback) => { diff --git a/ui/app/AppLayouts/Wallet/controls/DappsComboBox.qml b/ui/app/AppLayouts/Wallet/controls/DappsComboBox.qml index eca065a7740..1725fcb346c 100644 --- a/ui/app/AppLayouts/Wallet/controls/DappsComboBox.qml +++ b/ui/app/AppLayouts/Wallet/controls/DappsComboBox.qml @@ -26,6 +26,7 @@ ComboBox { property bool incognitoMode: false property var popupDirectParent: root property int backgroundRadius: Theme.radius + property int iconSize: 24 implicitHeight: 38 implicitWidth: 38 @@ -65,8 +66,8 @@ ComboBox { StatusIcon { objectName: "dappIcon" anchors.centerIn: parent - width: 24 - height: 24 + width: root.iconSize + height: root.iconSize icon: "dapp" color: root.incognitoMode ? Theme.palette.privacyColors.tertiary: