Compare commits
2 Commits
f609dcaac4
...
5cf1d6a1db
Author | SHA1 | Date |
---|---|---|
erinn | 5cf1d6a1db | |
erinn | ebfa5352b4 |
|
@ -6,7 +6,7 @@ import QtQuick.Controls 1.4
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/fonts/Twemoji.js" as T
|
import "../opaque/fonts/Twemoji.js" as T
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../utils.js" as Utils
|
import "../utils.js" as Utils
|
||||||
|
@ -175,7 +175,7 @@ ColumnLayout {
|
||||||
width: parent.width - 50
|
width: parent.width - 50
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
id: replybtn
|
id: replybtn
|
||||||
visible: selected
|
visible: selected
|
||||||
text: "reply"
|
text: "reply"
|
||||||
|
@ -230,7 +230,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widgets.Button { // SEND MESSAGE BUTTON
|
Opaque.Button { // SEND MESSAGE BUTTON
|
||||||
id: btnSend
|
id: btnSend
|
||||||
icon: "regular/paper-plane"
|
icon: "regular/paper-plane"
|
||||||
text: "post"
|
text: "post"
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/controls" as Awesome
|
import "../opaque/controls" as Awesome
|
||||||
import "../opaque/fonts/Twemoji.js" as T
|
import "../opaque/fonts/Twemoji.js" as T
|
||||||
import "../utils.js" as Utils
|
import "../utils.js" as Utils
|
||||||
|
@ -129,7 +129,7 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.EmojiDrawer {
|
Opaque.EmojiDrawer {
|
||||||
id: emojiDrawer
|
id: emojiDrawer
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -266,7 +266,7 @@ Item {
|
||||||
spacing: 1
|
spacing: 1
|
||||||
|
|
||||||
|
|
||||||
Widgets.Button { // SEND MESSAGE BUTTON
|
Opaque.Button { // SEND MESSAGE BUTTON
|
||||||
id: btnSend
|
id: btnSend
|
||||||
icon: "regular/paper-plane"
|
icon: "regular/paper-plane"
|
||||||
text: "send"
|
text: "send"
|
||||||
|
@ -302,7 +302,7 @@ Item {
|
||||||
spacing: 1
|
spacing: 1
|
||||||
|
|
||||||
|
|
||||||
Widgets.Button { // EMOJI DRAWER BUTTON
|
Opaque.Button { // EMOJI DRAWER BUTTON
|
||||||
id: btnEmoji
|
id: btnEmoji
|
||||||
icon: "regular/smile"
|
icon: "regular/smile"
|
||||||
anchors.right: btnAttach.left
|
anchors.right: btnAttach.left
|
||||||
|
@ -311,7 +311,7 @@ Item {
|
||||||
onClicked: emojiDrawer.visible ? emojiDrawer.slideclosed() : emojiDrawer.slideopen()
|
onClicked: emojiDrawer.visible ? emojiDrawer.slideclosed() : emojiDrawer.slideopen()
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
id: btnAttach
|
id: btnAttach
|
||||||
icon: "solid/paperclip"
|
icon: "solid/paperclip"
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
|
@ -5,7 +5,7 @@ import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/controls" as Awesome
|
import "../opaque/controls" as Awesome
|
||||||
import "../opaque/fonts/Twemoji.js" as T
|
import "../opaque/fonts/Twemoji.js" as T
|
||||||
import "../utils.js" as Utils
|
import "../utils.js" as Utils
|
||||||
|
@ -204,7 +204,7 @@ ColumnLayout {
|
||||||
style: CwtchTextFieldStyle{}
|
style: CwtchTextFieldStyle{}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button { // SEND MESSAGE BUTTON
|
Opaque.Button { // SEND MESSAGE BUTTON
|
||||||
id: btnSend
|
id: btnSend
|
||||||
icon: "regular/paper-plane"
|
icon: "regular/paper-plane"
|
||||||
text: "add"
|
text: "add"
|
||||||
|
|
|
@ -6,7 +6,7 @@ import QtQuick.Layouts 1.3
|
||||||
import QtQuick.Window 2.11
|
import QtQuick.Window 2.11
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
|
|
||||||
ColumnLayout { // settingsPane
|
ColumnLayout { // settingsPane
|
||||||
|
@ -26,7 +26,7 @@ ColumnLayout { // settingsPane
|
||||||
spacing: 5
|
spacing: 5
|
||||||
width: root.width
|
width: root.width
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
//: Server label
|
//: Server label
|
||||||
text: qsTr("server-label") + ":"
|
text: qsTr("server-label") + ":"
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ ColumnLayout { // settingsPane
|
||||||
text: "2c3kmoobnyghj2zw6pwv7d57yzld753auo3ugauezzpvfak3ahc4bdyd"
|
text: "2c3kmoobnyghj2zw6pwv7d57yzld753auo3ugauezzpvfak3ahc4bdyd"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel{
|
Opaque.ScalingLabel{
|
||||||
//: Group name label
|
//: Group name label
|
||||||
text: qsTr("group-name-label") + ":"
|
text: qsTr("group-name-label") + ":"
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ ColumnLayout { // settingsPane
|
||||||
text: qsTr("default-group-name")
|
text: qsTr("default-group-name")
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
//: create group button
|
//: create group button
|
||||||
text: qsTr("create-group-btn")
|
text: qsTr("create-group-btn")
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import QtQuick.Layouts 1.3
|
||||||
import QtQuick.Window 2.11
|
import QtQuick.Window 2.11
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../utils.js" as Utils
|
import "../utils.js" as Utils
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
leftPadding: 10
|
leftPadding: 10
|
||||||
spacing: 5
|
spacing: 5
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
text: qsTr("server-label") + ":"
|
text: qsTr("server-label") + ":"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
readOnly: true
|
readOnly: true
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
icon: "regular/clipboard"
|
icon: "regular/clipboard"
|
||||||
text: qsTr("copy-btn")
|
text: qsTr("copy-btn")
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
text: qsTr("invitation-label") + ":"
|
text: qsTr("invitation-label") + ":"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
readOnly: true
|
readOnly: true
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
icon: "regular/clipboard"
|
icon: "regular/clipboard"
|
||||||
text: qsTr("copy-btn")
|
text: qsTr("copy-btn")
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel{
|
Opaque.ScalingLabel{
|
||||||
text: qsTr("group-name-label") + ":"
|
text: qsTr("group-name-label") + ":"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
text: qsTr("save-btn")
|
text: qsTr("save-btn")
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -91,7 +91,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
}
|
}
|
||||||
|
|
||||||
//: Invite someone to the group
|
//: Invite someone to the group
|
||||||
Widgets.ScalingLabel { text: qsTr("invite-to-group-label") }
|
Opaque.ScalingLabel { text: qsTr("invite-to-group-label") }
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
id: cbInvite
|
id: cbInvite
|
||||||
|
@ -101,7 +101,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
style: CwtchComboBoxStyle{}
|
style: CwtchComboBoxStyle{}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
text: qsTr("invite-btn")
|
text: qsTr("invite-btn")
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -109,7 +109,7 @@ ColumnLayout { // groupSettingsPane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
icon: "regular/trash-alt"
|
icon: "regular/trash-alt"
|
||||||
text: qsTr("delete-btn")
|
text: qsTr("delete-btn")
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../overlays"
|
import "../overlays"
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ ColumnLayout {
|
||||||
text: qsTr("accept-group-invite-label") + " " + overlay.name + "?"
|
text: qsTr("accept-group-invite-label") + " " + overlay.name + "?"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
//: Accept group invite button
|
//: Accept group invite button
|
||||||
text: qsTr("accept-group-btn")
|
text: qsTr("accept-group-btn")
|
||||||
icon: "regular/heart"
|
icon: "regular/heart"
|
||||||
|
@ -34,7 +34,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
//: Reject Group invite button
|
//: Reject Group invite button
|
||||||
text: qsTr("reject-group-btn")
|
text: qsTr("reject-group-btn")
|
||||||
icon: "regular/trash-alt"
|
icon: "regular/trash-alt"
|
||||||
|
@ -49,21 +49,21 @@ ColumnLayout {
|
||||||
id: switcher
|
id: switcher
|
||||||
|
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
text: qsTr("chat-btn")
|
text: qsTr("chat-btn")
|
||||||
|
|
||||||
|
|
||||||
onClicked: overlayStack.overlay = overlayStack.chatOverlay
|
onClicked: overlayStack.overlay = overlayStack.chatOverlay
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
text: qsTr("lists-btn")
|
text: qsTr("lists-btn")
|
||||||
|
|
||||||
|
|
||||||
onClicked: overlayStack.overlay = overlayStack.listOverlay
|
onClicked: overlayStack.overlay = overlayStack.listOverlay
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
text: qsTr("bulletins-btn")
|
text: qsTr("bulletins-btn")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import QtQuick.Window 2.11
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ ColumnLayout { // peerSettingsPane
|
||||||
columns: 1
|
columns: 1
|
||||||
width:parent.width * 0.95
|
width:parent.width * 0.95
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
Widgets.EllipsisLabel {
|
Opaque.EllipsisLabel {
|
||||||
anchors.left:parent.left
|
anchors.left:parent.left
|
||||||
color: Theme.mainTextColor
|
color: Theme.mainTextColor
|
||||||
text: qsTr("address-label")
|
text: qsTr("address-label")
|
||||||
|
@ -40,7 +40,7 @@ ColumnLayout { // peerSettingsPane
|
||||||
font.pointSize: 15 * gcd.themeScale
|
font.pointSize: 15 * gcd.themeScale
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ButtonTextField {
|
Opaque.ButtonTextField {
|
||||||
id: txtOnion
|
id: txtOnion
|
||||||
anchors.left:parent.left
|
anchors.left:parent.left
|
||||||
anchors.right:parent.right
|
anchors.right:parent.right
|
||||||
|
@ -56,13 +56,13 @@ ColumnLayout { // peerSettingsPane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.HLine{}
|
Opaque.HLine{}
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
columns: 1
|
columns: 1
|
||||||
width:parent.width * 0.95
|
width:parent.width * 0.95
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
Widgets.EllipsisLabel {
|
Opaque.EllipsisLabel {
|
||||||
anchors.left:parent.left
|
anchors.left:parent.left
|
||||||
color: Theme.mainTextColor
|
color: Theme.mainTextColor
|
||||||
text: qsTr("display-name-label")
|
text: qsTr("display-name-label")
|
||||||
|
@ -71,7 +71,7 @@ ColumnLayout { // peerSettingsPane
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widgets.ButtonTextField {
|
Opaque.ButtonTextField {
|
||||||
id: txtDisplayName
|
id: txtDisplayName
|
||||||
anchors.left:parent.left
|
anchors.left:parent.left
|
||||||
anchors.right:parent.right
|
anchors.right:parent.right
|
||||||
|
@ -86,21 +86,21 @@ ColumnLayout { // peerSettingsPane
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widgets.HLine{}
|
Opaque.HLine{}
|
||||||
|
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
columns: 2
|
columns: 2
|
||||||
width:parent.width * 0.95
|
width:parent.width * 0.95
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
Widgets.EllipsisLabel {
|
Opaque.EllipsisLabel {
|
||||||
color: Theme.mainTextColor
|
color: Theme.mainTextColor
|
||||||
text: qsTr("block-btn")
|
text: qsTr("block-btn")
|
||||||
font.styleName: "ExtraBold"
|
font.styleName: "ExtraBold"
|
||||||
font.pointSize: 15 * gcd.themeScale
|
font.pointSize: 15 * gcd.themeScale
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ToggleSwitch {
|
Opaque.ToggleSwitch {
|
||||||
isToggled: root.blocked // ? qsTr("unblock-btn") : qsTr("block-btn")
|
isToggled: root.blocked // ? qsTr("unblock-btn") : qsTr("block-btn")
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
onToggled: function() {
|
onToggled: function() {
|
||||||
|
@ -117,11 +117,11 @@ ColumnLayout { // peerSettingsPane
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.HLine{}
|
Opaque.HLine{}
|
||||||
Column {
|
Column {
|
||||||
width:parent.width * 0.95
|
width:parent.width * 0.95
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
icon: "regular/trash-alt"
|
icon: "regular/trash-alt"
|
||||||
text: qsTr("delete-btn")
|
text: qsTr("delete-btn")
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
|
@ -6,7 +6,7 @@ import QtQuick.Layouts 1.3
|
||||||
import QtQuick.Window 2.11
|
import QtQuick.Window 2.11
|
||||||
|
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
// import "../styles"
|
// import "../styles"
|
||||||
|
|
||||||
ColumnLayout { // Add Profile Pane
|
ColumnLayout { // Add Profile Pane
|
||||||
|
@ -71,23 +71,23 @@ ColumnLayout { // Add Profile Pane
|
||||||
spacing: 5
|
spacing: 5
|
||||||
width: profileAddEditPane.width
|
width: profileAddEditPane.width
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
//: Onion
|
//: Onion
|
||||||
text: qsTr("profile-onion-label") + ":"
|
text: qsTr("profile-onion-label") + ":"
|
||||||
visible: mode == "edit"
|
visible: mode == "edit"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: onionLabel
|
id: onionLabel
|
||||||
visible: mode == "edit"
|
visible: mode == "edit"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
//: Display name
|
//: Display name
|
||||||
text: qsTr("profile-name") + ":"
|
text: qsTr("profile-name") + ":"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.TextField {
|
Opaque.TextField {
|
||||||
id: txtProfileName
|
id: txtProfileName
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
||||||
|
@ -100,7 +100,7 @@ ColumnLayout { // Add Profile Pane
|
||||||
RowLayout {
|
RowLayout {
|
||||||
//id: radioButtons
|
//id: radioButtons
|
||||||
|
|
||||||
Widgets.RadioButton {
|
Opaque.RadioButton {
|
||||||
id: radioUsePassword
|
id: radioUsePassword
|
||||||
checked: true
|
checked: true
|
||||||
//: Password
|
//: Password
|
||||||
|
@ -111,7 +111,7 @@ ColumnLayout { // Add Profile Pane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.RadioButton {
|
Opaque.RadioButton {
|
||||||
id: radioNoPassword
|
id: radioNoPassword
|
||||||
//: Unencrypted (No password)
|
//: Unencrypted (No password)
|
||||||
text: qsTr("radio-no-password")
|
text: qsTr("radio-no-password")
|
||||||
|
@ -122,35 +122,35 @@ ColumnLayout { // Add Profile Pane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: noPasswordLabel
|
id: noPasswordLabel
|
||||||
//: Not using a password on this account means that all data stored locally will not be encrypted
|
//: Not using a password on this account means that all data stored locally will not be encrypted
|
||||||
text: qsTr("no-password-warning")
|
text: qsTr("no-password-warning")
|
||||||
visible: radioNoPassword.checked
|
visible: radioNoPassword.checked
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: currentPasswordLabel
|
id: currentPasswordLabel
|
||||||
//: Current Password
|
//: Current Password
|
||||||
text: qsTr("current-password-label") + ":"
|
text: qsTr("current-password-label") + ":"
|
||||||
visible: radioUsePassword.checked && mode == "edit" && tag != "v1-defaultPassword"
|
visible: radioUsePassword.checked && mode == "edit" && tag != "v1-defaultPassword"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.TextField {
|
Opaque.TextField {
|
||||||
id: txtCurrentPassword
|
id: txtCurrentPassword
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
echoMode: TextInput.Password
|
echoMode: TextInput.Password
|
||||||
visible: radioUsePassword.checked && mode == "edit" && tag != "v1-defaultPassword"
|
visible: radioUsePassword.checked && mode == "edit" && tag != "v1-defaultPassword"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: passwordLabel
|
id: passwordLabel
|
||||||
//: Password
|
//: Password
|
||||||
text: qsTr("password1-label") + ":"
|
text: qsTr("password1-label") + ":"
|
||||||
visible: radioUsePassword.checked
|
visible: radioUsePassword.checked
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.TextField {
|
Opaque.TextField {
|
||||||
id: txtPassword1
|
id: txtPassword1
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
||||||
|
@ -163,14 +163,14 @@ ColumnLayout { // Add Profile Pane
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: passwordReLabel
|
id: passwordReLabel
|
||||||
//: Reenter password
|
//: Reenter password
|
||||||
text: qsTr("password2-label") + ":"
|
text: qsTr("password2-label") + ":"
|
||||||
visible: radioUsePassword.checked
|
visible: radioUsePassword.checked
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.TextField {
|
Opaque.TextField {
|
||||||
id: txtPassword2
|
id: txtPassword2
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
||||||
|
@ -178,7 +178,7 @@ ColumnLayout { // Add Profile Pane
|
||||||
visible: radioUsePassword.checked
|
visible: radioUsePassword.checked
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button { // ADD or SAVE button
|
Opaque.Button { // ADD or SAVE button
|
||||||
//: Create Profile || Save Profile
|
//: Create Profile || Save Profile
|
||||||
text: mode == "add" ? qsTr("create-profile-btn") : qsTr("save-profile-btn")
|
text: mode == "add" ? qsTr("create-profile-btn") : qsTr("save-profile-btn")
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ ColumnLayout { // Add Profile Pane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: passwordErrorLabel
|
id: passwordErrorLabel
|
||||||
//: Passwords do not match
|
//: Passwords do not match
|
||||||
text: qsTr("password-error-match")
|
text: qsTr("password-error-match")
|
||||||
|
@ -217,7 +217,7 @@ ColumnLayout { // Add Profile Pane
|
||||||
color: "red"
|
color: "red"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: passwordChangeErrorLabel
|
id: passwordChangeErrorLabel
|
||||||
//: Error changing password: Supplied password rejected
|
//: Error changing password: Supplied password rejected
|
||||||
text: qsTr("password-change-error")
|
text: qsTr("password-change-error")
|
||||||
|
@ -227,7 +227,7 @@ ColumnLayout { // Add Profile Pane
|
||||||
|
|
||||||
// ***** Delete button and confirm flow *****
|
// ***** Delete button and confirm flow *****
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
//: Delete Profile
|
//: Delete Profile
|
||||||
text: qsTr("delete-profile-btn")
|
text: qsTr("delete-profile-btn")
|
||||||
icon: "regular/trash-alt"
|
icon: "regular/trash-alt"
|
||||||
|
@ -239,21 +239,21 @@ ColumnLayout { // Add Profile Pane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: deleteConfirmLabel
|
id: deleteConfirmLabel
|
||||||
//: Type DELETE to confirm
|
//: Type DELETE to confirm
|
||||||
text: qsTr("delete-confirm-label")+ ":"
|
text: qsTr("delete-confirm-label")+ ":"
|
||||||
visible: deleting
|
visible: deleting
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.TextField {
|
Opaque.TextField {
|
||||||
id: confirmDeleteTxt
|
id: confirmDeleteTxt
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
//style: CwtchTextFieldStyle{ width: tehcol.width * 0.8 }
|
||||||
visible: deleting
|
visible: deleting
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
id: confirmDeleteBtn
|
id: confirmDeleteBtn
|
||||||
icon: "regular/trash-alt"
|
icon: "regular/trash-alt"
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import QtQuick.Controls.Styles 1.4
|
||||||
|
|
||||||
import "../widgets"
|
import "../widgets"
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/controls"
|
import "../opaque/controls"
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
@ -22,14 +22,14 @@ ColumnLayout {
|
||||||
//leftPadding: 10
|
//leftPadding: 10
|
||||||
//spacing: 5
|
//spacing: 5
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
//: Please enter password:
|
//: Please enter password:
|
||||||
text: qsTr("enter-profile-password")+":"
|
text: qsTr("enter-profile-password")+":"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.UnderlineTextField {
|
Opaque.UnderlineTextField {
|
||||||
id: txtPassword
|
id: txtPassword
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
@ -40,7 +40,7 @@ ColumnLayout {
|
||||||
onAccepted: button.clicked()
|
onAccepted: button.clicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
id: error
|
id: error
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
color: "red"
|
color: "red"
|
||||||
|
@ -49,7 +49,7 @@ ColumnLayout {
|
||||||
visible: false
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {
|
Opaque.Button {
|
||||||
id: "button"
|
id: "button"
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import QtQuick.Window 2.11
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/controls"
|
import "../opaque/controls"
|
||||||
|
|
||||||
ColumnLayout { // settingsPane
|
ColumnLayout { // settingsPane
|
||||||
|
@ -28,14 +28,14 @@ ColumnLayout { // settingsPane
|
||||||
spacing: 5
|
spacing: 5
|
||||||
width: root.width
|
width: root.width
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
//: Version: %1 Built on: %2
|
//: Version: %1 Built on: %2
|
||||||
text: qsTr("version %1 builddate %2").arg(gcd.version).arg(gcd.buildDate)
|
text: qsTr("version %1 builddate %2").arg(gcd.version).arg(gcd.buildDate)
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
//: Interface zoom (mostly affects text and button sizes)
|
//: Interface zoom (mostly affects text and button sizes)
|
||||||
|
@ -67,26 +67,26 @@ ColumnLayout { // settingsPane
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
style: CheckBoxStyle {
|
style: CheckBoxStyle {
|
||||||
label: Widgets.ScalingLabel {
|
label: Opaque.ScalingLabel {
|
||||||
text: qsTr("block-unknown-label")
|
text: qsTr("block-unknown-label")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
text: qsTr("large-text-label")
|
text: qsTr("large-text-label")
|
||||||
size: 20
|
size: 20
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel{
|
Opaque.ScalingLabel{
|
||||||
width: parent.width
|
width: parent.width
|
||||||
wrapMode: TextEdit.Wrap
|
wrapMode: TextEdit.Wrap
|
||||||
//: "Default size text (scale factor: "
|
//: "Default size text (scale factor: "
|
||||||
text: qsTr("default-scaling-text") + " " + Math.round(zoomSlider.value * 100) / 100 + ")"
|
text: qsTr("default-scaling-text") + " " + Math.round(zoomSlider.value * 100) / 100 + ")"
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.ScalingLabel {
|
Opaque.ScalingLabel {
|
||||||
text: qsTr("small-text-label")
|
text: qsTr("small-text-label")
|
||||||
size: 8
|
size: 8
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -27,7 +27,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widgets.IconTextField {
|
Opaque.IconTextField {
|
||||||
id: searchAddText
|
id: searchAddText
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,11 @@ import CustomQmlTypes 1.0
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
|
||||||
Widgets.PortraitRow {
|
Opaque.PortraitRow {
|
||||||
property int status: 0
|
property int status: 0
|
||||||
property int badge
|
property int badge
|
||||||
property bool loading
|
property bool loading
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/controls" as Awesome
|
import "../opaque/controls" as Awesome
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -43,7 +43,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Widgets.Portrait {
|
Opaque.Portrait {
|
||||||
id: imgProfile
|
id: imgProfile
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
// TODO: currently unused?
|
// TODO: currently unused?
|
||||||
|
|
|
@ -7,7 +7,7 @@ import QtQuick.Layouts 1.3
|
||||||
import QtQuick.Window 2.11
|
import QtQuick.Window 2.11
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ Item {
|
||||||
id: profile
|
id: profile
|
||||||
color: Theme.backgroundMainColor
|
color: Theme.backgroundMainColor
|
||||||
|
|
||||||
Widgets.Portrait {
|
Opaque.Portrait {
|
||||||
id: portrait
|
id: portrait
|
||||||
|
|
||||||
source: root.image
|
source: root.image
|
||||||
|
@ -105,7 +105,7 @@ Item {
|
||||||
id: nameCenter
|
id: nameCenter
|
||||||
width: name.width + addBtn.width
|
width: name.width + addBtn.width
|
||||||
|
|
||||||
Widgets.EllipsisLabel {
|
Opaque.EllipsisLabel {
|
||||||
id: name
|
id: name
|
||||||
|
|
||||||
anchors.right: undefined
|
anchors.right: undefined
|
||||||
|
@ -119,7 +119,7 @@ Item {
|
||||||
container: nameRow
|
container: nameRow
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button { // Add Button
|
Opaque.Button { // Add Button
|
||||||
id: addBtn
|
id: addBtn
|
||||||
|
|
||||||
anchors.left: name.right
|
anchors.left: name.right
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls.Material 2.0
|
import QtQuick.Controls.Material 2.0
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
|
@ -103,7 +103,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.PortraitRow {
|
Opaque.PortraitRow {
|
||||||
handle: ""
|
handle: ""
|
||||||
displayName: qsTr("add-new-profile-btn")
|
displayName: qsTr("add-new-profile-btn")
|
||||||
nameColor: Theme.mainTextColor
|
nameColor: Theme.mainTextColor
|
||||||
|
|
|
@ -7,11 +7,11 @@ import CustomQmlTypes 1.0
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 1.4
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
|
|
||||||
import "../opaque" as Widgets
|
import "../opaque" as Opaque
|
||||||
import "../opaque/styles"
|
import "../opaque/styles"
|
||||||
import "../opaque/theme"
|
import "../opaque/theme"
|
||||||
|
|
||||||
Widgets.PortraitRow {
|
Opaque.PortraitRow {
|
||||||
badgeColor: Theme.portraitProfileBadgeColor
|
badgeColor: Theme.portraitProfileBadgeColor
|
||||||
|
|
||||||
portraitBorderColor: Theme.portraitOnlineBorderColor
|
portraitBorderColor: Theme.portraitOnlineBorderColor
|
||||||
|
@ -26,7 +26,7 @@ Widgets.PortraitRow {
|
||||||
width: height
|
width: height
|
||||||
}
|
}
|
||||||
|
|
||||||
Widgets.Button {// Edit BUTTON
|
Opaque.Button {// Edit BUTTON
|
||||||
id: btnEdit
|
id: btnEdit
|
||||||
icon: "solid/user-edit"
|
icon: "solid/user-edit"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,186 @@
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.4
|
||||||
|
|
||||||
|
import "../opaque" as Opaque
|
||||||
|
import "../opaque/theme"
|
||||||
|
|
||||||
|
// Statusbar is a app wide 10-25 tall bar that should be place at the bottom of the app that gives network health information
|
||||||
|
// it changes color and text/icon message based on network health. when netowrk is not healthy it is always in fullsized mode
|
||||||
|
// when network is health it reduces to a minimal color strip unless mouse overed / clicked to reveal the text/icons
|
||||||
|
Rectangle {
|
||||||
|
id: statusbar
|
||||||
|
|
||||||
|
property int status: statusDisconnectedInternet
|
||||||
|
|
||||||
|
readonly property int statusDisconnectedInternet: 0
|
||||||
|
readonly property int statusDisconnectedTor: 1
|
||||||
|
readonly property int statusConnecting: 2
|
||||||
|
readonly property int statusOnline: 3
|
||||||
|
|
||||||
|
readonly property int openHeight: 25
|
||||||
|
readonly property int hideHeight: 10
|
||||||
|
|
||||||
|
property bool isHover: false
|
||||||
|
|
||||||
|
height: openHeight
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: statusMessage
|
||||||
|
opacity: 0
|
||||||
|
anchors.right: networkStatus.left
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.rightMargin: 5 * gcd.themeScale
|
||||||
|
|
||||||
|
font.pixelSize: Theme.statusTextSize * gcd.themeScale
|
||||||
|
}
|
||||||
|
|
||||||
|
Opaque.Icon {
|
||||||
|
id: networkStatus
|
||||||
|
opacity: 0
|
||||||
|
anchors.right: connectionStatus.left
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.rightMargin: 5 * gcd.themeScale
|
||||||
|
height: 18
|
||||||
|
width: 18
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Opaque.Icon {
|
||||||
|
id: connectionStatus
|
||||||
|
opacity: 0
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.rightMargin: 10 * gcd.themeScale
|
||||||
|
height: 18 * gcd.themeScale
|
||||||
|
width: 18 * gcd.themeScale
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeStatus() {
|
||||||
|
if (status == statusDisconnectedInternet) {
|
||||||
|
statusbar.color = Theme.statusbarDisconnectedInternetColor
|
||||||
|
statusMessage.color = Theme.statusbarDisconnectedInternetFontColor
|
||||||
|
networkStatus.iconColor = Theme.statusbarDisconnectedInternetFontColor
|
||||||
|
networkStatus.source = gcd.assetPath + "core/signal_cellular_off-24px.svg"
|
||||||
|
connectionStatus.iconColor = Theme.statusbarDisconnectedInternetFontColor
|
||||||
|
connectionStatus.source = gcd.assetPath + "core/syncing-03.svg"
|
||||||
|
//: Disconnected from the internet, check your connection
|
||||||
|
statusMessage.text = qsTr("network-status-disconnected")
|
||||||
|
show()
|
||||||
|
} else if (status == statusDisconnectedTor) {
|
||||||
|
statusbar.color = Theme.statusbarDisconnectedTorColor
|
||||||
|
statusMessage.color = Theme.statusbarDisconnectedTorFontColor
|
||||||
|
networkStatus.iconColor = Theme.statusbarDisconnectedTorFontColor
|
||||||
|
networkStatus.source = gcd.assetPath + "core/signal_cellular_connected_no_internet_4_bar-24px.svg"
|
||||||
|
connectionStatus.iconColor = Theme.statusbarDisconnectedTorFontColor
|
||||||
|
connectionStatus.source = gcd.assetPath + "core/syncing-03.svg"
|
||||||
|
//: Attempting to connect to Tor network
|
||||||
|
statusMessage.text = qsTr("network-status-attempting-tor")
|
||||||
|
show()
|
||||||
|
} else if (status == statusConnecting) {
|
||||||
|
statusbar.color = Theme.statusbarConnectingColor
|
||||||
|
statusMessage.color = Theme.statusbarConnectingFontColor
|
||||||
|
networkStatus.iconColor = Theme.statusbarConnectingFontColor
|
||||||
|
networkStatus.source = gcd.assetPath + "core/signal_cellular_connected_no_internet_4_bar-24px.svg"
|
||||||
|
connectionStatus.iconColor = Theme.statusbarConnectingFontColor
|
||||||
|
connectionStatus.source = gcd.assetPath + "core/syncing-02.svg"
|
||||||
|
//: Connecting...
|
||||||
|
statusMessage.text = qsTr("network-status-connecting")
|
||||||
|
show()
|
||||||
|
} else {
|
||||||
|
statusbar.color = Theme.statusbarOnlineColor
|
||||||
|
statusMessage.color = Theme.statusbarOnlineFontColor
|
||||||
|
networkStatus.iconColor = Theme.statusbarOnlineFontColor
|
||||||
|
networkStatus.source = gcd.assetPath + "core/signal_cellular_4_bar-24px.svg"
|
||||||
|
connectionStatus.iconColor = Theme.statusbarOnlineFontColor
|
||||||
|
connectionStatus.source = gcd.assetPath + "core/syncing-01.svg"
|
||||||
|
//: Online
|
||||||
|
statusMessage.text = qsTr("network-status-online")
|
||||||
|
hide()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: ma
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
|
SequentialAnimation {
|
||||||
|
id: showAnim
|
||||||
|
PropertyAnimation { id: openStatus; target: statusbar; property: "height"; to: openHeight}
|
||||||
|
ParallelAnimation {
|
||||||
|
PropertyAnimation { id: showStatus; target: statusMessage; property: "opacity"; to: 1}
|
||||||
|
PropertyAnimation { id: showNetIcon; target: networkStatus; property: "opacity"; to: 1}
|
||||||
|
PropertyAnimation { id: showConnIcon; target: connectionStatus; property: "opacity"; to: 1}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SequentialAnimation {
|
||||||
|
id: hideAnim
|
||||||
|
ParallelAnimation {
|
||||||
|
PropertyAnimation { id: hideStatus; target: statusMessage; property: "opacity"; to: 0}
|
||||||
|
PropertyAnimation { id: hideNetIcon; target: networkStatus; property: "opacity"; to: 0}
|
||||||
|
PropertyAnimation { id: hideConnIcon; target: connectionStatus; property: "opacity"; to: 0}
|
||||||
|
}
|
||||||
|
PropertyAnimation { id: closeStatus; target: statusbar; property: "height"; to: hideHeight; duration: 200 }
|
||||||
|
}
|
||||||
|
|
||||||
|
onEntered: {
|
||||||
|
isHover = true
|
||||||
|
show()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
onExited: {
|
||||||
|
isHover = false
|
||||||
|
hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
onPressed: {
|
||||||
|
isHover = true
|
||||||
|
show()
|
||||||
|
}
|
||||||
|
|
||||||
|
onReleased: {
|
||||||
|
isHover = false
|
||||||
|
hide()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetHeight() {
|
||||||
|
if (isHover || status != statusOnline) {
|
||||||
|
height = openHeight
|
||||||
|
} else {
|
||||||
|
height = hideHeight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function show() {
|
||||||
|
if (isHover || status != statusOnline) {
|
||||||
|
hideAnim.stop()
|
||||||
|
showAnim.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function hide() {
|
||||||
|
if (!isHover && status == statusOnline) {
|
||||||
|
showAnim.stop()
|
||||||
|
hideAnim.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onStatusChanged: { changeStatus() }
|
||||||
|
|
||||||
|
Component.onCompleted: { resetHeight() }
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: gcd
|
||||||
|
|
||||||
|
onTorStatus: function(code) {
|
||||||
|
status = code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue