diff --git a/test/e2e/gui/objects_map/communities_names.py b/test/e2e/gui/objects_map/communities_names.py index 03e1eba8e1..34b9c7db00 100644 --- a/test/e2e/gui/objects_map/communities_names.py +++ b/test/e2e/gui/objects_map/communities_names.py @@ -170,7 +170,7 @@ editPermissionView_Is_allowed_to_StatusFlowSelector = {"container": mainWindow_e editPermissionView_In_StatusItemSelector = {"container": mainWindow_editPermissionView_EditPermissionView, "id": "inSelector", "type": "StatusItemSelector", "unnamed": 1, "visible": True} editPermissionView_whoHoldsSwitch_StatusSwitch = {"checkable": True, "container": mainWindow_editPermissionView_EditPermissionView, "id": "whoHoldsSwitch", "type": "StatusSwitch", "unnamed": 1, "visible": True} edit_TextEdit = {"container": statusDesktop_mainWindow_overlay, "type": "TextEdit", "unnamed": 1, "visible": True} -inputValue_StyledTextField = {"container": statusDesktop_mainWindow_overlay, "id": "inputValue", "type": "StyledTextField", "unnamed": 1, "visible": True} +inputValue_StyledTextField = {"container": statusDesktop_mainWindow_overlay, "id": "inputValue", "type": "StatusTextField", "unnamed": 1, "visible": True} o_TokenItem = {"container": statusDesktop_mainWindow_overlay, "index": 0, "type": "TokenItem", "unnamed": 1, "visible": True} add_StatusButton = {"checkable": False, "container": statusDesktop_mainWindow_overlay, "objectName": "addButton", "type": "StatusButton", "visible": True} add_update_statusButton = {"checkable": False, "container": statusDesktop_mainWindow_overlay, "id": "addOrUpdateButton", "type": "StatusButton", "unnamed": 1, "visible": True} diff --git a/test/e2e/gui/objects_map/names.py b/test/e2e/gui/objects_map/names.py index 35362b7774..48fd5fa36c 100644 --- a/test/e2e/gui/objects_map/names.py +++ b/test/e2e/gui/objects_map/names.py @@ -507,7 +507,7 @@ o_StatusTabBar = {"container": statusDesktop_mainWindow_overlay, "type": "Status tab_Status_template = {"container": o_StatusTabBar, "type": "StatusBaseText", "unnamed": 1, "visible": True} o_TokenBalancePerChainDelegate_template = {"container": statusDesktop_mainWindow_overlay, "objectName": "tokenBalancePerChainDelegate", "type": "TokenBalancePerChainDelegate", "visible": True} o_CollectibleNestedDelegate_template = {"container": statusDesktop_mainWindow_overlay, "type": "CollectibleNestedDelegate", "unnamed": 1, "visible": True} -amountInput_TextEdit = {"container": statusDesktop_mainWindow_overlay, "objectName": "amountToSend_textField", "type": "StyledTextField", "visible": True} +amountInput_TextEdit = {"container": statusDesktop_mainWindow_overlay, "objectName": "amountToSend_textField", "type": "StatusTextField", "visible": True} paste_StatusButton = {"checkable": False, "container": statusDesktop_mainWindow_overlay, "type": "StatusButton", "unnamed": 1, "visible": True} ens_or_address_TextEdit = {"container": statusDesktop_mainWindow_overlay, "id": "edit", "type": "TextEdit", "unnamed": 1, "visible": True} accountSelectionTabBar_StatusTabBar = {"container": statusDesktop_mainWindow_overlay, "id": "accountSelectionTabBar", "type": "StatusTabBar", "unnamed": 1, "visible": True} diff --git a/test/e2e/gui/objects_map/onboarding_names.py b/test/e2e/gui/objects_map/onboarding_names.py index a59baaa30e..e3029090b9 100644 --- a/test/e2e/gui/objects_map/onboarding_names.py +++ b/test/e2e/gui/objects_map/onboarding_names.py @@ -103,7 +103,7 @@ mainWindow_passwordView_PasswordConfirmationView = {"container": statusDesktop_m # Login View mainWindow_LoginView = {"container": statusDesktop_mainWindow, "type": "LoginView", "unnamed": 1, "visible": True} loginView_submitBtn = {"container": mainWindow_LoginView, "type": "StatusRoundButton", "visible": True} -loginView_passwordInput = {"container": mainWindow_LoginView, "objectName": "loginPasswordInput", "type": "StyledTextField"} +loginView_passwordInput = {"container": mainWindow_LoginView, "objectName": "loginPasswordInput", "type": "StatusTextField"} loginView_currentUserNameLabel = {"container": mainWindow_LoginView, "objectName": "currentUserNameLabel", "type": "StatusBaseText"} loginView_changeAccountBtn = {"container": mainWindow_LoginView, "objectName": "loginChangeAccountButton", "type": "StatusFlatRoundButton"} accountsView_accountListPanel = {"container": statusDesktop_mainWindow, "objectName": "LoginView_AccountsRepeater", "type": "Repeater", "visible": True} diff --git a/test/e2e/gui/objects_map/settings_names.py b/test/e2e/gui/objects_map/settings_names.py index 51f06775fd..57d4b6abc0 100644 --- a/test/e2e/gui/objects_map/settings_names.py +++ b/test/e2e/gui/objects_map/settings_names.py @@ -164,7 +164,7 @@ signOutConfirmationButton = {"container": statusDesktop_mainWindow_overlay, "obj mainWindow_EnsWelcomeView = {"container": statusDesktop_mainWindow, "type": "EnsWelcomeView", "unnamed": 1, "visible": True} mainWindow_Start_StatusButton = {"checkable": False, "container": statusDesktop_mainWindow, "objectName": "ensStartButton", "type": "StatusButton", "visible": True} mainWindow_EnsSearchView = {"container": statusDesktop_mainWindow, "type": "EnsSearchView", "unnamed": 1, "visible": True} -mainWindow_ensUsernameInput_StyledTextField = {"container": statusDesktop_mainWindow, "objectName": "ensUsernameInput", "type": "StyledTextField", "visible": True} +mainWindow_ensUsernameInput_StyledTextField = {"container": statusDesktop_mainWindow, "objectName": "ensUsernameInput", "type": "StatusTextField", "visible": True} mainWindow_ensNextButton_StatusRoundButton = {"container": statusDesktop_mainWindow, "objectName": "ensNextButton", "type": "StatusRoundButton", "visible": True} ens_StatusBaseText = {"container": mainWindow_EnsSearchView, "type": "StatusBaseText", "unnamed": 1, "visible": True} mainWindow_EnsTermsAndConditionsView = {"container": statusDesktop_mainWindow, "type": "EnsTermsAndConditionsView", "unnamed": 1, "visible": True} diff --git a/test/ui-test/testSuites/global_shared/scripts/login_names.py b/test/ui-test/testSuites/global_shared/scripts/login_names.py index 7b8183eef9..16136b47b6 100644 --- a/test/ui-test/testSuites/global_shared/scripts/login_names.py +++ b/test/ui-test/testSuites/global_shared/scripts/login_names.py @@ -1,7 +1,7 @@ from scripts.global_names import * # Main: -loginView_passwordInput = {"container": statusDesktop_mainWindow, "objectName": "loginPasswordInput", "type": "StyledTextField"} +loginView_passwordInput = {"container": statusDesktop_mainWindow, "objectName": "loginPasswordInput", "type": "StatusTextField"} loginView_changeAccountBtn = {"container": statusDesktop_mainWindow, "objectName": "loginChangeAccountButton", "type": "StatusFlatRoundButton"} loginView_currentUserNameLabel = {"container": statusDesktop_mainWindow, "objectName": "currentUserNameLabel", "type": "StatusBaseText"} loginView_submitBtn = {"container": statusDesktop_mainWindow, "type": "StatusRoundButton", "visible": True} 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 b10ce4e37d..0edc38d64f 100644 --- a/test/ui-test/testSuites/global_shared/scripts/settings_names.py +++ b/test/ui-test/testSuites/global_shared/scripts/settings_names.py @@ -41,12 +41,12 @@ LeftTabView_ScrollView = {"container": mainWindow_LeftTabView, "type": "StatusSc # ENS view; settings_ENS_Start_Button = {"container": statusDesktop_mainWindow, "objectName": "ensStartButton", "type": "StatusButton"} -settings_ENS_Search_Input = {"container": statusDesktop_mainWindow, "objectName": "ensUsernameInput", "type": "StyledTextField"} +settings_ENS_Search_Input = {"container": statusDesktop_mainWindow, "objectName": "ensUsernameInput", "type": "StatusTextField"} settings_ENS_Search_Next_Button = {"container": statusDesktop_mainWindow, "objectName": "ensNextButton", "type": "StatusRoundButton"} settings_ENS_Terms_Agree = {"container": statusDesktop_mainWindow, "objectName": "ensAgreeTerms", "type": "StatusCheckBox"} settings_ENS_Terms_Open_Transaction = {"container": statusDesktop_mainWindow, "objectName": "ensStartTransaction", "type": "StatusButton"} settings_ENS_Terms_Transaction_Next_Button = {"container": statusDesktop_mainWindow, "objectName": "sendNextButton", "type": "StatusButton"} -settings_ENS_Terms_Transaction_Password_Input = {"container": statusDesktop_mainWindow, "objectName": "transactionSignerPasswordInput", "type": "StyledTextField"} +settings_ENS_Terms_Transaction_Password_Input = {"container": statusDesktop_mainWindow, "objectName": "transactionSignerPasswordInput", "type": "StatusTextField"} # Side bar items (Secondary navigation): wallet_StatusNavigationListItem = {"container": mainWindow_ScrollView, "objectName": SettingsSubsection.WALLET.value, "type": "StatusNavigationListItem", "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 6c0788104f..ebcd186790 100644 --- a/test/ui-test/testSuites/global_shared/scripts/wallet_names.py +++ b/test/ui-test/testSuites/global_shared/scripts/wallet_names.py @@ -71,7 +71,7 @@ mainWallet_Send_Popup_Networks_List = {"container": statusDesktop_mainWindow, "o mainWallet_Send_Popup_Send_Button = {"container": statusDesktop_mainWindow, "objectName": "transactionModalFooterButton", "type": "StatusButton"} mainWallet_Send_Popup_Asset_Selector = {"container": statusDesktop_mainWindow, "objectName": "assetSelectorButton", "type": "StatusComboBox"} mainWallet_Send_Popup_Asset_List = {"container": statusDesktop_mainWindow, "objectName": "assetSelectorList", "type": "StatusListView"} -mainWallet_Send_Popup_GasPrice_Input = {"container": statusDesktop_mainWindow, "objectName": "gasPriceSelectorInput", "type": "StyledTextField"} +mainWallet_Send_Popup_GasPrice_Input = {"container": statusDesktop_mainWindow, "objectName": "gasPriceSelectorInput", "type": "StatusTextField"} # Add/Edit account popup: grid_Grid = {"container": statusDesktop_mainWindow_overlay, "id": "grid", "type": "Grid", "unnamed": 1, "visible": True} diff --git a/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py b/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py index e3b3ea0946..f15aa99bce 100644 --- a/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py +++ b/test/ui-test/testSuites/suite_communities/shared/scripts/community_names.py @@ -105,7 +105,7 @@ editPermissionView_Is_allowed_to_StatusFlowSelector = {"container": mainWindow_e editPermissionView_In_StatusItemSelector = {"container": mainWindow_editPermissionView_EditPermissionView_2, "id": "inSelector", "type": "StatusItemSelector", "unnamed": 1, "visible": True} editPermissionView_whoHoldsSwitch_StatusSwitch = {"checkable": True, "container": mainWindow_editPermissionView_EditPermissionView, "id": "whoHoldsSwitch", "type": "StatusSwitch", "unnamed": 1, "visible": True} edit_TextEdit = {"container": statusDesktop_mainWindow_overlay, "type": "TextEdit", "unnamed": 1, "visible": True} -inputValue_StyledTextField = {"container": statusDesktop_mainWindow_overlay, "echoMode": 0, "id": "inputValue", "type": "StyledTextField", "unnamed": 1, "visible": True} +inputValue_StyledTextField = {"container": statusDesktop_mainWindow_overlay, "echoMode": 0, "id": "inputValue", "type": "StatusTextField", "unnamed": 1, "visible": True} o_TokenItem = {"container": statusDesktop_mainWindow_overlay, "index": 0, "type": "TokenItem", "unnamed": 1, "visible": True} add_StatusButton = {"checkable": False, "container": statusDesktop_mainWindow_overlay, "type": "StatusButton", "unnamed": 1, "visible": True} CustomPermissionListItem = {"container": statusDesktop_mainWindow_overlay, "objectName": "becomeAdmin", "type": "CustomPermissionListItem", "visible": True} diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusPasswordInput.qml b/ui/StatusQ/src/StatusQ/Controls/StatusPasswordInput.qml index bf97897280..edba8d5738 100644 --- a/ui/StatusQ/src/StatusQ/Controls/StatusPasswordInput.qml +++ b/ui/StatusQ/src/StatusQ/Controls/StatusPasswordInput.qml @@ -1,6 +1,6 @@ -import QtQuick 2.14 -import QtQuick.Layouts 1.12 -import QtQuick.Controls 2.14 +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 import StatusQ.Core 0.1 import StatusQ.Core.Theme 0.1 @@ -9,7 +9,7 @@ import StatusQ.Components 0.1 /*! \qmltype StatusPasswordInput - \inherits Item + \inherits StatusTextField \inqmlmodule StatusQ.Controls \since StatusQ.Controls 0.1 \brief The StatusPasswordInput control provides a generic user password input with an option to display signing phrase @@ -26,7 +26,7 @@ import StatusQ.Components 0.1 For a list of available components see StatusQ. */ -TextField { +StatusTextField { id: root /*! @@ -39,7 +39,6 @@ TextField { id: d readonly property int inputTextPadding: 16 - readonly property int pixelSize: 15 readonly property int radius: 8 readonly property int signingPhrasePadding: 8 readonly property int signingPhraseWordPadding: 8 @@ -57,30 +56,14 @@ TextField { implicitHeight: 44 selectByMouse: true - placeholderTextColor: Theme.palette.baseColor1 echoMode: TextInput.Password - font.pixelSize: d.pixelSize - font.family: Theme.palette.baseFont.name color: Theme.palette.directColor1 - selectionColor: Theme.palette.primaryColor2 - selectedTextColor: Theme.palette.directColor1 background: Rectangle { - id: inputRectangle - anchors.fill: parent color: Theme.palette.baseColor2 radius: d.radius border.width: root.focus ? 1 : 0 - border.color: { - if (root.focus) { - return Theme.palette.primaryColor1 - } - return "transparent" - } - } - - cursorDelegate: StatusCursorDelegate { - cursorVisible: root.cursorVisible + border.color: Theme.palette.primaryColor1 } RowLayout { diff --git a/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml b/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml new file mode 100644 index 0000000000..bdf710f59d --- /dev/null +++ b/ui/StatusQ/src/StatusQ/Controls/StatusTextField.qml @@ -0,0 +1,23 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +import StatusQ.Components 0.1 +import StatusQ.Core.Theme 0.1 + +TextField { + id: root + + font.family: Theme.palette.baseFont.name + font.pixelSize: Theme.primaryTextFontSize + color: readOnly ? Theme.palette.baseColor1 : Theme.palette.directColor1 + selectByMouse: true + selectedTextColor: Theme.palette.directColor1 + selectionColor: Theme.palette.primaryColor2 + placeholderTextColor: Theme.palette.baseColor1 + + opacity: enabled ? 1 : 0.3 + + cursorDelegate: StatusCursorDelegate { + cursorVisible: root.cursorVisible + } +} diff --git a/ui/StatusQ/src/StatusQ/Controls/qmldir b/ui/StatusQ/src/StatusQ/Controls/qmldir index 081dac93e8..2fa0d39bae 100644 --- a/ui/StatusQ/src/StatusQ/Controls/qmldir +++ b/ui/StatusQ/src/StatusQ/Controls/qmldir @@ -53,6 +53,7 @@ StatusScrollBar 0.1 StatusScrollBar.qml StatusComboBox 0.1 StatusComboBox.qml StatusItemDelegate 0.1 StatusItemDelegate.qml StatusTextArea 0.1 StatusTextArea.qml +StatusTextField 0.1 StatusTextField.qml StatusBackButton 0.1 StatusBackButton.qml StatusPasswordInput 0.1 StatusPasswordInput.qml StatusTextWithLoadingState 0.1 StatusTextWithLoadingState.qml diff --git a/ui/StatusQ/src/statusq.qrc b/ui/StatusQ/src/statusq.qrc index 2d5c697140..e32340642d 100644 --- a/ui/StatusQ/src/statusq.qrc +++ b/ui/StatusQ/src/statusq.qrc @@ -146,6 +146,7 @@ StatusQ/Controls/StatusTabButton.qml StatusQ/Controls/StatusTagItem.qml StatusQ/Controls/StatusTextArea.qml + StatusQ/Controls/StatusTextField.qml StatusQ/Controls/StatusTextWithLoadingState.qml StatusQ/Controls/StatusTokenInlineSelector.qml StatusQ/Controls/StatusToolTip.qml diff --git a/ui/app/AppLayouts/Node/NodeLayout.qml b/ui/app/AppLayouts/Node/NodeLayout.qml index ba0155c93f..3ec5c5f082 100644 --- a/ui/app/AppLayouts/Node/NodeLayout.qml +++ b/ui/app/AppLayouts/Node/NodeLayout.qml @@ -72,15 +72,14 @@ StatusSectionLayout { font.weight: Font.Medium font.pixelSize: 20 } - // TODO: replace with StatusTextArea once it lives in StatusQ. - StyledTextArea { + StatusTextArea { id: mailserverLogTxt Layout.rightMargin: Style.current.padding Layout.leftMargin: Style.current.padding Layout.fillWidth: true + Layout.preferredHeight: 200 text: "" - customHeight: 200 - textField.readOnly: true + readOnly: true } } @@ -97,15 +96,14 @@ StatusSectionLayout { font.weight: Font.Medium font.pixelSize: 20 } - // TODO: replace with StatusTextArea once it lives in StatusQ. - StyledTextArea { + StatusTextArea { id: logsTxt Layout.rightMargin: Style.current.padding Layout.leftMargin: Style.current.padding Layout.fillWidth: true + Layout.preferredHeight: 200 text: "" - customHeight: 200 - textField.readOnly: true + readOnly: true } } @@ -201,13 +199,12 @@ StatusSectionLayout { } } - StyledTextField { + StatusTextField { id: txtData text: "" leftPadding: 0 padding: 0 font.pixelSize: 14 - selectByMouse: true placeholderText: qsTr("Type json-rpc message... e.g {\"method\": \"eth_accounts\"}") anchors.right: rpcSendBtn.left anchors.rightMargin: 16 @@ -215,11 +212,7 @@ StatusSectionLayout { anchors.topMargin: 24 anchors.left: parent.left anchors.leftMargin: 24 - Keys.onEnterPressed: { - root.store.onSend(txtData.text) - txtData.text = "" - } - Keys.onReturnPressed: { + onAccepted: { root.store.onSend(txtData.text) txtData.text = "" } diff --git a/ui/imports/shared/controls/CurrencyAmountInput.qml b/ui/imports/shared/controls/CurrencyAmountInput.qml index 7614693945..effb47b627 100644 --- a/ui/imports/shared/controls/CurrencyAmountInput.qml +++ b/ui/imports/shared/controls/CurrencyAmountInput.qml @@ -11,7 +11,7 @@ import utils 1.0 /*! \qmltype CurrencyAmountInput - \inherits TextField + \inherits StatusTextField \brief Provides a text input field that accepts a numeric value, with optional (currency) symbol (defaults to "USD"). Utilizes a builtin DoubleValidator to validate the user's input. It accepts both the native decimal separator and optionally a period (`.`) for locales that don't use this. @@ -19,7 +19,7 @@ import utils 1.0 Internally it uses FormattedDoubleProperty object that keeps track of the value. */ -TextField { +StatusTextField { id: root property alias value: internalProp.value // accepts double/float or string representation, rejects NaN @@ -62,9 +62,6 @@ TextField { Component.onCompleted: text = internalProp.asLocaleString(decimals) onTextEdited: value = text - font.family: Style.current.baseFont.name - font.pixelSize: Style.current.primaryTextFontSize - leftPadding: Style.current.padding rightPadding: currencySymbol !== "" ? currencySymbolText.width + currencySymbolText.anchors.leftMargin + currencySymbolText.anchors.rightMargin : @@ -72,14 +69,7 @@ TextField { topPadding: 10 bottomPadding: 10 - opacity: enabled ? 1 : 0.3 - color: readOnly ? Theme.palette.baseColor1 : Theme.palette.directColor1 - selectionColor: Theme.palette.primaryColor2 - selectedTextColor: Theme.palette.directColor1 - placeholderTextColor: Theme.palette.baseColor1 - hoverEnabled: !readOnly - selectByMouse: true inputMethodHints: Qt.ImhFormattedNumbersOnly validator: DoubleValidator { @@ -106,10 +96,6 @@ TextField { Behavior on border.color { ColorAnimation {} } } - cursorDelegate: StatusCursorDelegate { - cursorVisible: root.cursorVisible - } - StatusBaseText { id: currencySymbolText anchors.right: parent.right diff --git a/ui/imports/shared/controls/Input.qml b/ui/imports/shared/controls/Input.qml index d03bcf727f..52049decc0 100644 --- a/ui/imports/shared/controls/Input.qml +++ b/ui/imports/shared/controls/Input.qml @@ -79,7 +79,7 @@ Item { height: customHeight anchors.top: inputBox.hasLabel ? inputLabel.bottom : parent.top anchors.topMargin: inputBox.hasLabel ? inputBox.labelMargin : 0 - StyledTextField { + StatusTextField { id: inputValue visible: !inputBox.isTextArea && !inputBox.isSelect placeholderText: inputBox.placeholderText @@ -88,7 +88,6 @@ Item { anchors.right: clipboardButtonLoader.active ? clipboardButtonLoader.left : parent.right anchors.rightMargin: clipboardButtonLoader.active ? Style.current.padding : 0 leftPadding: inputBox.hasIcon ? iconWidth + 20 : Style.current.padding - selectByMouse: true font.pixelSize: fontPixelSize readOnly: inputBox.readOnly background: Rectangle { @@ -159,7 +158,7 @@ Item { if (inputBox.copyToClipboard) { ClipboardUtils.setText(inputBox.textToCopy ? inputBox.textToCopy : inputValue.text) } else { - inputValue.paste() + inputValue.paste() } copyBtn.copied = true @@ -188,9 +187,3 @@ Item { wrapMode: TextEdit.Wrap } } - -/*##^## -Designer { - D{i:0;formeditorColor:"#c0c0c0";formeditorZoom:1.25} -} -##^##*/ diff --git a/ui/imports/shared/controls/StyledButton.qml b/ui/imports/shared/controls/StyledButton.qml deleted file mode 100644 index a9cf155666..0000000000 --- a/ui/imports/shared/controls/StyledButton.qml +++ /dev/null @@ -1,49 +0,0 @@ -import QtQuick 2.13 -import QtQuick.Controls 2.13 -import QtQml 2.14 - -import utils 1.0 -import "../" -import "../panels" - -Button { - property string label: "My button" - property color btnColor: Style.current.secondaryBackground - property color btnBorderColor: "transparent" - property int btnBorderWidth: 0 - property color textColor: Style.current.blue - property int textSize: 15 - property bool disabled: false - - id: btnStyled - width: txtBtnLabel.width + 2 * Style.current.padding - height: 44 - enabled: !disabled - - background: Rectangle { - color: disabled ? Style.current.grey : - hovered ? Qt.darker(btnStyled.btnColor, 1.1) : btnStyled.btnColor - radius: Style.current.radius - anchors.fill: parent - border.color: btnBorderColor - border.width: btnBorderWidth - } - - StyledText { - id: txtBtnLabel - color: btnStyled.disabled ? Style.current.darkGrey : btnStyled.textColor - font.pixelSize: btnStyled.textSize - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - text: btnStyled.label - font.weight: Font.Medium - } - - MouseArea { - cursorShape: Qt.PointingHandCursor - anchors.fill: parent - onClicked: { - parent.onClicked() - } - } -} diff --git a/ui/imports/shared/controls/StyledTextArea.qml b/ui/imports/shared/controls/StyledTextArea.qml deleted file mode 100644 index 99f0c61e64..0000000000 --- a/ui/imports/shared/controls/StyledTextArea.qml +++ /dev/null @@ -1,92 +0,0 @@ -import QtQuick 2.12 -import QtQuick.Controls 2.3 -import QtQuick.Layouts 1.3 -import QtGraphicalEffects 1.12 - -import utils 1.0 -import "../panels" - -Item { - property alias textField: textArea - property string placeholderText: "My placeholder" - property alias text: textArea.text - property string validationError: "" - property string label: "" - readonly property bool hasLabel: label !== "" - property color bgColor: Style.current.inputBackground - readonly property var forceActiveFocus: function () { - textArea.forceActiveFocus(Qt.MouseFocusReason) - } - readonly property int labelMargin: 7 - property int customHeight: 44 - property bool hideRectangle: false - signal keyPressed(var event) - - id: inputBox - height: inputRectangle.height + (hasLabel ? inputLabel.height + labelMargin : 0) + (!!validationError ? validationErrorText.height : 0) - - StyledText { - id: inputLabel - text: inputBox.label - font.weight: Font.Medium - anchors.left: parent.left - anchors.leftMargin: 0 - anchors.top: parent.top - anchors.topMargin: 0 - font.pixelSize: 13 - } - - Rectangle { - id: inputRectangle - height: customHeight - color: hideRectangle ? Style.current.transparent : bgColor - radius: Style.current.radius - anchors.top: inputBox.hasLabel ? inputLabel.bottom : parent.top - anchors.topMargin: inputBox.hasLabel ? inputBox.labelMargin : 0 - anchors.right: parent.right - anchors.left: parent.left - border.width: !!validationError && !hideRectangle ? 1 : 0 - border.color: Style.current.red - - TextArea { - id: textArea - text: "" - font.pixelSize: 15 - selectByMouse: true - wrapMode: Text.WrapAnywhere - placeholderText: inputBox.placeholderText - anchors.rightMargin: Style.current.smallPadding - anchors.leftMargin: inputBox.hasIcon ? 36 : Style.current.smallPadding - anchors.bottomMargin: Style.current.smallPadding - anchors.topMargin: Style.current.smallPadding - anchors.fill: parent - font.family: Style.current.baseFont.name - color: Style.current.textColor - placeholderTextColor: Style.current.secondaryText - selectionColor: Style.current.primarySelectionColor - - Keys.onPressed: inputBox.keyPressed(event) - } - } - - TextEdit { - visible: !!validationError - id: validationErrorText - text: validationError - anchors.top: inputRectangle.bottom - anchors.topMargin: 1 - selectByMouse: true - readOnly: true - font.pixelSize: 12 - color: Style.current.red - selectedTextColor: Style.current.textColor - selectionColor: Style.current.primarySelectionColor - } -} - -/*##^## -Designer { - D{i:0;formeditorColor:"#ffffff";formeditorZoom:1.25} -} -##^##*/ - diff --git a/ui/imports/shared/controls/StyledTextField.qml b/ui/imports/shared/controls/StyledTextField.qml deleted file mode 100644 index 5d38134202..0000000000 --- a/ui/imports/shared/controls/StyledTextField.qml +++ /dev/null @@ -1,20 +0,0 @@ -import QtQuick 2.13 -import QtQuick.Controls 2.13 - -import utils 1.0 - -import StatusQ.Components 0.1 - -TextField { - id: root - - font.family: Style.current.baseFont.name - color: readOnly ? Style.current.secondaryText : Style.current.textColor - selectByMouse: !readOnly - selectedTextColor: Style.current.textColor - selectionColor: Style.current.primarySelectionColor - - cursorDelegate: StatusCursorDelegate { - cursorVisible: root.cursorVisible - } -} diff --git a/ui/imports/shared/controls/chat/UsernameLabel.qml b/ui/imports/shared/controls/chat/UsernameLabel.qml deleted file mode 100644 index 913766bd2e..0000000000 --- a/ui/imports/shared/controls/chat/UsernameLabel.qml +++ /dev/null @@ -1,60 +0,0 @@ -import QtQuick 2.3 -import shared.controls 1.0 -import shared 1.0 -import shared.panels 1.0 - -import utils 1.0 - -Item { - id: root - property bool isHovered: false - height: childrenRect.height - width: chatName.width + (ensOrAlias.visible ? ensOrAlias.width + ensOrAlias.anchors.leftMargin : 0) - property alias label: chatName - - property string displayName - property string localName - property bool amISender - property bool disabled - - signal clickMessage(bool isProfileClick) - - StyledTextEdit { - id: chatName - text: root.amISender ? qsTr("You") : displayName - color: text.startsWith("@") || root.amISender || localName !== "" ? Style.current.blue : Style.current.secondaryText - font.weight: Font.Medium - font.pixelSize: Style.current.secondaryTextFontSize - font.underline: root.isHovered && !root.disabled - readOnly: true - wrapMode: Text.WordWrap - selectByMouse: true - MouseArea { - cursorShape: hoverEnabled ? Qt.PointingHandCursor : Qt.ArrowCursor - acceptedButtons: Qt.LeftButton | Qt.RightButton - anchors.fill: parent - hoverEnabled: !root.disabled - onEntered: { - root.isHovered = true - } - onExited: { - root.isHovered = false - } - onClicked: { - if (!root.disabled) { - root.clickMessage(true); - } - } - } - } - - StyledText { - id: ensOrAlias - visible: localName !== "" && displayName.startsWith("@") - text: displayName - color: Style.current.secondaryText - font.pixelSize: chatName.font.pixelSize - anchors.left: chatName.right - anchors.leftMargin: chatName.visible ? 4 : 0 - } -} diff --git a/ui/imports/shared/controls/chat/qmldir b/ui/imports/shared/controls/chat/qmldir index 4068bec001..326a11f008 100644 --- a/ui/imports/shared/controls/chat/qmldir +++ b/ui/imports/shared/controls/chat/qmldir @@ -19,5 +19,4 @@ SendTransactionButton 1.0 SendTransactionButton.qml SentMessage 1.0 SentMessage.qml StateBubble 1.0 StateBubble.qml UserImage 1.0 UserImage.qml -UsernameLabel 1.0 UsernameLabel.qml VerificationLabel 1.0 VerificationLabel.qml diff --git a/ui/imports/shared/controls/qmldir b/ui/imports/shared/controls/qmldir index e11523797e..e4b20822ba 100644 --- a/ui/imports/shared/controls/qmldir +++ b/ui/imports/shared/controls/qmldir @@ -38,11 +38,8 @@ SocialLinkPreview 1.0 SocialLinkPreview.qml StatusSyncCodeInput 1.0 StatusSyncCodeInput.qml StatusSyncCodeScan 1.0 StatusSyncCodeScan.qml StatusSyncingInstructions 1.0 StatusSyncingInstructions.qml -StyledButton 1.0 StyledButton.qml -StyledTextArea 1.0 StyledTextArea.qml StyledTextEdit 1.0 StyledTextEdit.qml StyledTextEditWithLoadingState 1.0 StyledTextEditWithLoadingState.qml -StyledTextField 1.0 StyledTextField.qml Timer 1.0 Timer.qml TokenDelegate 1.0 TokenDelegate.qml TransactionAddress 1.0 TransactionAddress.qml diff --git a/ui/imports/shared/popups/send/views/AmountToSend.qml b/ui/imports/shared/popups/send/views/AmountToSend.qml index 596fb71d0a..17a49cda78 100644 --- a/ui/imports/shared/popups/send/views/AmountToSend.qml +++ b/ui/imports/shared/popups/send/views/AmountToSend.qml @@ -6,6 +6,7 @@ import StatusQ.Core 0.1 import StatusQ.Core.Theme 0.1 import StatusQ.Core.Utils 0.1 as SQUtils import StatusQ.Components 0.1 +import StatusQ.Controls 0.1 import StatusQ.Validators 0.1 import utils 1.0 @@ -172,7 +173,7 @@ Control { } RowLayout { - StyledTextField { + StatusTextField { id: textField objectName: "amountToSend_textField" diff --git a/ui/imports/shared/views/TransactionSigner.qml b/ui/imports/shared/views/TransactionSigner.qml deleted file mode 100644 index 0a27302946..0000000000 --- a/ui/imports/shared/views/TransactionSigner.qml +++ /dev/null @@ -1,118 +0,0 @@ -import QtQuick 2.13 -import QtQuick.Controls 2.13 -import QtQuick.Layouts 1.13 - -import StatusQ.Controls 0.1 as StatusQ -import utils 1.0 - -import "../status" -import "../panels" -import "../controls" - -import StatusQ.Controls 0.1 as StatusQControls - -Item { - id: root - height: signingPhraseItem.height + signingPhrase.height + txtPassword.height + Style.current.smallPadding + Style.current.bigPadding - - property alias signingPhrase: signingPhrase.text - property string enteredPassword - property alias validationError: txtPassword.validationError - property string noInputErrorMessage: qsTr("You need to enter a password") - property string invalidInputErrorMessage: qsTr("Password needs to be 6 characters or more") - property bool isValid: false - - function forceActiveFocus(reason) { - txtPassword.forceActiveFocus(reason) - } - - function validate() { - txtPassword.validationError = "" - const noInput = txtPassword.text === "" - if (noInput) { - txtPassword.validationError = noInputErrorMessage - } else if (txtPassword.text.length < 6) { - txtPassword.validationError = invalidInputErrorMessage - } - isValid = txtPassword.validationError === "" - return isValid - } - - Item { - id: signingPhraseItem - anchors.horizontalCenter: parent.horizontalCenter - height: labelSigningPhrase.height - width: labelSigningPhrase.width + infoButton.width + infoButton.anchors.leftMargin - - StyledText { - id: labelSigningPhrase - color: Style.current.secondaryText - font.pixelSize: 15 - text: qsTr("Signing phrase") - } - - StatusQControls.StatusRoundButton { - id: infoButton - anchors.left: labelSigningPhrase.right - anchors.leftMargin: 7 - anchors.verticalCenter: parent.verticalCenter - width: 13 - height: 13 - icon.width: width - icon.height: height - icon.name: "info" - StatusQ.StatusToolTip { - visible: infoButton.hovered - text: qsTr("Signing phrase is a 3 word combination that displayed when you entered the wallet on this device for the first time.") - } - } - } - - StyledText { - id: signingPhrase - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: signingPhraseItem.bottom - anchors.topMargin: Style.current.smallPadding - font.pixelSize: 15 - text: root.signingPhrase - } - - StatusQControls.StatusRoundButton { - id: passwordInfoButton - anchors.left: parent.left - anchors.leftMargin: 67 - anchors.top: txtPassword.top - anchors.topMargin: 2 - width: 13 - height: 13 - icon.width: width - icon.height: height - icon.name: "info" - StatusQ.StatusToolTip { - visible: passwordInfoButton.hovered - text: qsTr("Enter the password you use to unlock this device") - } - } - - Input { - id: txtPassword - anchors.left: parent.left - anchors.right: parent.right - anchors.top: signingPhrase.bottom - anchors.topMargin: Style.current.bigPadding - textField.objectName: "transactionSignerPasswordInput" - focus: true - customHeight: 56 - label: qsTr("Password") - placeholderText: qsTr("Enter password") - textField.echoMode: TextInput.Password - validationErrorAlignment: TextEdit.AlignRight - validationErrorTopMargin: 8 - onTextChanged: { - if(root.validate()) { - root.enteredPassword = this.text - } - } - } -} - diff --git a/ui/imports/shared/views/qmldir b/ui/imports/shared/views/qmldir index d476d26384..e18edc0151 100644 --- a/ui/imports/shared/views/qmldir +++ b/ui/imports/shared/views/qmldir @@ -17,4 +17,3 @@ SyncingDeviceView 1.0 SyncingDeviceView.qml SyncingDisplayCode 1.0 SyncingDisplayCode.qml SyncingEnterCode 1.0 SyncingEnterCode.qml SyncingErrorMessage 1.0 SyncingErrorMessage.qml -TransactionSigner 1.0 TransactionSigner.qml