diff --git a/storybook/pages/PrimaryNavSidebarPage.qml b/storybook/pages/PrimaryNavSidebarPage.qml
index a72bf9f4afa..f5a4856841c 100644
--- a/storybook/pages/PrimaryNavSidebarPage.qml
+++ b/storybook/pages/PrimaryNavSidebarPage.qml
@@ -219,11 +219,11 @@ SplitView {
showCreateCommunityBadge: ctrlShowCreateCommunityBadge.checked
profileSectionHasNotification: ctrlSettingsHasNotification.checked
- onItemActivated: function (sectionType, id) {
+ onItemActivated: function (sectionType, sectionId) {
logs.logEvent("onItemActivated", ["sectionType", "sectionId"], arguments)
- sectionsModel.setActiveSection(id)
+ sectionsModel.setActiveSection(sectionId)
d.activeSectionType = sectionType
- d.activeSectionId = id
+ d.activeSectionId = sectionId
}
onActivityCenterRequested: function (shouldShow) {
logs.logEvent("onActivityCenterRequested", ["shouldShow"], arguments)
diff --git a/storybook/pages/StatusAppNavBarPage.qml b/storybook/pages/StatusAppNavBarPage.qml
deleted file mode 100644
index 3c9d1b2a414..00000000000
--- a/storybook/pages/StatusAppNavBarPage.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-import QtQuick
-import QtQuick.Controls
-
-import StatusQ.Layout
-import StatusQ.Controls
-import StatusQ.Core.Theme
-
-SplitView {
- orientation: Qt.Vertical
-
- StatusSectionLayout {
- navBar: StatusAppNavBar {
- anchors.fill: parent
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- regularItemsModel: ListModel {
- ListElement {
- sectionId: "mainApp"
- sectionType: 100
- name: "API Documentation"
- active: true
- image: ""
- icon: "edit"
- color: ""
- hasNotification: false
- notificationsCount: 0
- }
- ListElement {
- sectionId: "examples"
- sectionType: 101
- name: "Examples"
- active: false
- image: ""
- icon: "show"
- color: ""
- hasNotification: false
- notificationsCount: 0
- }
- ListElement {
- sectionId: "demoApp"
- sectionType: 102
- name: "Demo Application"
- active: false
- image: ""
- icon: "status"
- color: ""
- hasNotification: false
- notificationsCount: 0
- }
- ListElement {
- sectionId: "qrScanner"
- sectionType: 103
- name: "QR Scanner"
- active: false
- image: ""
- icon: "qr-scan"
- color: ""
- hasNotification: false
- notificationsCount: 0
- }
- }
- regularItemDelegate: StatusNavBarTabButton {
- anchors.horizontalCenter: parent.horizontalCenter
- name: model.icon.length > 0? "" : model.name
- icon.name: model.icon
- icon.source: model.image
- tooltip.text: model.name
- autoExclusive: true
- checked: model.active
- badge.value: model.notificationsCount
- badge.visible: model.hasNotification
- badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
- badge.border.width: 2
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- delegateHeight: 40
- }
-
- centerPanel: Rectangle {
- color: Theme.palette.statusAppNavBar.backgroundColor
- border.width: 1
- Text {
- anchors.centerIn: parent
- text: "Dummy center Item"
- }
- }
- }
-
- Item {
- SplitView.preferredWidth: 300
- SplitView.preferredHeight: childrenRect.height
-
- CheckBox {
- id: thirdpartyServicesCtrl
- text: "Enable ThirdParty Services"
- checked: true
- }
- }
-}
-
-// category: Panels
-// https://www.figma.com/design/idUoxN7OIW2Jpp3PMJ1Rl8/Settings----Desktop-Legacy?node-id=26301-22122&m=dev
diff --git a/storybook/pages/StatusNavBarTabButtonPage.qml b/storybook/pages/StatusNavBarTabButtonPage.qml
deleted file mode 100644
index 71e54860c6c..00000000000
--- a/storybook/pages/StatusNavBarTabButtonPage.qml
+++ /dev/null
@@ -1,141 +0,0 @@
-import QtQuick
-import QtQuick.Controls
-
-import StatusQ.Controls
-import StatusQ.Components.private
-import StatusQ.Core.Theme
-import StatusQ.Popups
-
-import shared.controls.chat.menuItems
-
-import Models
-import Storybook
-
-SplitView {
- id: root
-
- ButtonGroup {
- buttons: column.children
- onClicked: button => console.info("Clicked button:", button.tooltip.text)
- }
-
- Rectangle {
- SplitView.fillWidth: true
- SplitView.fillHeight: true
-
- color: thirdpartyServicesCtrl.checked ? Theme.palette.statusAppNavBar.backgroundColor: Theme.palette.privacyColors.primary
-
- Column {
- id: column
- spacing: 8
- anchors.centerIn: parent
-
- StatusNavBarTabButton {
- name: "name only"
- tooltip.text: "With 'name' only, active"
- checked: true
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- icon.name: "help"
- tooltip.text: "With icon"
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- icon.name: "help"
- tooltip.text: "Disabled with icon"
- enabled: false
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- icon.source: ModelsData.icons.socks
- tooltip.text: "With image"
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- icon.name: "help"
- tooltip.text: "With icon & badge dot"
- badge.visible: true
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- icon.name: "help"
- tooltip.text: "With icon & badge value (small)"
- badge.value: 3
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- icon.name: "help"
- tooltip.text: "With icon & badge value (big)"
- badge.value: 100
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- }
- StatusNavBarTabButton {
- id: communityButton
- icon.name: "communities"
- tooltip.text: ctrlNewBadgeGradient.checked ? "With custom badge gradient" : "With blue notification dot"
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
-
- StatusNewItemGradient { id: grad }
- badge.visible: true
- badge.gradient: ctrlNewBadgeGradient.checked ? grad : undefined
-
- // BUG: Binding below doesn't work
- // Binding on badge.gradient {
- // value: StatusNewItemGradient {}
- // when: ctrlNewBadgeGradient.checked
- // }
- }
- StatusNavBarTabButton {
- icon.name: "info"
- tooltip.text: "With context menu"
- thirdpartyServicesEnabled: thirdpartyServicesCtrl.checked
- popupMenu: popupMenuComp
- }
- }
- }
-
- Component {
- id: popupMenuComp
- StatusMenu {
- StatusAction {
- text: qsTr("Invite People")
- icon.name: "share-ios"
- }
-
- StatusAction {
- text: qsTr("Community Info")
- icon.name: "info"
- }
-
- StatusAction {
- text: qsTr("Community Rules")
- icon.name: "text"
- }
-
- StatusMenuSeparator {}
-
- MuteChatMenuItem {
- title: qsTr("Mute Community")
- }
- }
- }
-
- Column {
- SplitView.fillWidth: true
- SplitView.fillHeight: true
- CheckBox {
- id: ctrlNewBadgeGradient
- text: "Custom badge gradient"
- checked: true
- }
- CheckBox {
- id: thirdpartyServicesCtrl
- text: "Enable ThirdParty Services"
- checked: true
- }
- }
-}
-
-// category: Controls
-// status: good
diff --git a/storybook/pages/StatusSectionLayoutPage.qml b/storybook/pages/StatusSectionLayoutPage.qml
index f11325990de..0b3946e150c 100644
--- a/storybook/pages/StatusSectionLayoutPage.qml
+++ b/storybook/pages/StatusSectionLayoutPage.qml
@@ -137,7 +137,6 @@ Page {
centerPanel: centerPanelCheckBox.checked ? centerPanel : null
rightPanel: rightPanel
showRightPanel: rightPanelCheckBox.checked
- navBar: navBarItem
footer: footerItem
headerContent: headerContent
headerBackground: Control {
@@ -155,4 +154,4 @@ Page {
}
}
}
- }
\ No newline at end of file
+ }
diff --git a/test/e2e/gui/objects_map/messaging_names.py b/test/e2e/gui/objects_map/messaging_names.py
index 7ed72670a14..8805b52334d 100644
--- a/test/e2e/gui/objects_map/messaging_names.py
+++ b/test/e2e/gui/objects_map/messaging_names.py
@@ -18,7 +18,6 @@
statusToolBar_Confirm_StatusButton = {"checkable": False, "container": mainWindow_statusToolBar_StatusToolBar, "objectName": "inlineSelectorConfirmButton", "type": "StatusButton", "visible": True}
statusToolBar_Cancel_StatusButton = {"checkable": False, "container": mainWindow_statusToolBar_StatusToolBar, "type": "StatusButton", "unnamed": 1, "visible": True}
statusToolBar_StatusTagItem = {"container": mainWindow_statusToolBar_StatusToolBar, "type": "StatusTagItem", "visible": True}
-statusToolBar_notificationButton_StatusActivityCenterButton = {"container": statusDesktop_mainWindow, "objectName": "activityCenterNotificationsButton", "type": "StatusActivityCenterButton", "visible": True}
# Chat View
mainWindow_ChatColumnView = {"container": mainWindow_chatView_ChatView, "type": "ChatColumnView", "unnamed": 1, "visible": True}
diff --git a/test/e2e/gui/objects_map/names.py b/test/e2e/gui/objects_map/names.py
index 01ab7e5abb0..755cbb25a29 100644
--- a/test/e2e/gui/objects_map/names.py
+++ b/test/e2e/gui/objects_map/names.py
@@ -41,26 +41,26 @@
# First half of left main panel: home button, chat button, wallet button, market button
-homeButton = {"checkable": True, "container": mainWindow_LeftPanelNavBar, "objectName": "Home Page-navbar", "type": "StatusNavBarTabButton", "visible": True}
+homeButton = {"checkable": True, "container": mainWindow_LeftPanelNavBar, "objectName": "Home Page-navbar", "type": "PrimaryNavSidebarButton", "visible": True}
walletChatSwapNavBarList = {"container": mainWindow_LeftPanelNavBar, "objectName": "statusChatNavBarListView",
"type": "ListView", "visible": True}
mainWalletButton = {"container": walletChatSwapNavBarList, "objectName": "Wallet-navbar",
- "type": "StatusNavBarTabButton", "visible": True}
-chatButton = {"container": walletChatSwapNavBarList, "objectName": "Messages-navbar", "type": "StatusNavBarTabButton",
+ "type": "PrimaryNavSidebarButton", "visible": True}
+chatButton = {"container": walletChatSwapNavBarList, "objectName": "Messages-navbar", "type": "PrimaryNavSidebarButton",
"visible": True}
# Second half of left main panel: communities button, settings button
communitiesSettingsNavBarList = {"container": statusDesktop_mainWindow, "objectName": "statusMainNavBarListView",
"type": "ListView", "visible": True}
communitiesPortalButton = {"container": communitiesSettingsNavBarList, "objectName": "Communities Portal-navbar",
- "type": "StatusNavBarTabButton", "visible": True}
+ "type": "PrimaryNavSidebarButton", "visible": True}
settingsGearButton = {"container": communitiesSettingsNavBarList, "objectName": "Settings-navbar",
- "type": "StatusNavBarTabButton", "visible": True}
-activityCenterButton = {"container": communitiesSettingsNavBarList, "objectName": "Activity Center-navbar", "type": "StatusNavBarTabButton", "visible": True}
+ "type": "PrimaryNavSidebarButton", "visible": True}
+activityCenterButton = {"container": communitiesSettingsNavBarList, "objectName": "Activity Center-navbar", "type": "PrimaryNavSidebarButton", "visible": True}
# Online identifier
onlineIdentifierButton = {"container": mainWindow_LeftPanelNavBar, "objectName": "statusProfileNavBarTabButton",
- "type": "StatusNavBarTabButton", "visible": True}
+ "type": "PrimaryNavSidebarButton", "visible": True}
mainWindow_statusCommunityMainNavBarListView_ListView = {"container": statusDesktop_mainWindow,
"objectName": "statusCommunityMainNavBarListView",
@@ -68,7 +68,7 @@
statusCommunityMainNavBarListView_CommunityNavBarButton = {"checkable": True,
"container": mainWindow_statusCommunityMainNavBarListView_ListView,
"objectName": "CommunityNavBarButton",
- "type": "StatusNavBarTabButton", "visible": True}
+ "type": "PrimaryNavSidebarButton", "visible": True}
scrollView_Add_members_StatusButton = {"container": mainWindow_scrollView_StatusScrollView,
"objectName": "CommunityWelcomeBannerPanel_AddMembersButton",
"type": "StatusButton", "visible": True}
diff --git a/test/ui-test/src/screens/StatusMainScreen.py b/test/ui-test/src/screens/StatusMainScreen.py
index ea0697a5097..80f2c6ee83e 100644
--- a/test/ui-test/src/screens/StatusMainScreen.py
+++ b/test/ui-test/src/screens/StatusMainScreen.py
@@ -26,9 +26,9 @@ class MainScreenComponents(Enum):
PROFILE_NAVBAR_BUTTON = 'mainWindow_ProfileNavBarButton'
MAIN_WINDOW = "statusDesktop_mainWindow"
POPUP_OVERLAY = "statusDesktop_mainWindow_overlay"
- CHAT_NAVBAR_ICON = "navBarListView_Chat_navbar_StatusNavBarTabButton"
- COMMUNITY_PORTAL_BUTTON = "navBarListView_Communities_Portal_navbar_StatusNavBarTabButton"
- SETTINGS_BUTTON = "navBarListView_Settings_navbar_StatusNavBarTabButton"
+ CHAT_NAVBAR_ICON = "navBarListView_Chat_navbar_PrimaryNavSidebarButton"
+ COMMUNITY_PORTAL_BUTTON = "navBarListView_Communities_Portal_navbar_PrimaryNavSidebarButton"
+ SETTINGS_BUTTON = "navBarListView_Settings_navbar_PrimaryNavSidebarButton"
WALLET_BUTTON = "wallet_navbar_wallet_icon_StatusIcon"
START_CHAT_BTN = "mainWindow_startChat"
CHAT_LIST = "chatList"
diff --git a/test/ui-test/testSuites/global_shared/scripts/global_names.py b/test/ui-test/testSuites/global_shared/scripts/global_names.py
index 9d38ba7feee..4027ee8f01d 100644
--- a/test/ui-test/testSuites/global_shared/scripts/global_names.py
+++ b/test/ui-test/testSuites/global_shared/scripts/global_names.py
@@ -11,7 +11,7 @@
statusDesktop_mainWindow_AppMain_EmojiPopup_SearchTextInput = {"container": statusDesktop_mainWindow_overlay, "objectName": "StatusEmojiPopup_searchBox", "type": "TextEdit", "visible": True}
mainWindow_ScrollView = {"container": statusDesktop_mainWindow, "type": "StatusScrollView", "unnamed": 1, "visible": True}
mainWindow_ScrollView_2 = {"container": statusDesktop_mainWindow, "occurrence": 2, "type": "StatusScrollView", "unnamed": 1, "visible": True}
-mainWindow_ProfileNavBarButton = {"container": statusDesktop_mainWindow, "objectName": "statusProfileNavBarTabButton", "type": "StatusNavBarTabButton", "visible": True}
+mainWindow_ProfileNavBarButton = {"container": statusDesktop_mainWindow, "objectName": "statusProfileNavBarTabButton", "type": "PrimaryNavSidebarButton", "visible": True}
mainWindow_ProfileSettingsView = {"container": statusDesktop_mainWindow, "objectName": "myProfileSettingsView", "type": "ColumnLayout", "visible": True}
settings_navbar_settings_icon_StatusIcon = {"container": mainWindow_navBarListView_ListView, "objectName": "settings-icon", "type": "StatusIcon", "visible": True}
splashScreen = {"container": statusDesktop_mainWindow, "objectName": "splashScreen", "type": "DidYouKnowSplashScreen"}
@@ -41,7 +41,7 @@
# Main Window - chat related:
mainWindow_statusChatNavBarListView_ListView = {"container": statusDesktop_mainWindow, "objectName": "statusChatNavBarListView", "type": "ListView", "visible": True}
-navBarListView_Chat_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_statusChatNavBarListView_ListView, "objectName": "Messages-navbar", "type": "StatusNavBarTabButton", "visible": True}
+navBarListView_Chat_navbar_PrimaryNavSidebarButton = {"checkable": True, "container": mainWindow_statusChatNavBarListView_ListView, "objectName": "Messages-navbar", "type": "PrimaryNavSidebarButton", "visible": True}
chatList_ListView = {"container": statusDesktop_mainWindow, "objectName": "chatListItems", "type": "StatusListView", "visible": True}
chatList = {"container": statusDesktop_mainWindow, "objectName": "ContactsColumnView_chatList", "type": "StatusChatList"}
mainWindow_startChat = {"checkable": True, "container": statusDesktop_mainWindow, "objectName": "startChatButton", "type": "StatusIconTabButton"}
diff --git a/test/ui-test/testSuites/global_shared/scripts/settings_names.py b/test/ui-test/testSuites/global_shared/scripts/settings_names.py
index 0edc38d64f8..b8a7e06f4e1 100644
--- a/test/ui-test/testSuites/global_shared/scripts/settings_names.py
+++ b/test/ui-test/testSuites/global_shared/scripts/settings_names.py
@@ -30,7 +30,7 @@ class SettingsSubsection(Enum):
BACKUP_SEED: str = "18" + _MAIN_MENU_ITEM_OBJ_NAME
# Main:
-navBarListView_Settings_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Settings-navbar", "type": "StatusNavBarTabButton", "visible": True}
+navBarListView_Settings_navbar_PrimaryNavSidebarButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Settings-navbar", "type": "PrimaryNavSidebarButton", "visible": True}
settingsSave_StatusButton = {"container": statusDesktop_mainWindow, "objectName": "settingsDirtyToastMessageSaveButton", "type": "StatusButton", "visible": True}
settings_Sidebar_ENS_Item = {"container": mainWindow_ScrollView, "objectName": SettingsSubsection.ENS_USERNAMES.value, "type": "StatusNavigationListItem"}
settingsContentBase_ScrollView = {"container": statusDesktop_mainWindow, "objectName": "settingsContentBaseScrollView", "type": "StatusScrollView", "visible": True}
diff --git a/test/ui-test/testSuites/global_shared/scripts/wallet_names.py b/test/ui-test/testSuites/global_shared/scripts/wallet_names.py
index ebcd186790d..e2b4431e7a7 100644
--- a/test/ui-test/testSuites/global_shared/scripts/wallet_names.py
+++ b/test/ui-test/testSuites/global_shared/scripts/wallet_names.py
@@ -43,8 +43,8 @@
addAccountPopup_GeneratedAddressesListPageIndicatior_StatusPageIndicator = {"container": statusDesktop_mainWindow_overlay_popup2, "objectName": "AddAccountPopup-GeneratedAddressesListPageIndicatior", "type": "StatusPageIndicator", "visible": True}
page_StatusBaseButton = {"checkable": False, "container": addAccountPopup_GeneratedAddressesListPageIndicatior_StatusPageIndicator, "objectName": RegularExpression("Page-*"), "type": "StatusBaseButton", "visible": True}
-navBarListView_Wallet_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Wallet-navbar", "type": "StatusNavBarTabButton", "visible": True}
-wallet_navbar_wallet_icon_StatusIcon = {"container": navBarListView_Wallet_navbar_StatusNavBarTabButton, "objectName": "wallet-icon", "type": "StatusIcon", "visible": True}
+navBarListView_Wallet_navbar_PrimaryNavSidebarButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Wallet-navbar", "type": "PrimaryNavSidebarButton", "visible": True}
+wallet_navbar_wallet_icon_StatusIcon = {"container": navBarListView_Wallet_navbar_PrimaryNavSidebarButton, "objectName": "wallet-icon", "type": "StatusIcon", "visible": True}
mainWallet_Address_Panel = {"container": statusDesktop_mainWindow, "objectName": "addressPanel", "type": "StatusAddressPanel", "visible": True}
mainWallet_Add_Account_Button = {"container": statusDesktop_mainWindow, "objectName": "addAccountButton", "type": "StatusRoundButton", "visible": True}
diff --git a/test/ui-test/testSuites/suite_communities/shared/scripts/community_portal_names.py b/test/ui-test/testSuites/suite_communities/shared/scripts/community_portal_names.py
index a6757c229a8..b4b129f580c 100644
--- a/test/ui-test/testSuites/suite_communities/shared/scripts/community_portal_names.py
+++ b/test/ui-test/testSuites/suite_communities/shared/scripts/community_portal_names.py
@@ -1,10 +1,10 @@
from scripts.global_names import *
# Main:
-navBarListView_Communities_Portal_navbar_StatusNavBarTabButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Communities Portal-navbar", "type": "StatusNavBarTabButton", "visible": True}
+navBarListView_Communities_Portal_navbar_PrimaryNavSidebarButton = {"checkable": True, "container": mainWindow_navBarListView_ListView, "objectName": "Communities Portal-navbar", "type": "PrimaryNavSidebarButton", "visible": True}
mainWindow_communitiesPortalLayoutContainer_CommunitiesPortalLayout = {"container": statusDesktop_mainWindow, "objectName": "communitiesPortalLayout", "type": "CommunitiesPortalLayout"}
communitiesPortalLayoutContainer_createCommunityButton_StatusButton = {"container": mainWindow_communitiesPortalLayoutContainer_CommunitiesPortalLayout, "objectName": "createCommunityButton", "type": "StatusButton", "visible": True}
-navBarListView_All_Community_Buttons = {"checkable": True, "container": mainWindow_communityNavBarListView_ListView, "objectName": "CommunityNavBarButton", "type": "StatusNavBarTabButton"}
+navBarListView_All_Community_Buttons = {"checkable": True, "container": mainWindow_communityNavBarListView_ListView, "objectName": "CommunityNavBarButton", "type": "PrimaryNavSidebarButton"}
# Create community intermediate popup:
createCommunity_banner = {"container": statusDesktop_mainWindow_overlay, "objectName": "createCommunityBanner", "type": "BannerPanel", "visible": True}
diff --git a/ui/StatusQ/doc/src/statusqcontrols.qdoc b/ui/StatusQ/doc/src/statusqcontrols.qdoc
index 7bc0f524640..e86257c432f 100644
--- a/ui/StatusQ/doc/src/statusqcontrols.qdoc
+++ b/ui/StatusQ/doc/src/statusqcontrols.qdoc
@@ -16,7 +16,6 @@
\li \l{StatusChatListCategoryItemButton}
\li \l{StatusDropdown}
\li \l{StatusIconTabButton}
- \li \l{StatusNavBarTabButton}
\li \l{StatusTabBarIconButton}
\li \l{StatusToolTip}
\li \l{StatusBaseButton}
diff --git a/ui/StatusQ/doc/src/statusqlayout.qdoc b/ui/StatusQ/doc/src/statusqlayout.qdoc
index e52097d0b67..4683274f2c6 100644
--- a/ui/StatusQ/doc/src/statusqlayout.qdoc
+++ b/ui/StatusQ/doc/src/statusqlayout.qdoc
@@ -9,7 +9,6 @@
\list
\li \l{StatusAppLayout}
- \li \l{StatusAppNavBar}
\li \l{StatusAppTwoPanelLayout}
\li \l{StatusAppThreePanelLayout}
\endlist
diff --git a/ui/StatusQ/src/StatusQ/Components/StatusSmartIdenticon.qml b/ui/StatusQ/src/StatusQ/Components/StatusSmartIdenticon.qml
index 72908bd3126..7312d0cf489 100644
--- a/ui/StatusQ/src/StatusQ/Components/StatusSmartIdenticon.qml
+++ b/ui/StatusQ/src/StatusQ/Components/StatusSmartIdenticon.qml
@@ -3,6 +3,7 @@ import QtQuick
import StatusQ.Core
import StatusQ.Core.Theme
import StatusQ.Controls
+import StatusQ.Components
Loader {
id: root
diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusActivityCenterButton.qml b/ui/StatusQ/src/StatusQ/Controls/StatusActivityCenterButton.qml
deleted file mode 100644
index b59482c74f6..00000000000
--- a/ui/StatusQ/src/StatusQ/Controls/StatusActivityCenterButton.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-import QtQuick
-import StatusQ.Core
-import StatusQ.Core.Theme
-import StatusQ.Components
-
-/*!
- \qmltype StatusActivityCenterButton
- \inherits StatusFlatRoundButton
- \inqmlmodule StatusQ.Controls
- \since StatusQ.Controls 0.1
- \brief The StatusActivityCenterButton provides the button for Activity Center popup
-
- Example of how to use it:
-
- \qml
- StatusActivityCenterButton {
- unreadNotificationsCount: activityCenter.unreadNotificationsCount
- onClicked: activityCenterPopup.open()
- }
- \endqml
-
- For a list of components available see StatusQ.
-*/
-
-StatusFlatRoundButton {
- id: root
-
- /*!
- \qmlproperty bool StatusActivityCenterButton::hasUnseenNotifications
- This property indicates whether there are unseen notifications
- */
- property bool hasUnseenNotifications: false
-
- /*!
- \qmlproperty int StatusActivityCenterButton::unreadNotificationsCount
- This property holds the count of notifications.
- */
- property alias unreadNotificationsCount: statusBadge.value
-
- icon.name: "notification"
- icon.height: 21
- type: StatusFlatRoundButton.Type.Secondary
- objectName: "activityCenterNotificationsButton"
-
- // initializing the tooltip
- tooltip.text: qsTr("Notifications")
- tooltip.orientation: StatusToolTip.Orientation.Bottom
- tooltip.y: parent.height + 12
- tooltip.offset: -(tooltip.x + tooltip.width/2 - root.width/2) //position arrow center in root center
-
- StatusBadge {
- id: statusBadge
- visible: value > 0
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -(icon.height / 2.5)
- anchors.horizontalCenterOffset: (width / 2.5)
- color: root.hasUnseenNotifications ? Theme.palette.primaryColor1 : Theme.palette.baseColor1
- border.width: 2
- border.color: parent.hovered ? Theme.palette.baseColor2 : Theme.palette.statusAppLayout.backgroundColor
- }
-}
diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusNavBarTabButton.qml b/ui/StatusQ/src/StatusQ/Controls/StatusNavBarTabButton.qml
deleted file mode 100644
index dace8a6f132..00000000000
--- a/ui/StatusQ/src/StatusQ/Controls/StatusNavBarTabButton.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-import QtQuick
-import QtQuick.Controls
-
-import StatusQ.Core
-import StatusQ.Components
-import StatusQ.Controls
-import StatusQ.Core.Theme
-
-StatusIconTabButton {
- id: statusNavBarTabButton
-
- property alias badge: statusBadge
- property alias tooltip: statusTooltip
- property Component popupMenu
- property alias stateIcon: stateIcon
- property bool thirdpartyServicesEnabled: true
-
- identicon.asset.color: (statusNavBarTabButton.hovered || highlighted || statusNavBarTabButton.checked) ?
- statusNavBarTabButton.thirdpartyServicesEnabled ?
- Theme.palette.primaryColor1 :
- Theme.palette.privacyColors.tertiary :
- statusNavBarTabButton.thirdpartyServicesEnabled ?
- Theme.palette.baseColor1 :
- Theme.palette.privacyColors.iconColor
-
- StatusToolTip {
- id: statusTooltip
- visible: statusNavBarTabButton.hovered && !!statusTooltip.text
- delay: 50
- orientation: StatusToolTip.Orientation.Right
- x: statusNavBarTabButton.width + Theme.padding
- y: statusNavBarTabButton.height / 2 - height / 2 + 4
- }
-
- StatusRoundIcon {
- id: stateIcon
- visible: false
- width: 20
- height: width
- anchors.top: parent.top
- anchors.left: parent.right
-
- anchors.leftMargin: (width) * -1
- }
-
- StatusBadge {
- id: statusBadge
- visible: value > 0
- anchors.top: parent.top
- anchors.left: parent.right
- anchors.leftMargin: {
- if (statusBadge.value > 99) {
- return -22
- }
- if (statusBadge.value > 9) {
- return -21
- }
- return -18
- }
- anchors.topMargin: 4
- border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
- border.width: 2
- }
-
- function openContextMenu(pos) {
- if (!popupMenu)
- return
- const menu = popupMenu.createObject(statusNavBarTabButton)
- statusTooltip.hide()
- menu.popup(pos)
- }
-
- ContextMenu.onRequested: pos => openContextMenu(pos)
- onPressAndHold: openContextMenu(Qt.point(statusNavBarTabButton.pressX, statusNavBarTabButton.pressY))
-}
diff --git a/ui/StatusQ/src/StatusQ/Controls/qmldir b/ui/StatusQ/src/StatusQ/Controls/qmldir
index 632d4ab292c..2b875d216d2 100644
--- a/ui/StatusQ/src/StatusQ/Controls/qmldir
+++ b/ui/StatusQ/src/StatusQ/Controls/qmldir
@@ -1,6 +1,5 @@
module StatusQ.Controls
-StatusActivityCenterButton 0.1 StatusActivityCenterButton.qml
StatusAmountInput 0.1 StatusAmountInput.qml
StatusAnimatedText 0.1 StatusAnimatedText.qml
StatusBackButton 0.1 StatusBackButton.qml
@@ -34,7 +33,6 @@ StatusItemDelegate 0.1 StatusItemDelegate.qml
StatusItemPicker 0.1 StatusItemPicker.qml
StatusLabeledSlider 0.1 StatusLabeledSlider.qml
StatusLinkText 0.1 StatusLinkText.qml
-StatusNavBarTabButton 0.1 StatusNavBarTabButton.qml
StatusNavigationButton 0.1 StatusNavigationButton.qml
StatusPasswordInput 0.1 StatusPasswordInput.qml
StatusPasswordStrengthIndicator 0.1 StatusPasswordStrengthIndicator.qml
diff --git a/ui/StatusQ/src/StatusQ/Layout/StatusAppNavBar.qml b/ui/StatusQ/src/StatusQ/Layout/StatusAppNavBar.qml
deleted file mode 100644
index 761bc80f10f..00000000000
--- a/ui/StatusQ/src/StatusQ/Layout/StatusAppNavBar.qml
+++ /dev/null
@@ -1,138 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Window
-
-import StatusQ.Core
-import StatusQ.Core.Theme
-import StatusQ.Controls
-import StatusQ.Popups
-
-Rectangle {
- id: root
- objectName: "statusAppNavBar"
-
- required property bool thirdpartyServicesEnabled
-
- property alias topSectionModel: topSectionListview.model
- property alias topSectionDelegate: topSectionListview.delegate
-
- property alias communityItemsModel: communityItemsListView.model
- property alias communityItemDelegate: communityItemsListView.delegate
-
- property alias regularItemsModel: regularItemsListView.model
- property alias regularItemDelegate: regularItemsListView.delegate
-
- property real delegateHeight
-
- property alias cameraComponent: cameraItemLoader.sourceComponent
- property alias profileComponent: profileItemLoader.sourceComponent
-
- implicitWidth: 78
-
- color: root.thirdpartyServicesEnabled ? Theme.palette.statusAppNavBar.backgroundColor :
- Theme.palette.privacyColors.primary
-
- QtObject {
- id: d
-
- readonly property real spacing: 12
- readonly property real separatorWidth: 30
-
- function implicitListViewHeight(listView) {
- return listView.count ? listView.count * root.delegateHeight + (listView.count - 1) * listView.spacing : 0
- }
- }
-
- ColumnLayout {
- id: layout
- anchors {
- fill: parent
- topMargin: Qt.platform.os === "osx" && Window.visibility !== Window.FullScreen ? 48 : 12 // space reserved for Mac traffic lights (window icons)
- bottomMargin: 24
- }
-
- spacing: d.spacing
-
- ListView {
- id: topSectionListview
-
- Layout.fillWidth: true
- Layout.fillHeight: true
- Layout.minimumHeight: root.delegateHeight
- Layout.preferredHeight: d.implicitListViewHeight(this)
- Layout.maximumHeight: Layout.preferredHeight
-
- objectName: "statusChatNavBarListView"
-
- visible: count
- clip: true
- spacing: d.spacing
- boundsBehavior: contentHeight > height ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
- }
-
- Rectangle {
- id: firstSectionSeparator
-
- implicitHeight: 1
- Layout.preferredWidth: d.separatorWidth
- Layout.alignment: Qt.AlignHCenter
- color: Theme.palette.directColor7
-
- visible: topSectionListview.count && communityItemsListView.contentHeight > communityItemsListView.height
- }
-
- ListView {
- id: communityItemsListView
- objectName: "statusCommunityMainNavBarListView"
-
- Layout.fillWidth: true
- Layout.fillHeight: true
- Layout.minimumHeight: root.delegateHeight
- Layout.preferredHeight: d.implicitListViewHeight(this)
- Layout.maximumHeight: Layout.preferredHeight
-
- visible: count
- clip: true
- spacing: d.spacing
- boundsBehavior: contentHeight > height ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
- }
-
- Item {
- Layout.fillWidth: true
- Layout.fillHeight: true
- }
-
- Rectangle {
- id: secondSectionSeparator
-
- implicitHeight: 1
- Layout.preferredWidth: d.separatorWidth
- Layout.alignment: Qt.AlignHCenter
- color: Theme.palette.directColor7
- }
-
- ListView {
- id: regularItemsListView
-
- Layout.fillWidth: true
- Layout.preferredHeight: d.implicitListViewHeight(this)
-
- objectName: "statusMainNavBarListView"
-
- visible: count
- clip: true
- spacing: d.spacing
- boundsBehavior: contentHeight > height ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
- }
-
- Loader {
- id: cameraItemLoader
- Layout.alignment: Qt.AlignHCenter
- }
-
- Loader {
- id: profileItemLoader
- Layout.alignment: Qt.AlignHCenter
- }
- }
-}
diff --git a/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayout.qml b/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayout.qml
index 8ff5751abc1..aeef149853a 100644
--- a/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayout.qml
+++ b/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayout.qml
@@ -69,11 +69,6 @@ LayoutChooser {
This property holds the right panel of the component.
*/
property Item rightPanel
- /*!
- \qmlproperty Item StatusSectionLayout::navBar
- This property holds the navigation bar of the component. Usually displayed next to the leftPanel.
- */
- property Item navBar
/*!
\qmlproperty Item StatusSectionLayout::footer
This property holds the footer of the component.
@@ -165,7 +160,6 @@ LayoutChooser {
leftPanel: root.leftPanel
centerPanel: root.centerPanel
rightPanel: root.rightPanel
- navBar: root.navBar
footer: root.footer
headerBackground: root.headerBackground
showRightPanel: root.showRightPanel
@@ -184,7 +178,6 @@ LayoutChooser {
leftPanel: root.leftPanel
centerPanel: root.centerPanel
rightPanel: root.rightPanel
- navBar: root.navBar
footer: root.footer
headerBackground: root.headerBackground
showRightPanel: root.showRightPanel
diff --git a/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutLandscape.qml b/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutLandscape.qml
index 312c2a0c84b..11720a88b9d 100644
--- a/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutLandscape.qml
+++ b/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutLandscape.qml
@@ -63,11 +63,6 @@ SplitView {
This property holds the right panel of the component.
*/
property alias rightPanel: rightPanelProxy.target
- /*!
- \qmlproperty Item StatusSectionLayout::navBar
- This property holds the navigation bar of the component. Usually displayed next to the leftPanel.
- */
- property Item navBar
/*!
\qmlproperty Item StatusSectionLayout::footer
This property holds the footer of the component.
@@ -126,18 +121,6 @@ SplitView {
*/
signal backButtonClicked()
- Control {
- id: navBarControl
- SplitView.preferredWidth: (!!navBar) ? navBar.implicitWidth : 0
- SplitView.fillHeight: (!!navBar)
- background: Rectangle {
- color: Theme.palette.baseColor4
- }
- contentItem: LayoutItemProxy {
- target: root.navBar
- }
- }
-
Control {
SplitView.minimumWidth: (!!leftPanel) ? 304 : 0
SplitView.preferredWidth: (!!leftPanel) ? 304 : 0
diff --git a/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutPortrait.qml b/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutPortrait.qml
index 908ed7a83cf..237e9d1939e 100644
--- a/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutPortrait.qml
+++ b/ui/StatusQ/src/StatusQ/Layout/StatusSectionLayoutPortrait.qml
@@ -46,8 +46,6 @@ SwipeView {
implicitWidth: 822
implicitHeight: 600
- // handle: Item { }
- property Item navBar: null
/*!
\qmlproperty Item StatusSectionLayout::leftPanel
This property holds the left panel of the component.
@@ -168,11 +166,6 @@ SwipeView {
}
contentItem: RowLayout {
spacing: 0
- LayoutItemProxy {
- Layout.fillHeight: true
- target: root.navBar
- visible: baseProxyPanel.index === 0
- }
LayoutItemProxy {
Layout.fillWidth: true
Layout.fillHeight: true
diff --git a/ui/StatusQ/src/StatusQ/Layout/qmldir b/ui/StatusQ/src/StatusQ/Layout/qmldir
index abdad2bb914..63db9494f5f 100644
--- a/ui/StatusQ/src/StatusQ/Layout/qmldir
+++ b/ui/StatusQ/src/StatusQ/Layout/qmldir
@@ -1,4 +1,3 @@
module StatusQ.Layout
StatusSectionLayout 0.1 StatusSectionLayout.qml
-StatusAppNavBar 0.1 StatusAppNavBar.qml
diff --git a/ui/StatusQ/src/statusq.qrc b/ui/StatusQ/src/statusq.qrc
index dcc251e40ae..a266a37326b 100644
--- a/ui/StatusQ/src/statusq.qrc
+++ b/ui/StatusQ/src/statusq.qrc
@@ -90,7 +90,6 @@
StatusQ/Components/private/statusMessage/StatusSticker.qml
StatusQ/Components/private/statusMessage/StatusTextMessage.qml
StatusQ/Components/qmldir
- StatusQ/Controls/StatusActivityCenterButton.qml
StatusQ/Controls/StatusAmountInput.qml
StatusQ/Controls/StatusAnimatedText.qml
StatusQ/Controls/StatusBackButton.qml
@@ -124,7 +123,6 @@
StatusQ/Controls/StatusItemPicker.qml
StatusQ/Controls/StatusLabeledSlider.qml
StatusQ/Controls/StatusLinkText.qml
- StatusQ/Controls/StatusNavBarTabButton.qml
StatusQ/Controls/StatusNavigationButton.qml
StatusQ/Controls/StatusPasswordInput.qml
StatusQ/Controls/StatusPasswordStrengthIndicator.qml
@@ -219,7 +217,6 @@
StatusQ/Core/Utils/qmldir
StatusQ/Core/Utils/xss.js
StatusQ/Core/qmldir
- StatusQ/Layout/StatusAppNavBar.qml
StatusQ/Layout/StatusSectionLayout.qml
StatusQ/Layout/LayoutChooser.qml
StatusQ/Layout/StatusSectionLayoutLandscape.qml
diff --git a/ui/StatusQ/src/themepalette.cpp b/ui/StatusQ/src/themepalette.cpp
index 571d406afb0..b74165de803 100644
--- a/ui/StatusQ/src/themepalette.cpp
+++ b/ui/StatusQ/src/themepalette.cpp
@@ -163,7 +163,7 @@ std::unique_ptr createDarkThemePalette(QObject* parent)
t->statusAppLayout.rightPanelBackgroundColor = t->baseColor3;
// Status app nav bar
- t->statusAppNavBar.backgroundColor = t->baseColor5;
+ t->statusAppNavBar.backgroundColor = StatusColors::darkDesktopBlue10; // TODO temp color
// Status toast message
t->statusToastMessage.backgroundColor = t->baseColor3;
@@ -359,7 +359,7 @@ std::unique_ptr createLightThemePalette(QObject* parent)
t->statusAppLayout.rightPanelBackgroundColor = StatusColors::white;
// Status app nav bar
- t->statusAppNavBar.backgroundColor = t->baseColor2;
+ t->statusAppNavBar.backgroundColor = StatusColors::lightDesktopBlue10; // TODO temp color
// Status toast message
t->statusToastMessage.backgroundColor = StatusColors::white;
diff --git a/ui/app/AppLayouts/Chat/ChatLayout.qml b/ui/app/AppLayouts/Chat/ChatLayout.qml
index 002e9873b2e..c40dc298551 100644
--- a/ui/app/AppLayouts/Chat/ChatLayout.qml
+++ b/ui/app/AppLayouts/Chat/ChatLayout.qml
@@ -54,7 +54,6 @@ StackLayout {
required property SharedStores.NetworksStore networksStore
required property ProfileStores.AdvancedStore advancedStore
property bool paymentRequestFeatureEnabled
- property Item navBar
property var mutualContactsModel
property var sectionItemModel
@@ -156,7 +155,6 @@ StackLayout {
JoinCommunityView {
id: joinCommunityView
readonly property string communityId: sectionItemModel.id
- navBar: root.navBar
name: sectionItemModel.name
introMessage: sectionItemModel.introMessage
communityDesc: sectionItemModel.description
@@ -201,7 +199,6 @@ StackLayout {
readonly property string communityId: root.sectionItemModel.id
objectName: "chatViewComponent"
- navBar: root.navBar
rootStore: root.rootStore
createChatPropertiesStore: root.createChatPropertiesStore
@@ -370,7 +367,6 @@ StackLayout {
sourceComponent: CommunitySettingsView {
id: communitySettingsView
- navBar: root.navBar
rootStore: root.rootStore
walletAccountsModel: WalletStore.RootStore.nonWatchAccounts
@@ -421,7 +417,6 @@ StackLayout {
id: controlNodeOfflineComponent
ControlNodeOfflineCommunityView {
id: controlNodeOfflineView
- navBar: root.navBar
name: root.sectionItemModel.name
communityDesc: root.sectionItemModel.description
color: root.sectionItemModel.color
@@ -437,7 +432,6 @@ StackLayout {
BannedMemberCommunityView {
id: communityBanView
readonly property var communityData: sectionItemModel
- navBar: root.navBar
name: root.sectionItemModel.name
communityDesc: root.sectionItemModel.description
color: root.sectionItemModel.color
diff --git a/ui/app/AppLayouts/HomePage/HomePage.qml b/ui/app/AppLayouts/HomePage/HomePage.qml
index 2d76f194c95..4acf2d8c51f 100644
--- a/ui/app/AppLayouts/HomePage/HomePage.qml
+++ b/ui/app/AppLayouts/HomePage/HomePage.qml
@@ -168,6 +168,7 @@ Control {
anchors.topMargin: Theme.defaultSmallPadding
spacing: 12
+ // TODO remove me, duplicate in PrimaryNavSidebar
ProfileButton {
objectName: "homeProfileButton"
name: root.profileStore.name
diff --git a/ui/app/AppLayouts/Wallet/WalletLayout.qml b/ui/app/AppLayouts/Wallet/WalletLayout.qml
index 5ee7edb1d99..c90904fb707 100644
--- a/ui/app/AppLayouts/Wallet/WalletLayout.qml
+++ b/ui/app/AppLayouts/Wallet/WalletLayout.qml
@@ -32,8 +32,6 @@ import "popups/buy"
Item {
id: root
- property Item navBar
-
property WalletStores.RootStore walletRootStore
property SharedStores.RootStore sharedRootStore
property AppLayoutsStores.RootStore store
@@ -314,7 +312,6 @@ Item {
StatusSectionLayout {
id: walletSectionLayout
- navBar: root.navBar
anchors.fill: parent
backButtonName: RootStore.backButtonName
onBackButtonClicked: {
diff --git a/ui/app/mainui/AppMain.qml b/ui/app/mainui/AppMain.qml
index 88200d25cd1..de8ab34290e 100644
--- a/ui/app/mainui/AppMain.qml
+++ b/ui/app/mainui/AppMain.qml
@@ -1210,288 +1210,10 @@ Item {
onBuyClicked: popupRequestsHandler.sendModalHandler.buyStickerPack(packId, price)
}
}
-
- property Item navBar: StatusAppNavBar {
- visible: !homePageLoader.active
- width: visible ? implicitWidth : 0
-
- thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled
-
- topSectionModel: SortFilterProxyModel {
- sourceModel: appMain.rootStore.sectionsModel
- filters: [
- AnyOf {
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.homePage
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.wallet
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.swap
- enabled: !appMain.featureFlagsStore.marketEnabled
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.market
- enabled: appMain.featureFlagsStore.marketEnabled
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.chat
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.browser
- enabled: d.isBrowserEnabled
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.node
- enabled: localAccountSensitiveSettings.nodeManagementEnabled
- }
- },
- ValueFilter {
- roleName: "enabled"
- value: true
- }
- ]
- }
- topSectionDelegate: navbarButton
-
- communityItemsModel: SortFilterProxyModel {
- sourceModel: appMain.rootStore.sectionsModel
- filters: [
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.community
- },
- ValueFilter {
- roleName: "enabled"
- value: true
- }
- ]
- }
- communityItemDelegate: StatusNavBarTabButton {
- objectName: "CommunityNavBarButton"
- anchors.horizontalCenter: parent.horizontalCenter
- name: model.icon.length > 0? "" : model.name
- icon.name: model.icon
- icon.source: model.image
- identicon.asset.color: (hovered || identicon.highlighted || checked) ? model.color : icon.color
- tooltip.text: model.name
- checked: model.active
- badge.value: model.notificationsCount
- badge.visible: model.hasNotification
-
- stateIcon.color: Theme.palette.dangerColor1
- stateIcon.border.color: Theme.palette.baseColor2
- stateIcon.border.width: 2
- stateIcon.visible: model.amIBanned
- stateIcon.asset.name: "cancel"
- stateIcon.asset.color: Theme.palette.baseColor2
- stateIcon.asset.width: 14
-
- thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled
-
- onClicked: {
- changeAppSectionBySectionId(model.id)
- }
-
- popupMenu: Component {
- StatusMenu {
- id: communityContextMenu
- property var chatCommunitySectionModule
-
- readonly property bool isSpectator: model.spectated && !model.joined
-
- openHandler: function () {
- // we cannot return QVariant if we pass another parameter in a function call
- // that's why we're using it this way
- communityContextMenu.chatCommunitySectionModule = appMain.rootChatStore.getCommunitySectionModule(model.id)
- }
-
- StatusAction {
- text: qsTr("Invite People")
- icon.name: "share-ios"
- objectName: "invitePeople"
- onTriggered: {
- popups.openInviteFriendsToCommunityPopup(model,
- communityContextMenu.chatCommunitySectionModule,
- null)
- }
- }
-
- StatusAction {
- text: qsTr("Community Info")
- icon.name: "info"
- onTriggered: popups.openCommunityProfilePopup(appMain.rootStore, model, communityContextMenu.chatCommunitySectionModule)
- }
-
- StatusAction {
- text: qsTr("Community Rules")
- icon.name: "text"
- onTriggered: popups.openCommunityRulesPopup(model.name, model.introMessage, model.image, model.color)
- }
-
- StatusMenuSeparator {}
-
- MuteChatMenuItem {
- enabled: !model.muted
- title: qsTr("Mute Community")
- onMuteTriggered: {
- communityContextMenu.chatCommunitySectionModule.setCommunityMuted(interval)
- communityContextMenu.close()
- }
- }
-
- StatusAction {
- enabled: model.muted
- text: qsTr("Unmute Community")
- icon.name: "notification"
- onTriggered: communityContextMenu.chatCommunitySectionModule.setCommunityMuted(Constants.MutingVariations.Unmuted)
- }
-
- StatusAction {
- text: qsTr("Mark as read")
- icon.name: "check-circle"
- onTriggered: communityContextMenu.chatCommunitySectionModule.markAllReadInCommunity()
- }
-
- StatusAction {
- text: qsTr("Edit Shared Addresses")
- icon.name: "wallet"
- enabled: {
- if (model.memberRole === Constants.memberRole.owner || communityContextMenu.isSpectator)
- return false
- return true
- }
- onTriggered: {
- communityContextMenu.close()
- Global.openEditSharedAddressesFlow(model.id)
- }
- }
-
- StatusMenuSeparator { visible: leaveCommunityMenuItem.enabled }
-
- StatusAction {
- id: leaveCommunityMenuItem
- objectName: "leaveCommunityMenuItem"
- // allow to leave community for the owner in non-production builds
- enabled: model.memberRole !== Constants.memberRole.owner || !production
- text: {
- if (communityContextMenu.isSpectator)
- return qsTr("Close Community")
- return qsTr("Leave Community")
- }
- icon.name: communityContextMenu.isSpectator ? "close-circle" : "arrow-left"
- type: StatusAction.Type.Danger
- onTriggered: communityContextMenu.isSpectator ? communityContextMenu.chatCommunitySectionModule.leaveCommunity()
- : popups.openLeaveCommunityPopup(model.name, model.id, model.outroMessage)
- }
- }
- }
- }
-
- regularItemsModel: SortFilterProxyModel {
- sourceModel: appMain.rootStore.sectionsModel
- filters: [
- ValueFilter {
- roleName: "enabled"
- value: true
- },
- AnyOf {
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.profile
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.activityCenter
- }
- ValueFilter {
- roleName: "sectionType"
- value: Constants.appSection.communitiesPortal
- }
- }
- ]
- }
- regularItemDelegate: navbarButton
-
- delegateHeight: 40
-
- profileComponent: ProfileButton {
- objectName: "statusProfileNavBarTabButton"
-
- name: appMain.profileStore.name
- usesDefaultName: appMain.profileStore.usesDefaultName
- pubKey: appMain.profileStore.pubKey
- compressedPubKey: appMain.profileStore.compressedPubKey
- iconSource: appMain.profileStore.icon
- colorId: appMain.profileStore.colorId
- currentUserStatus: appMain.profileStore.currentUserStatus
-
- getEmojiHashFn: appMain.utilsStore.getEmojiHash
- getLinkToProfileFn: appMain.contactsStore.getLinkToProfile
- onSetCurrentUserStatusRequested: (status) => appMain.rootStore.setCurrentUserStatus(status)
- onViewProfileRequested: (pubKey) => Global.openProfilePopup(pubKey)
- }
-
- Component {
- id: navbarButton
- StatusNavBarTabButton {
- id: navbar
- objectName: model.name + "-navbar"
- anchors.horizontalCenter: parent.horizontalCenter
- name: model.icon.length > 0? "" : model.name
- icon.name: model.icon
- icon.source: model.image
- tooltip.text: Utils.translatedSectionName(model.sectionType, model.name, (sectionType) => {
- if (sectionType === Constants.appSection.homePage) {
- return homePageShortcut.nativeText
- }
- return ""
- })
- checked: model.active
-
- readonly property bool displayCreateCommunityBadge: model.sectionType === Constants.appSection.communitiesPortal && !appMain.communitiesStore.createCommunityPopupSeen
- badge.value: model.notificationsCount
- badge.visible: {
- if (model.sectionType === Constants.appSection.profile) {
- if (contactsModelAdaptor.pendingReceivedRequestContacts.ModelCount.count > 0) // pending contact request
- return true
- if (!appMain.privacyStore.mnemonicBackedUp && !appMain.profileStore.userDeclinedBackupBanner) // seedphrase not backed up (removed)
- return true
- if (appMain.devicesStore.devicesModel.count - appMain.devicesStore.devicesModel.pairedCount > 0) // sync entries
- return true
- return false
- }
- if (displayCreateCommunityBadge) // create new community badge
- return true
- return model.hasNotification // Otherwise, use the value coming from the model
- }
-
- StatusNewItemGradient { id: newGradient }
- badge.gradient: displayCreateCommunityBadge ? newGradient : undefined // gradient has precedence over a simple color
-
- thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled
-
- onClicked: {
- if(model.sectionType === Constants.appSection.swap) {
- popupRequestsHandler.swapModalHandler.launchSwap()
- } else {
- changeAppSectionBySectionId(model.id)
- }
- }
- }
- }
- }
ColumnLayout {
anchors.fill: parent
+ anchors.leftMargin: sidebar.alwaysVisible ? sidebar.width : 0
spacing: 0
objectName: "mainRightView"
@@ -1919,7 +1641,6 @@ Item {
show => appMain.accountSettingsStore.setShowUsersList(show)
isChatView: true
- navBar: appMain.navBar
rootStore: ChatStores.RootStore {
contactsStore: appMain.contactsStore
currencyStore: appMain.currencyStore
@@ -1995,7 +1716,6 @@ Item {
sourceComponent: CommunitiesPortalLayout {
anchors.fill: parent
createCommunityEnabled: !SQUtils.Utils.isMobile
- navBar: appMain.navBar
communitiesStore: appMain.communitiesStore
assetsModel: appMain.rootStore.globalAssetsModel
collectiblesModel: appMain.rootStore.globalCollectiblesModel
@@ -2011,8 +1731,6 @@ Item {
id: walletPrivacyWall
WalletPrivacyWall {
- navBar: appMain.navBar
-
onOpenThirdpartyServicesInfoPopupRequested: popupRequestsHandler.thirdpartyServicesPopupHandler.openPopup()
onOpenDiscussPageRequested: Global.requestOpenLink(Constants.statusDiscussPageUrl)
}
@@ -2023,7 +1741,6 @@ Item {
WalletLayout {
objectName: "walletLayoutReal"
- navBar: appMain.navBar
walletRootStore: WalletStores.RootStore
sharedRootStore: appMain.sharedRootStore
store: appMain.rootStore
@@ -2073,8 +1790,6 @@ Item {
id: browserPrivacyWall
BrowserPrivacyWall {
- navBar: appMain.navBar
-
onOpenThirdpartyServicesInfoPopupRequested: popupRequestsHandler.thirdpartyServicesPopupHandler.openPopup()
onOpenDiscussPageRequested: Global.openLinkWithConfirmation(
Constants.statusDiscussPageUrl,
@@ -2088,7 +1803,6 @@ Item {
BrowserLayout {
userUID: appMain.profileStore.pubKey
thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled
- navBar: appMain.navBar
bookmarksStore: BrowserStores.BookmarksStore {}
downloadsStore: BrowserStores.DownloadsStore {}
browserRootStore: BrowserStores.BrowserRootStore {}
@@ -2122,7 +1836,6 @@ Item {
active: appView.currentIndex === Constants.appViewStackIndex.profile
sourceComponent: ProfileLayout {
- navBar: appMain.navBar
isProduction: appMain.rootStore.isProduction
sharedRootStore: appMain.sharedRootStore
@@ -2213,9 +1926,7 @@ Item {
Loader {
active: appView.currentIndex === Constants.appViewStackIndex.node
- sourceComponent: NodeLayout {
- navBar: appMain.navBar
- }
+ sourceComponent: NodeLayout {}
}
Loader {
@@ -2226,8 +1937,6 @@ Item {
id: marketPrivacyWall
MarketPrivacyWall {
- navBar: appMain.navBar
-
onOpenThirdpartyServicesInfoPopupRequested: popupRequestsHandler.thirdpartyServicesPopupHandler.openPopup()
onOpenDiscussPageRequested: Global.requestOpenLink(Constants.statusDiscussPageUrl)
}
@@ -2238,7 +1947,6 @@ Item {
MarketLayout {
objectName: "marketLayout"
- navBar: appMain.navBar
tokensModel: appMain.marketStore.marketLeaderboardModel
totalTokensCount: appMain.marketStore.totalLeaderboardCount
@@ -2276,7 +1984,6 @@ Item {
id: activityCenterPopup
objectName: "activityCenterLayout"
- navBar: appMain.navBar
contactsStore: appMain.contactsStore
store: ChatStores.RootStore {
@@ -2347,7 +2054,6 @@ Item {
show => appMain.accountSettingsStore.setShowUsersList(show)
isChatView: false // This will be a community view
- navBar: appMain.navBar
emojiPopup: statusEmojiPopup.item
stickersPopup: statusStickersPopupLoader.item
sectionItemModel: model
@@ -2454,6 +2160,167 @@ Item {
}
} // ColumnLayout
+ PrimaryNavSidebar {
+ id: sidebar
+ height: parent.height
+
+ sectionsModel: appMain.rootStore.sectionsModel
+
+ Binding on alwaysVisible { // NB: on browser+mobile, can't overlay the native WebView
+ when: SQUtils.Utils.isMobile && d.activeSectionType === Constants.appSection.browser
+ value: true
+ }
+
+ acVisible: d.activeSectionType === Constants.appSection.activityCenter // FIXME AC should not be a section
+ acHasUnseenNotifications: appMain.activityCenterStore.hasUnseenNotifications
+ acUnreadNotificationsCount: appMain.activityCenterStore.unreadNotificationsCount
+
+ profileStore: appMain.profileStore
+ getEmojiHashFn: appMain.utilsStore.getEmojiHash
+ getLinkToProfileFn: appMain.contactsStore.getLinkToProfile
+
+ communityPopupMenu: communityContextMenuComponent
+
+ showEnabledSectionsOnly: true
+ marketEnabled: appMain.featureFlagsStore.marketEnabled
+ browserEnabled: d.isBrowserEnabled
+ nodeEnabled: localAccountSensitiveSettings.nodeManagementEnabled
+ showCreateCommunityBadge: !appMain.communitiesStore.createCommunityPopupSeen
+ profileSectionHasNotification: {
+ if (contactsModelAdaptor.pendingReceivedRequestContacts.ModelCount.count > 0) // pending contact request
+ return true
+ if (!appMain.privacyStore.mnemonicBackedUp && !appMain.profileStore.userDeclinedBackupBanner) // seedphrase not backed up (removed)
+ return true
+ if (appMain.devicesStore.devicesModel.count - appMain.devicesStore.devicesModel.pairedCount > 0) // sync entries
+ return true
+ return false
+ }
+ thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled
+
+ // FIXME AC should not be a section; remove `prevSectionId` then
+ property string prevSectionId: appMain.rootStore.activeSectionId
+ onActivityCenterRequested: function(shouldShow) {
+ if (shouldShow) {
+ appMain.rootStore.setActiveSectionBySectionType(Constants.appSection.activityCenter)
+ } else {
+ changeAppSectionBySectionId(prevSectionId)
+ }
+ }
+
+ onSetCurrentUserStatusRequested: status => appMain.rootStore.setCurrentUserStatus(status)
+ onViewProfileRequested: pubKey => Global.openProfilePopup(pubKey)
+
+ onItemActivated: function(sectionType, sectionId) {
+ prevSectionId = sectionId
+ if (sectionType === Constants.appSection.swap) {
+ popupRequestsHandler.swapModalHandler.launchSwap()
+ } else {
+ changeAppSectionBySectionId(sectionId)
+ }
+ }
+ }
+
+ Component {
+ id: communityContextMenuComponent
+ StatusMenu {
+ id: communityContextMenu
+
+ required property var model
+ required property int index
+
+ property var chatCommunitySectionModule
+
+ readonly property bool isSpectator: model.spectated && !model.joined
+
+ openHandler: function () {
+ // we cannot return QVariant if we pass another parameter in a function call
+ // that's why we're using it this way
+ communityContextMenu.chatCommunitySectionModule = appMain.rootChatStore.getCommunitySectionModule(model.id)
+ }
+
+ onClosed: destroy()
+
+ StatusAction {
+ text: qsTr("Invite People")
+ icon.name: "share-ios"
+ objectName: "invitePeople"
+ onTriggered: {
+ popups.openInviteFriendsToCommunityPopup(model,
+ communityContextMenu.chatCommunitySectionModule,
+ null)
+ }
+ }
+
+ StatusAction {
+ text: qsTr("Community Info")
+ icon.name: "info"
+ onTriggered: popups.openCommunityProfilePopup(appMain.rootStore, model, communityContextMenu.chatCommunitySectionModule)
+ }
+
+ StatusAction {
+ text: qsTr("Community Rules")
+ icon.name: "text"
+ onTriggered: popups.openCommunityRulesPopup(model.name, model.introMessage, model.image, model.color)
+ }
+
+ StatusMenuSeparator {}
+
+ MuteChatMenuItem {
+ enabled: !model.muted
+ title: qsTr("Mute Community")
+ onMuteTriggered: {
+ communityContextMenu.chatCommunitySectionModule.setCommunityMuted(interval)
+ communityContextMenu.close()
+ }
+ }
+
+ StatusAction {
+ enabled: model.muted
+ text: qsTr("Unmute Community")
+ icon.name: "notification"
+ onTriggered: communityContextMenu.chatCommunitySectionModule.setCommunityMuted(Constants.MutingVariations.Unmuted)
+ }
+
+ StatusAction {
+ text: qsTr("Mark as read")
+ icon.name: "check-circle"
+ onTriggered: communityContextMenu.chatCommunitySectionModule.markAllReadInCommunity()
+ }
+
+ StatusAction {
+ text: qsTr("Edit Shared Addresses")
+ icon.name: "wallet"
+ enabled: {
+ if (model.memberRole === Constants.memberRole.owner || communityContextMenu.isSpectator)
+ return false
+ return true
+ }
+ onTriggered: {
+ communityContextMenu.close()
+ Global.openEditSharedAddressesFlow(model.id)
+ }
+ }
+
+ StatusMenuSeparator { visible: leaveCommunityMenuItem.enabled }
+
+ StatusAction {
+ id: leaveCommunityMenuItem
+ objectName: "leaveCommunityMenuItem"
+ // allow to leave community for the owner in non-production builds
+ enabled: model.memberRole !== Constants.memberRole.owner || !production
+ text: {
+ if (communityContextMenu.isSpectator)
+ return qsTr("Close Community")
+ return qsTr("Leave Community")
+ }
+ icon.name: communityContextMenu.isSpectator ? "close-circle" : "arrow-left"
+ type: StatusAction.Type.Danger
+ onTriggered: communityContextMenu.isSpectator ? communityContextMenu.chatCommunitySectionModule.leaveCommunity()
+ : popups.openLeaveCommunityPopup(model.name, model.id, model.outroMessage)
+ }
+ }
+ }
+
Instantiator {
model: 9
delegate: Action {
diff --git a/ui/app/mainui/controls/PrimaryNavSidebarButton.qml b/ui/app/mainui/controls/PrimaryNavSidebarButton.qml
index 192cf690360..d31534fd5d0 100644
--- a/ui/app/mainui/controls/PrimaryNavSidebarButton.qml
+++ b/ui/app/mainui/controls/PrimaryNavSidebarButton.qml
@@ -7,6 +7,8 @@ import StatusQ.Components
import StatusQ.Components.private // for StatusNewItemGradient
import StatusQ.Core.Theme
+import utils
+
ToolButton {
id: root
@@ -14,7 +16,7 @@ ToolButton {
property int sectionType // cf Constants.appSection.*
property bool hasNotification
property int notificationsCount
- property string tooltipText
+ property string tooltipText: Utils.translatedSectionName(sectionType)
property bool showBadgeGradient
property Component popupMenu
@@ -22,12 +24,14 @@ ToolButton {
readonly property bool badgeVisible: identicon.badge.visible
padding: Theme.halfPadding
- opacity: /*down ? ThemeUtils.pressedOpacity :*/ enabled ? 1 : ThemeUtils.disabledOpacity // TODO pressed state ?
+ opacity: enabled ? 1 : ThemeUtils.disabledOpacity
Behavior on opacity { NumberAnimation { duration: ThemeUtils.AnimationDuration.Fast } }
implicitWidth: 40
implicitHeight: 40
+ focusPolicy: Utils.isMobile ? Qt.NoFocus : Qt.StrongFocus
+
icon.color: {
if (checked || down || highlighted)
return "white"
@@ -39,6 +43,9 @@ ToolButton {
icon.width: 24 // TODO scalable
icon.height: 24
+ font.family: Fonts.baseFont.family
+ font.pixelSize: Theme.additionalTextSize
+
background: Rectangle {
color: {
if (root.checked)
@@ -67,14 +74,13 @@ ToolButton {
asset.useAcronymForLetterIdenticon: false
asset.color: root.icon.color
- hoverEnabled: false
+ StatusNewItemGradient { id: newGradient }
badge {
width: root.notificationsCount ? badge.implicitWidth : Theme.padding - badge.border.width // bigger dot
height: root.notificationsCount ? badge.implicitHeight : Theme.padding - badge.border.width
border.width: 2
- border.color: Theme.palette.isDark ? StatusColors.darkDesktopBlue10
- : StatusColors.lightDesktopBlue10 // TODO follow container bg color
+ border.color: Theme.palette.statusAppNavBar.backgroundColor
anchors.bottom: undefined // override StatusBadge
anchors.bottomMargin: 0 // override StatusBadge
anchors.right: identicon.right
@@ -88,8 +94,6 @@ ToolButton {
}
}
- StatusNewItemGradient { id: newGradient }
-
StatusToolTip {
id: statusTooltip
text: root.tooltipText
diff --git a/ui/app/mainui/panels/PrimaryNavSidebar.qml b/ui/app/mainui/panels/PrimaryNavSidebar.qml
index 89337528692..788db65384a 100644
--- a/ui/app/mainui/panels/PrimaryNavSidebar.qml
+++ b/ui/app/mainui/panels/PrimaryNavSidebar.qml
@@ -91,11 +91,8 @@ Drawer {
readonly property int windowWidth: root.parent?.Window?.width ?? Screen.width
readonly property int windowHeight: root.parent?.Window?.height ?? Screen.height
- readonly property color containerBgColor: {
- !root.thirdpartyServicesEnabled ? root.Theme.palette.privacyColors.primary :
- root.Theme.palette.isDark ? root.StatusColors.darkDesktopBlue10
- : root.StatusColors.lightDesktopBlue10 // FIXME correct container bg color
- }
+ readonly property color containerBgColor: root.thirdpartyServicesEnabled ? root.Theme.palette.statusAppNavBar.backgroundColor
+ : root.Theme.palette.privacyColors.primary
readonly property int containerBgRadius: root.Theme.padding // 16
// models
@@ -299,7 +296,6 @@ Drawer {
icon.name: model.icon
icon.source: model.image
text: model.icon.length > 0 ? "" : model.name
- tooltipText: Utils.translatedSectionName(sectionType, model.name) // FIXME Utils.translatedSectionName to take model.name as fallback for community name
hasNotification: model.hasNotification
notificationsCount: model.notificationsCount
diff --git a/ui/i18n/qml_base_en.ts b/ui/i18n/qml_base_en.ts
index b5124cca84e..861aadc8661 100644
--- a/ui/i18n/qml_base_en.ts
+++ b/ui/i18n/qml_base_en.ts
@@ -15896,13 +15896,6 @@ to load
-
- StatusActivityCenterButton
-
- Notifications
-
-
-
StatusAddressOrEnsValidator
diff --git a/ui/i18n/qml_base_lokalise_en.ts b/ui/i18n/qml_base_lokalise_en.ts
index a7165318228..e524bce3a20 100644
--- a/ui/i18n/qml_base_lokalise_en.ts
+++ b/ui/i18n/qml_base_lokalise_en.ts
@@ -19353,14 +19353,6 @@
Hang in there! Just a few more seconds!
-
- StatusActivityCenterButton
-
- Notifications
- StatusActivityCenterButton
- Notifications
-
-
StatusAddressOrEnsValidator
diff --git a/ui/i18n/qml_cs.ts b/ui/i18n/qml_cs.ts
index 504db3a2a1d..e5f68596ff5 100644
--- a/ui/i18n/qml_cs.ts
+++ b/ui/i18n/qml_cs.ts
@@ -16008,13 +16008,6 @@ selhalo
Vydržte! Ještě pár sekund!
-
- StatusActivityCenterButton
-
- Notifications
- Oznámení
-
-
StatusAddressOrEnsValidator
diff --git a/ui/i18n/qml_es.ts b/ui/i18n/qml_es.ts
index 4ec9d16d3fd..af6ef39377d 100644
--- a/ui/i18n/qml_es.ts
+++ b/ui/i18n/qml_es.ts
@@ -15919,13 +15919,6 @@ al cargar
¡Aguanta! ¡Solo unos segundos más!
-
- StatusActivityCenterButton
-
- Notifications
- Notificaciones
-
-
StatusAddressOrEnsValidator
diff --git a/ui/i18n/qml_ko.ts b/ui/i18n/qml_ko.ts
index 51771bcf355..a1a5880111c 100644
--- a/ui/i18n/qml_ko.ts
+++ b/ui/i18n/qml_ko.ts
@@ -15871,13 +15871,6 @@ to load
조금만 더 버티세요! 곧 끝나요!
-
- StatusActivityCenterButton
-
- Notifications
- 알림
-
-
StatusAddressOrEnsValidator
diff --git a/ui/imports/shared/controls/ProfileButton.qml b/ui/imports/shared/controls/ProfileButton.qml
index efa41ab4f0b..d807855bf20 100644
--- a/ui/imports/shared/controls/ProfileButton.qml
+++ b/ui/imports/shared/controls/ProfileButton.qml
@@ -9,7 +9,7 @@ import shared.popups
import utils
-StatusNavBarTabButton {
+StatusIconTabButton {
id: root
required property string name
@@ -23,8 +23,6 @@ StatusNavBarTabButton {
property var getLinkToProfileFn: function(pubKey) { console.error("IMPLEMENT ME"); return "" }
property var getEmojiHashFn: function(pubKey) { console.error("IMPLEMENT ME"); return "" }
- property bool opened: false
-
signal viewProfileRequested(string pubKey)
signal setCurrentUserStatusRequested(int status)
@@ -45,27 +43,18 @@ StatusNavBarTabButton {
}
return icon.name
}
- // identicon.asset.width: identicon.asset.isImage ? 28 : (root.usesDefaultName ? Math.floor(width * 0.9) : width)
- // identicon.asset.height: identicon.asset.isImage ? 28 : (root.usesDefaultName ? Math.floor(height * 0.9) : height)
identicon.asset.bgWidth: root.usesDefaultName ? width : 0
identicon.asset.bgHeight: root.usesDefaultName ? height : 0
identicon.asset.color: root.usesDefaultName ? Theme.palette.indirectColor2 : Utils.colorForPubkey(Theme.palette, root.pubKey)
identicon.asset.isLetterIdenticon: root.usesDefaultName ? false : icon.name !== "" && !identicon.asset.isImage
identicon.asset.bgColor: root.usesDefaultName ? Utils.colorForPubkey(Theme.palette, root.pubKey) : "transparent"
- badge.visible: true
- badge.anchors {
- left: undefined
- top: undefined
- right: root.right
- bottom: root.bottom
- margins: 0
- rightMargin: -badge.border.width
- bottomMargin: -badge.border.width
- }
- badge.implicitHeight: 12
- badge.implicitWidth: 12
- badge.color: {
+ identicon.badge.visible: true
+ identicon.badge.border.width: 2
+ identicon.badge.border.color: Theme.palette.statusAppNavBar.backgroundColor
+ identicon.badge.height: 12
+ identicon.badge.width: 12
+ identicon.badge.color: {
switch(root.currentUserStatus) {
case Constants.currentUserStatus.automatic:
case Constants.currentUserStatus.alwaysOnline:
@@ -81,6 +70,8 @@ StatusNavBarTabButton {
id: userStatusContextMenu
objectName: "userStatusContextMenu"
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
+
y: root.y - userStatusContextMenu.height + root.height
x: root.x + root.width + 5
diff --git a/ui/imports/utils/Utils.qml b/ui/imports/utils/Utils.qml
index 2ed468b006d..39ceb0d4e10 100644
--- a/ui/imports/utils/Utils.qml
+++ b/ui/imports/utils/Utils.qml
@@ -409,11 +409,7 @@ QtObject {
}
// handle translations for section names coming from app_sections_config.nim
- function translatedSectionName(sectionType, fallback, additionalTextFunction) {
- if (additionalTextFunction === undefined) {
- additionalTextFunction = function() { return "" }
- }
-
+ function translatedSectionName(sectionType, fallback = "") {
switch(sectionType) {
case Constants.appSection.chat:
return qsTr("Messages")
@@ -438,7 +434,7 @@ QtObject {
case Constants.appSection.dApp:
return qsTr("dApp")
case Constants.appSection.homePage:
- return "%1 (%2)".arg(qsTr("Home Page")).arg(additionalTextFunction(sectionType))
+ return qsTr("Home Page")
case Constants.appSection.activityCenter:
return qsTr("Activity Center")
default: