Merge pull request 'add IconTextField for contact list search textfield and UnderlineTextField for profile manager password (and further profile pane uses)' (#296) from dan/ui:textfields into master
the build was successful Details

This commit is contained in:
Sarah Jamie Lewis 2020-05-19 12:39:30 -07:00
commit ba22cf93c7
21 changed files with 225 additions and 64 deletions

Binary file not shown.

View File

@ -52,6 +52,15 @@
<translation>Titel...</translation>
</message>
</context>
<context>
<name>ContactList</name>
<message>
<location filename="../qml/widgets/ContactList.qml" line="42"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation type="unfinished">Adresse hier hinzufügen, um einen Kontakt aufzunehmen</translation>
</message>
</context>
<context>
<name>EmojiDrawer</name>
<message>
@ -277,10 +286,9 @@
<translation type="vanished">Neue Gruppe anlegen</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>Adresse hier hinzufügen, um einen Kontakt aufzunehmen</translation>
<translation type="vanished">Adresse hier hinzufügen, um einen Kontakt aufzunehmen</translation>
</message>
</context>
<context>
@ -484,13 +492,18 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<source>password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="46"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="56"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -540,25 +553,25 @@
<context>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<location filename="../qml/widgets/Statusbar.qml" line="70"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<location filename="../qml/widgets/Statusbar.qml" line="80"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<location filename="../qml/widgets/Statusbar.qml" line="90"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<location filename="../qml/widgets/Statusbar.qml" line="100"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation type="unfinished"></translation>

Binary file not shown.

View File

@ -52,6 +52,15 @@
<translation>title...</translation>
</message>
</context>
<context>
<name>ContactList</name>
<message>
<location filename="../qml/widgets/ContactList.qml" line="42"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>... paste an address here to add a contact...</translation>
</message>
</context>
<context>
<name>EmojiDrawer</name>
<message>
@ -283,10 +292,9 @@ Right-click to reset.</translation>
<translation type="vanished">Create new group</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>... paste an address here to add a contact...</translation>
<translation type="vanished">... paste an address here to add a contact...</translation>
</message>
</context>
<context>
@ -502,13 +510,18 @@ Right-click to reset.</translation>
<translation>Please enter password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<source>password</source>
<translation>Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="46"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation>0 profiles loaded with that password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="56"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation>Unlock</translation>
@ -566,25 +579,25 @@ Right-click to reset.</translation>
<context>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<location filename="../qml/widgets/Statusbar.qml" line="70"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation>Disconnected from the internet, check your connection</translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<location filename="../qml/widgets/Statusbar.qml" line="80"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation>Attempting to connect to Tor network</translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<location filename="../qml/widgets/Statusbar.qml" line="90"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation>Connecting to network and peers...</translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<location filename="../qml/widgets/Statusbar.qml" line="100"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation>Online</translation>

Binary file not shown.

View File

@ -52,6 +52,15 @@
<translation>titre...</translation>
</message>
</context>
<context>
<name>ContactList</name>
<message>
<location filename="../qml/widgets/ContactList.qml" line="42"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation type="unfinished">... coller une adresse ici pour ajouter un contact...</translation>
</message>
</context>
<context>
<name>EmojiDrawer</name>
<message>
@ -277,10 +286,9 @@
<translation type="vanished">Créer un nouveau groupe</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation>... coller une adresse ici pour ajouter un contact...</translation>
<translation type="vanished">... coller une adresse ici pour ajouter un contact...</translation>
</message>
</context>
<context>
@ -484,13 +492,18 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<source>password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="46"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="56"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -540,25 +553,25 @@
<context>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<location filename="../qml/widgets/Statusbar.qml" line="70"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<location filename="../qml/widgets/Statusbar.qml" line="80"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<location filename="../qml/widgets/Statusbar.qml" line="90"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<location filename="../qml/widgets/Statusbar.qml" line="100"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation type="unfinished"></translation>

Binary file not shown.

View File

@ -52,6 +52,15 @@
<translation>título</translation>
</message>
</context>
<context>
<name>ContactList</name>
<message>
<location filename="../qml/widgets/ContactList.qml" line="42"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation type="unfinished"> cole um endereço aqui para adicionar um contato</translation>
</message>
</context>
<context>
<name>EmojiDrawer</name>
<message>
@ -277,10 +286,9 @@
<translation type="vanished">Criar novo grupo</translation>
</message>
<message>
<location filename="../qml/widgets/MyProfile.qml" line="150"/>
<source>paste-address-to-add-contact</source>
<extracomment>ex: &quot;... paste an address here to add a contact ...&quot;</extracomment>
<translation> cole um endereço aqui para adicionar um contato</translation>
<translation type="vanished"> cole um endereço aqui para adicionar um contato</translation>
</message>
</context>
<context>
@ -484,13 +492,18 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="43"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<source>password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="46"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="56"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -540,25 +553,25 @@
<context>
<name>Statusbar</name>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="40"/>
<location filename="../qml/widgets/Statusbar.qml" line="70"/>
<source>network-status-disconnected</source>
<extracomment>Disconnected from the internet, check your connection</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="45"/>
<location filename="../qml/widgets/Statusbar.qml" line="80"/>
<source>network-status-attempting-tor</source>
<extracomment>Attempting to connect to Tor network</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="50"/>
<location filename="../qml/widgets/Statusbar.qml" line="90"/>
<source>network-status-connecting</source>
<extracomment>Connecting...</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/widgets/Statusbar.qml" line="55"/>
<location filename="../qml/widgets/Statusbar.qml" line="100"/>
<source>network-status-online</source>
<extracomment>Online</extracomment>
<translation type="unfinished"></translation>

View File

@ -25,6 +25,7 @@
<file>qml/widgets/ContactRow.qml</file>
<file>qml/widgets/EmojiDrawer.qml</file>
<file>qml/widgets/FontAwesome.qml</file>
<file>qml/widgets/IconTextField.qml</file>
<file>qml/widgets/InplaceEditText.qml</file>
<file>qml/widgets/Message.qml</file>
<file>qml/widgets/ScalingLabel.qml</file>
@ -36,6 +37,7 @@
<file>qml/widgets/TextField.qml</file>
<file>qml/widgets/Toolbar.qml</file>
<file>qml/widgets/Statusbar.qml</file>
<file>qml/widgets/UnderlineTextField.qml</file>
<file>qml/widgets/controls/Loader.qml</file>
<file>qml/widgets/controls/Variables.qml</file>
<file>i18n/translation_de.qm</file>

View File

@ -46,6 +46,7 @@ ColumnLayout { // peerSettingsPane
anchors.right:parent.right
readOnly: true
button_text: qsTr("copy-btn")
dropShadowColor: Theme.dropShadowPaneColor
onClicked: {
//: notification: copied to clipboard
gcd.popup(qsTr("copied-to-clipboard-notification"))
@ -75,6 +76,7 @@ ColumnLayout { // peerSettingsPane
anchors.left:parent.left
anchors.right:parent.right
button_text: qsTr("save-btn")
dropShadowColor: Theme.dropShadowPaneColor
onClicked: {
gcd.savePeerSettings(txtOnion.text, txtDisplayName.text)
theStack.title = txtDisplayName.text

View File

@ -27,10 +27,13 @@ ColumnLayout {
text: qsTr("enter-profile-password")+":"
}
TextField {
Widgets.UnderlineTextField {
id: txtPassword
anchors.horizontalCenter: parent.horizontalCenter
style: CwtchTextFieldStyle{ width: thecol.width * 0.8 }
Layout.fillWidth: true
Layout.rightMargin: 40
Layout.leftMargin: 40
placeholderText: qsTr("password")
echoMode: TextInput.Password
onAccepted: button.clicked()
}

View File

@ -12,7 +12,8 @@ ThemeType {
backgroundMainColor: darkGrayPurple
backgroundPaneColor: deepPurple
mainTextColor: whitePurple
mainTextColor: purple
altTextColor: mauvePurple
defaultButtonColor: mauvePurple
defaultButtonActiveColor: pink
defaultButtonTextColor: whitePurple
@ -30,7 +31,8 @@ ThemeType {
portraitContactBadgeColor: hotPink
portraitContactBadgeTextColor: whitePurple
portraitProfileBadgeColor: mauvePurple
dropShadowColor: darkGrayPurple
dropShadowColor: mauvePurple
dropShadowPaneColor: darkGrayPurple
toggleColor: darkGrayPurple
toggleOnColor: whitePurple

View File

@ -13,6 +13,7 @@ ThemeType {
backgroundPaneColor: softPurple
mainTextColor: darkPurple
altTextColor: purple
defaultButtonColor: hotPink
defaultButtonActiveColor: pink
defaultButtonTextColor: whitePurple
@ -31,6 +32,7 @@ ThemeType {
portraitContactBadgeTextColor: whitePurple
portraitProfileBadgeColor: brightPurple
dropShadowColor: purple
dropShadowPaneColor: purple
toggleColor: whitePurple
toggleOnColor: hotPink

View File

@ -7,11 +7,13 @@ Item {
readonly property color backgroundPaneColor: theme.backgroundPaneColor
readonly property color mainTextColor: theme.mainTextColor
readonly property color altTextColor: theme.altTextColor
readonly property color defaultButtonColor: theme.defaultButtonColor
readonly property color defaultButtonActiveColor: theme.defaultButtonActiveColor
readonly property color defaultButtonTextColor: theme.defaultButtonTextColor
readonly property color dropShadowColor: theme.dropShadowColor
readonly property color dropShadowPaneColor: theme.dropShadowPaneColor
readonly property color portraitOnlineBorderColor: theme.portraitOnlineBorderColor
readonly property color portraitOnlineBackgroundColor: theme.portraitOnlineBackgroundColor

View File

@ -5,6 +5,7 @@ QtObject {
property color backgroundPaneColor: "red"
property color mainTextColor: "red"
property color altTextColor: "red"
property color defaultButtonColor: "red"
property color defaultButtonActiveColor: "red"
property color defaultButtonTextColor: "red"
@ -23,6 +24,7 @@ QtObject {
property color portraitContactBadgeTextColor: "red"
property color portraitProfileBadgeColor: "red"
property color dropShadowColor: "black"
property color dropShadowPaneColor: "black"
property color toggleColor: "black"
property color toggleOnColor: "black"
property color toggleOffColor: "black"

View File

@ -9,13 +9,15 @@ import "../theme"
// ButtonTextField integrates a text field and a button
TextField {
id: tf
color: Theme.mainTextColor
font.pixelSize: 10 * gcd.themeScale
font.pixelSize: Theme.secondaryTextSize * gcd.themeScale
width: parent.width - 20
property string icon
property string button_text
signal clicked
smooth: true
property color dropShadowColor: Theme.dropShadowColor
background: Rectangle {
radius: 10
@ -27,7 +29,7 @@ TextField {
horizontalOffset: 4
verticalOffset: 4
samples:10
color: Theme.dropShadowColor
color: tf.dropShadowColor
}
}

View File

@ -10,6 +10,7 @@ ColumnLayout {
property alias dualPane: myprof.dualPane
spacing: 10
MouseArea {
anchors.fill: parent
@ -23,6 +24,32 @@ ColumnLayout {
id: myprof
}
IconTextField {
id: searchAddText
anchors.horizontalCenter: parent.horizontalCenter
Layout.minimumWidth: parent.width - 60
Layout.maximumWidth: parent.width - 60
//: ex: "... paste an address here to add a contact ..."
placeholderText: qsTr("paste-address-to-add-contact")
horizontalAlignment: TextInput.AlignHCenter
icon: gcd.assetPath + "core/search-24px.svg"
onTextChanged: {
if (text != "") {
gcd.importString(text)
text = ""
}
}
}
Flickable { // THE ACTUAL CONTACT LIST
id: sv
//Layout.alignment: Qt.AlignLeft | Qt.AlignTop
@ -37,7 +64,6 @@ ColumnLayout {
boundsBehavior: Flickable.StopAtBounds
maximumFlickVelocity: 400
ScrollBar.vertical: ScrollBar {
policy: ScrollBar.AsNeeded
background: Rectangle {

View File

@ -0,0 +1,49 @@
import QtQuick 2.7
import QtQuick.Controls 2.13
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.12
import "." as Widgets
import "../theme"
// IconTextField integrates a text field and an icon
TextField {
color: Theme.mainTextColor
font.pixelSize: Theme.secondaryTextSize * gcd.themeScale * gcd.themeScale
width: parent.width - 20
property alias icon: icon_.source
signal clicked
smooth: true
placeholderTextColor: Theme.altTextColor
background: Rectangle {
radius: 10
color: Theme.backgroundMainColor
border.color: Theme.backgroundMainColor
layer.enabled: true
layer.effect: DropShadow {
transparentBorder: true
horizontalOffset: 0
verticalOffset: 0
samples: 10
radius: 8
color: Theme.dropShadowColor
}
}
Widgets.Icon {
id: icon_
anchors.right: parent.right
anchors.rightMargin: 4
anchors.verticalCenter: parent.verticalCenter
height: parent.height-4;
width: parent.height-4;
iconColor: Theme.altTextColor
backgroundColor: Theme.backgroundMainColor
}
}

View File

@ -16,8 +16,8 @@ Item {
anchors.fill: parent
width: parent.width
height: profile.height + searchAddText.height + 10
implicitHeight: profile.height + searchAddText.height + 10
height: profile.height
implicitHeight: profile.height
property string image
property string nick
@ -99,6 +99,7 @@ Item {
id: nameRow
height: name.height
onWidthChanged: { name.textResize() }
color: Theme.backgroundMainColor
Rectangle {
id: nameCenter
@ -138,26 +139,6 @@ Item {
}
TextField {
id: searchAddText
anchors.top: profile.bottom
anchors.horizontalCenter: parent.horizontalCenter
style: CwtchTextFieldStyle{ }
width: parent.width - 30
//: ex: "... paste an address here to add a contact ..."
placeholderText: qsTr("paste-address-to-add-contact")
horizontalAlignment: TextInput.AlignHCenter
onTextChanged: {
if (text != "") {
gcd.importString(text)
text = ""
}
}
}
Connections {
target: gcd

View File

@ -104,17 +104,19 @@ ColumnLayout {
PortraitRow {
handle: ""
displayName: qsTr("add-new-profile-btn")
nameColor: Theme.mainTextColor
image: "/fontawesome/regular/user.svg"
tag: ""
portraitBorderColor: Theme.defaultButtonColor
portraitColor: Theme.defaultButtonColor
portraitBorderColor: Theme.portraitOnlineBorderColor
portraitColor: Theme.portraitOnlineBackgroundColor
badgeVisible: true
badgeContent: Image {
source: gcd.assetPath + "/fontawesome/solid/plus.svg"
height: Theme.badgeTextSize * gcd.themeScale
width: height
}
badgeColor: Theme.portraitOnlineBorderColor
badgeColor: Theme.defaultButtonColor
onClicked: function(handle) { profileAddEditPane.reset(); parentStack.pane = parentStack.addEditProfilePane }
}
}

View File

@ -0,0 +1,34 @@
import QtQuick 2.7
import QtQuick.Controls 2.13
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.12
import "." as Widgets
import "../theme"
// UnderlineTextField is a textfield styled as just an underline
TextField {
property alias backgroundColor: bg.color
color: Theme.mainTextColor
font.pixelSize: Theme.secondaryTextSize * gcd.themeScale * gcd.themeScale
signal clicked
smooth: true
placeholderTextColor: Theme.altTextColor
background: Rectangle {
id: bg
anchors.fill: parent
color: Theme.backgroundMainColor
border.color: color
}
Rectangle {
id: bottomBar
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
height: 2
color: Theme.mainTextColor
}
}