From 290b0b26dbc89659304feecb91c08256f1950f5d Mon Sep 17 00:00:00 2001 From: erinn Date: Mon, 14 Dec 2020 17:22:20 -0800 Subject: [PATCH 1/4] new scaling system pass one --- go/ui/gcd.go | 11 ++ go/ui/settings.go | 6 +- i18n/translation_de.ts | 52 +++++---- i18n/translation_en.ts | 63 ++++++---- i18n/translation_fr.ts | 52 +++++---- i18n/translation_pt.ts | 52 +++++---- qml/main.qml | 50 +++++--- qml/opaque | 2 +- qml/overlays/BulletinOverlay.qml | 9 +- qml/overlays/ListOverlay.qml | 26 ++--- qml/panes/AddPeerGroupPane.qml | 9 +- qml/panes/GroupSettingsPane.qml | 7 +- qml/panes/OverlayPane.qml | 17 +-- qml/panes/PeerSettingsPane.qml | 6 +- qml/panes/ProfileAddEditPane.qml | 41 ++++--- qml/panes/ProfileManagerPane.qml | 42 +++---- qml/panes/ServerAddEditPane.qml | 16 +-- qml/panes/ServerInfoPane.qml | 13 +-- qml/panes/SettingsPane.qml | 193 +++++++++++++++++++++---------- qml/panes/SplashPane.qml | 5 +- qml/widgets/ContactList.qml | 31 ++--- qml/widgets/ContactRow.qml | 2 +- qml/widgets/ExperimentToggle.qml | 16 +-- qml/widgets/Message.qml | 36 +++--- qml/widgets/MessageEditor.qml | 7 +- qml/widgets/MyProfile.qml | 167 ++++++++++---------------- qml/widgets/ProfileList.qml | 10 -- qml/widgets/ProfileRow.qml | 6 +- qml/widgets/ServerList.qml | 14 +-- 29 files changed, 501 insertions(+), 460 deletions(-) diff --git a/go/ui/gcd.go b/go/ui/gcd.go index 5d3fe715..2ee99c44 100644 --- a/go/ui/gcd.go +++ b/go/ui/gcd.go @@ -42,7 +42,12 @@ type GrandCentralDispatcher struct { _ int `property:"torStatus"` _ string `property:"os"` _ bool `property:"firstTime"` + // phasing out themeScale in three steps: + // 1 (current): switch labels to themeScaleNew + // 2: switch everything else to themeScaleNew + // 3: refactor: delete themeScale, rename themeScaleNew -> themeScale _ float32 `property:"themeScale,auto,changed"` + _ int `property:"themeScaleNew,auto,changed"` _ string `property:"theme,auto,changed"` _ string `property:"locale,auto,changed"` _ string `property:"version"` @@ -159,6 +164,7 @@ func (this *GrandCentralDispatcher) init() { this.GlobalSettings, firstTime = ReadGlobalSettings() this.SetFirstTime(firstTime) this.SetThemeScale(this.GlobalSettings.Zoom) + this.SetThemeScaleNew(this.GlobalSettings.Scale) this.SetTheme(this.GlobalSettings.Theme) this.SetExperimentsEnabled(this.GlobalSettings.ExperimentsEnabled) this.SetExperiments(this.GlobalSettings.Experiments) @@ -779,6 +785,11 @@ func (this *GrandCentralDispatcher) themeScaleChanged(newThemeScale float32) { WriteGlobalSettings(this.GlobalSettings) } +func (this *GrandCentralDispatcher) themeScaleNewChanged(newScale int) { + this.GlobalSettings.Scale = newScale + WriteGlobalSettings(this.GlobalSettings) +} + // Turn on/off global experiments func (this *GrandCentralDispatcher) experimentsEnabledChanged(enabled bool) { this.GlobalSettings.ExperimentsEnabled = enabled diff --git a/go/ui/settings.go b/go/ui/settings.go index 4e8b3530..f6abab32 100644 --- a/go/ui/settings.go +++ b/go/ui/settings.go @@ -16,7 +16,8 @@ const GlobalSettingsFilename = "ui.globals" const saltFile = "SALT" type GlobalSettings struct { - Zoom float32 + Zoom float32 // deprecated + Scale int // the new hotness Locale string Theme string PreviousPid int64 @@ -27,6 +28,7 @@ type GlobalSettings struct { var DefaultGlobalSettings = GlobalSettings{ Zoom: 1.9, + Scale: 2, Locale: "en", Theme: "light", PreviousPid: -1, @@ -76,7 +78,7 @@ func ReadGlobalSettings() (*GlobalSettings, bool) { return &settings, true //firstTime = true } - log.Debugf("Settings: %v", settings) + log.Debugf("Settings: %#v", settings) return &settings, false } diff --git a/i18n/translation_de.ts b/i18n/translation_de.ts index 4106f6e4..f84a8ca0 100644 --- a/i18n/translation_de.ts +++ b/i18n/translation_de.ts @@ -122,19 +122,19 @@ ChatOverlay - + chat-history-default This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right. - + chat-history-disabled Message history is disabled. - + chat-history-enabled Message history is enabled. @@ -148,7 +148,7 @@ Adresse hier hinzufügen, um einen Kontakt aufzunehmen - + blocked @@ -285,18 +285,18 @@ Klicken, um DM zu senden - + could-not-send-msg-error Could not send this message Nachricht konnte nicht gesendet werden - + acknowledged-label bestätigt - + pending-label Bestätigung ausstehend @@ -569,36 +569,36 @@ ProfileManagerPane - + enter-profile-password Enter a password to view your profiles - + password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password - + your-profiles Your Profiles - + your-servers Your Profiles - + unlock Unlock @@ -649,40 +649,47 @@ - + + medium-text-label + medium text + + + + large-text-label + large text Groß - + setting-theme Theme - + theme-light - + theme-dark - + experiments-enabled Theme - + version %1 tor %2 Version %1 with tor %2 - + builddate %2 Built on: %2 @@ -693,8 +700,9 @@ defaultmäßige Textgröße (Skalierungsfaktor: - + small-text-label + small text Klein @@ -737,7 +745,7 @@ main - + new-connection-pane-title New Connection diff --git a/i18n/translation_en.ts b/i18n/translation_en.ts index 9a0ae436..bf63587a 100644 --- a/i18n/translation_en.ts +++ b/i18n/translation_en.ts @@ -135,24 +135,35 @@ ChatOverlay - + chat-history-default This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right. Your history with this peer is ephemeral and will not be saved. If you would like to save history, please go to settings and turn it on. - + chat-history-disabled Message history is disabled. Message history is disabled. - + chat-history-enabled Message history is enabled. Message history is enabled. + + Collapser/Expander Widget + + collapser-show + Show + + + collapser-hide + Hide + + ContactList @@ -161,7 +172,7 @@ ... paste an address here to add a contact... - + blocked Blocked @@ -378,18 +389,18 @@ Right-click to reset. Click to DM - + could-not-send-msg-error Could not send this message Could not send this message - + acknowledged-label Acknowledged - + pending-label Pending @@ -688,36 +699,36 @@ Right-click to reset. ProfileManagerPane - + enter-profile-password Enter a password to view your profiles Enter a password to view your profiles - + password Password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password 0 profiles loaded with that password - + your-profiles Your Profiles Your Profiles - + your-servers Your Profiles Your Servers - + unlock Unlock Unlock @@ -777,34 +788,41 @@ Right-click to reset. Zoom level - + + medium-text-label + medium text + + + + large-text-label + large text Large - + setting-theme Theme Theme - + theme-light Light - + theme-dark Dark - + experiments-enabled Theme Experiments enabled - + version %1 tor %2 Version %1 with tor %2 Version %1 with tor %2 @@ -815,7 +833,7 @@ Right-click to reset. Version %1 - + builddate %2 Built on: %2 Built on: %2 @@ -826,8 +844,9 @@ Right-click to reset. Default size text (scale factor: - + small-text-label + small text Small @@ -878,7 +897,7 @@ Right-click to reset. main - + new-connection-pane-title New Connection New Connection diff --git a/i18n/translation_fr.ts b/i18n/translation_fr.ts index 845397ac..31bd7626 100644 --- a/i18n/translation_fr.ts +++ b/i18n/translation_fr.ts @@ -122,19 +122,19 @@ ChatOverlay - + chat-history-default This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right. - + chat-history-disabled Message history is disabled. - + chat-history-enabled Message history is enabled. @@ -148,7 +148,7 @@ ... coller une adresse ici pour ajouter un contact... - + blocked @@ -285,18 +285,18 @@ Envoyer un message privé - + could-not-send-msg-error Could not send this message Impossible d'envoyer ce message - + acknowledged-label Confirmé - + pending-label En attente @@ -569,36 +569,36 @@ ProfileManagerPane - + enter-profile-password Enter a password to view your profiles - + password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password - + your-profiles Your Profiles - + your-servers Your Profiles - + unlock Unlock @@ -649,40 +649,47 @@ - + + medium-text-label + medium text + + + + large-text-label + large text Large - + setting-theme Theme - + theme-light - + theme-dark - + experiments-enabled Theme - + version %1 tor %2 Version %1 with tor %2 - + builddate %2 Built on: %2 @@ -693,8 +700,9 @@ Taille par défaut du texte (échelle: - + small-text-label + small text Petit @@ -737,7 +745,7 @@ main - + new-connection-pane-title New Connection diff --git a/i18n/translation_pt.ts b/i18n/translation_pt.ts index c5988b10..d7704262 100644 --- a/i18n/translation_pt.ts +++ b/i18n/translation_pt.ts @@ -122,19 +122,19 @@ ChatOverlay - + chat-history-default This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right. - + chat-history-disabled Message history is disabled. - + chat-history-enabled Message history is enabled. @@ -148,7 +148,7 @@ … cole um endereço aqui para adicionar um contato… - + blocked @@ -285,18 +285,18 @@ Clique para DM - + could-not-send-msg-error Could not send this message Não deu para enviar esta mensagem - + acknowledged-label Confirmada - + pending-label Pendente @@ -569,36 +569,36 @@ ProfileManagerPane - + enter-profile-password Enter a password to view your profiles - + password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password - + your-profiles Your Profiles - + your-servers Your Profiles - + unlock Unlock @@ -649,40 +649,47 @@ - + + medium-text-label + medium text + + + + large-text-label + large text Grande - + setting-theme Theme - + theme-light - + theme-dark - + experiments-enabled Theme - + version %1 tor %2 Version %1 with tor %2 - + builddate %2 Built on: %2 @@ -693,8 +700,9 @@ Texto tamanho padrão (fator de escala: - + small-text-label + small text Pequeno @@ -737,7 +745,7 @@ main - + new-connection-pane-title New Connection diff --git a/qml/main.qml b/qml/main.qml index 5cde6080..321261dd 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -5,7 +5,7 @@ import QtQuick.Controls.Material 2.0 import QtQuick.Layouts 1.3 import QtQuick.Window 2.11 -import "opaque" +import "opaque" as Opaque import "opaque/fonts" import "opaque/fonts/MutantStandard.js" as Mutant import "opaque/theme" @@ -17,7 +17,7 @@ import "utils.js" as Utils ApplicationWindow { id: windowItem - width: 1200 + width: 600 + Theme.scale * 200 height: 800 visible: true title: "cwtch" + "" @@ -26,7 +26,7 @@ ApplicationWindow { readonly property real ratio: height / width - FontAwesome { // PRETTY BUTTON ICONS + Opaque.FontAwesome { // PRETTY BUTTON ICONS id: awesome resource: "qrc:/qml/opaque/fonts/fontawesome.ttf" } @@ -94,10 +94,13 @@ ApplicationWindow { // The actual app property Item mainLayout: Rectangle { + Layout.fillWidth: true + Layout.fillHeight: true color: Theme.backgroundMainColor - Toolbar { + Opaque.Toolbar { id: toolbar + rightPaneWidth: theStack.width onLeftMenu: { gcd.requestSettings() @@ -186,10 +189,10 @@ ApplicationWindow { Rectangle { // THE LEFT PANE WITH TOOLS AND CONTACTS color: Theme.backgroundMainColor Layout.fillHeight: true - Layout.minimumWidth: Theme.sidePaneMinSize * gcd.themeScale - Layout.maximumWidth: theStack.pane == theStack.emptyPane ? parent.width : (Theme.sidePaneMinSize * gcd.themeScale) + Layout.minimumWidth: Theme.sidePaneMinSize + Layout.maximumWidth: theStack.pane == theStack.emptyPane ? parent.width : Theme.sidePaneMinSize Layout.fillWidth: theStack.pane == theStack.emptyPane ? true : false - visible: (windowItem.width >= (Theme.doublePaneMinSize * gcd.themeScale) && !Qt.inputMethod.visible) || theStack.pane == theStack.emptyPane + visible: (windowItem.width >= Theme.doublePaneMinSize && !Qt.inputMethod.visible) || theStack.pane == theStack.emptyPane ContactList { anchors.top: parent.top @@ -230,7 +233,10 @@ ApplicationWindow { readonly property int addPeerGroupPane: 4 readonly property int serverInfoPane: 5 - Item { anchors.fill: parent } // empty + Item { // empty + Layout.fillWidth: true + Layout.fillHeight: true + } Rectangle { color: Theme.backgroundMainColor @@ -243,16 +249,27 @@ ApplicationWindow { } - PeerSettingsPane { anchors.fill: parent } + PeerSettingsPane { + Layout.fillWidth: true + Layout.fillHeight: true + } - GroupSettingsPane{ anchors.fill: parent } + GroupSettingsPane{ + Layout.fillWidth: true + Layout.fillHeight: true + } AddPeerGroupPane { id: addPeerGroupPaneInstance - anchors.fill: parent + Layout.fillWidth: true + Layout.fillHeight: true + } - ServerInfoPane { anchors.fill: parent } + ServerInfoPane { + Layout.fillWidth: true + Layout.fillHeight: true + } onCurrentIndexChanged: { gcd.setProfilePaneState(theStack.currentIndex) @@ -267,8 +284,6 @@ ApplicationWindow { addPeerGroupPaneInstance.reset() } } - - onWidthChanged: {toolbar.titleWidth = width} } } } @@ -384,19 +399,18 @@ ApplicationWindow { anchors.top: parent.top anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 20 - width: lblPopup.width + 30 - height: lblPopup.height + 8 * gcd.themeScale + width: lblPopup.width + 2 * gcd.paddingStandard + height: lblPopup.height + 2 * gcd.paddingStandard color: "#000000" opacity: 0.5 radius: 15 visible: false - Label { + Opaque.Label { id: lblPopup anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter - font.pixelSize: 18 * gcd.themeScale color: "#FFFFFF" } } diff --git a/qml/opaque b/qml/opaque index 48d9d1d1..6b285e4b 160000 --- a/qml/opaque +++ b/qml/opaque @@ -1 +1 @@ -Subproject commit 48d9d1d11f4efe612419ea66371c4b147f74667d +Subproject commit 6b285e4bbc2a673fceb1c0ffb0065d1dae9c5f8b diff --git a/qml/overlays/BulletinOverlay.qml b/qml/overlays/BulletinOverlay.qml index a1230854..b14c4314 100644 --- a/qml/overlays/BulletinOverlay.qml +++ b/qml/overlays/BulletinOverlay.qml @@ -14,6 +14,7 @@ import "../utils.js" as Utils ColumnLayout { Layout.fillWidth: true width:parent.width + Layout.margins: Theme.paddingStandard Text { Layout.fillWidth: true @@ -26,10 +27,7 @@ ColumnLayout { style: CwtchTextFieldStyle{} - anchors.left: parent.left - anchors.right: parent.right - - anchors.margins: 10 + width: parent.width - 2 * parent.padding onTextChanged: { bulletinView.filter = text @@ -247,8 +245,7 @@ ColumnLayout { id: btnSend icon: "regular/paper-plane" text: "post" - anchors.right: parent.right - anchors.rightMargin: 2 + Layout.alignment: Qt.AlignRight property int nextMessageID: 1 diff --git a/qml/overlays/ListOverlay.qml b/qml/overlays/ListOverlay.qml index 47334736..0f1e9063 100644 --- a/qml/overlays/ListOverlay.qml +++ b/qml/overlays/ListOverlay.qml @@ -14,7 +14,7 @@ import "../opaque/theme" ColumnLayout { Layout.fillWidth: true - width:parent.width + width: parent.width id: listpanel property bool online: false @@ -25,9 +25,7 @@ ColumnLayout { Opaque.IconTextField { id: filter visible:listpanel.online - anchors.left: parent.left - anchors.right: parent.right - anchors.margins: 10 + width: parent.width - 2 * Theme.paddingStandard //: ex: "Find..." placeholderText: qsTr("search-list") @@ -54,14 +52,14 @@ ColumnLayout { height: 150 width: 150 } - Label { - visible:!listpanel.online - color: Theme.mainTextColor - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - elide: Text.ElideRight - font.pixelSize: 18 * gcd.themeScale - text: qsTr("peer-not-online") - } +// Label { +// visible:!listpanel.online +// color: Theme.mainTextColor +// Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter +// elide: Text.ElideRight +// font.pixelSize: 18 * gcd.themeScale +// text: qsTr("peer-not-online") +// } @@ -212,9 +210,7 @@ ColumnLayout { button_text: qsTr("add-list-item-btn") dropShadowColor: Theme.dropShadowPaneColor property int nextMessageID: 1 - anchors.left: parent.left - anchors.right: parent.right - anchors.margins: 10 + width: parent.width - 2 * Theme.paddingStandard onClicked: { if (newlistitem.text != "") { diff --git a/qml/panes/AddPeerGroupPane.qml b/qml/panes/AddPeerGroupPane.qml index 9c4d206b..0c9f863e 100644 --- a/qml/panes/AddPeerGroupPane.qml +++ b/qml/panes/AddPeerGroupPane.qml @@ -26,7 +26,6 @@ Rectangle { groupNameCreate.text = "" groupAddr.text = "" - groupNameJoin.text = "" onionLabel.text = gcd.selectedProfile } @@ -37,14 +36,14 @@ Rectangle { leftPadding: 20 * gcd.themeScale rightPadding: 20 * gcd.themeScale - Opaque.ScalingLabel { + Opaque.Label { id: shareLabel anchors { left: parent.left right: parent.right } horizontalAlignment:Text.AlignHCenter - size: Theme.secondaryTextSize + size: Theme.textSmallPt wrapMode: Text.Wrap //: Send this address to peers you want to connect with @@ -147,7 +146,7 @@ Rectangle { Column { visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") width: parent.width / 2 - Opaque.ScalingLabel { + Opaque.Label { //: Server text: qsTr("server") } @@ -156,7 +155,7 @@ Rectangle { Column { visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") width: parent.width / 2 - Opaque.ScalingLabel { + Opaque.Label { //: Invitation text: qsTr("invitation") } diff --git a/qml/panes/GroupSettingsPane.qml b/qml/panes/GroupSettingsPane.qml index 2c6842e9..9a0f3f48 100644 --- a/qml/panes/GroupSettingsPane.qml +++ b/qml/panes/GroupSettingsPane.qml @@ -14,7 +14,6 @@ import "../const" Opaque.SettingsList { // groupSettingsPane id: gsp - anchors.fill: parent property string groupID property variant addrbook property bool connected: false @@ -77,7 +76,7 @@ Opaque.SettingsList { // groupSettingsPane } Opaque.Setting { - property color backgroundColor: parent.color + property color backgroundColor: "red"//parent.color inline: true label: qsTr("server-info") field: Column { @@ -86,7 +85,7 @@ Opaque.SettingsList { // groupSettingsPane RowLayout { width: parent.width Layout.fillWidth: true - Opaque.ScalingLabel { + Opaque.Label { text: gsp.connected ? qsTr("server-connectivity-connected") : qsTr("server-connectivity-disconnected") Layout.alignment: Qt.AlignLeft } @@ -104,7 +103,7 @@ Opaque.SettingsList { // groupSettingsPane width: parent.width Layout.fillWidth: true - Opaque.ScalingLabel { + Opaque.Label { text: gsp.synced ? qsTr("server-synced") : qsTr("server-not-synced") Layout.alignment: Qt.AlignLeft } diff --git a/qml/panes/OverlayPane.qml b/qml/panes/OverlayPane.qml index 3e0da544..f81a9b14 100644 --- a/qml/panes/OverlayPane.qml +++ b/qml/panes/OverlayPane.qml @@ -30,6 +30,7 @@ ColumnLayout { StackLayout { id: overlayStack Layout.fillWidth: true + Layout.fillHeight: true width: parent.width @@ -44,23 +45,23 @@ ColumnLayout { ChatOverlay { //0 - Layout.maximumHeight: overlayStack.height - Layout.maximumWidth: overlayStack.width +// Layout.maximumHeight: overlayStack.height +// Layout.maximumWidth: overlayStack.width } ListOverlay{ //1 - Layout.maximumHeight: overlayStack.height - Layout.maximumWidth: overlayStack.width +// Layout.maximumHeight: overlayStack.height +// Layout.maximumWidth: overlayStack.width } BulletinOverlay{ //2 - Layout.maximumHeight: overlayStack.height - Layout.maximumWidth: overlayStack.width +// Layout.maximumHeight: overlayStack.height +// Layout.maximumWidth: overlayStack.width } MembershipOverlay { //3 - Layout.maximumHeight: overlayStack.height - Layout.maximumWidth: overlayStack.width +// Layout.maximumHeight: overlayStack.height +// Layout.maximumWidth: overlayStack.width } } diff --git a/qml/panes/PeerSettingsPane.qml b/qml/panes/PeerSettingsPane.qml index a2aaaf34..bd977c09 100644 --- a/qml/panes/PeerSettingsPane.qml +++ b/qml/panes/PeerSettingsPane.qml @@ -14,8 +14,6 @@ import "../const" Opaque.SettingsList { // settingsPane id: root - anchors.fill: parent - anchors.topMargin: 20 width: parent.width height: parent.height contentHeight: peerSettings.height + 20 @@ -80,8 +78,8 @@ Opaque.SettingsList { // settingsPane field: Opaque.ToggleSwitch { anchors.right: parent.right - isToggled: root.authorization == Const.auth_blocked - onToggled: function() { + checked: root.authorization == Const.auth_blocked + onCheckedChanged: function() { if (root.authorization == Const.auth_blocked) { root.authorization = Const.auth_unknown gcd.setPeerAuthorization(txtOnion.text, Const.auth_unknown) diff --git a/qml/panes/ProfileAddEditPane.qml b/qml/panes/ProfileAddEditPane.qml index 180f2c0e..2ef17138 100644 --- a/qml/panes/ProfileAddEditPane.qml +++ b/qml/panes/ProfileAddEditPane.qml @@ -103,9 +103,9 @@ Opaque.Flickable { width: 400 * gcd.themeScale spacing: 10 * gcd.themeScale - Opaque.ScalingLabel { + Opaque.Label { anchors.horizontalCenter: parent.horizontalCenter - size: Theme.primaryTextSize + size: Theme.textMediumPt //: New Profile || Edit Profile text: mode == mode_add ? qsTr("new-profile") : qsTr("edit-profile") @@ -122,9 +122,8 @@ Opaque.Flickable { Opaque.Portrait { id: portrait - size: 250 - - Layout.preferredHeight: size + Layout.preferredHeight: implicitHeight + Layout.preferredWidth: implicitWidth anchors.horizontalCenter: parent.horizontalCenter portraitBorderColor: Theme.portraitOnlineBorderColor @@ -136,18 +135,18 @@ Opaque.Flickable { badgeContent: Image {// Profle Type id: profiletype - source: radioUsePassword.checked ? gcd.assetPath + "core/lock-24px.webp" : gcd.assetPath + "core/lock-open-24px.webp" - height: 40 * gcd.themeScale + source: radioUsePassword.checked ? gcd.assetPath + "core/lock-24px.webp" : gcd.assetPath + "core/lock_open-24px.webp" + height: Theme.uiIconSizeS width: height } } - Opaque.ScalingLabel { + Opaque.Label { id: nameLabel visible: mode == mode_edit anchors.horizontalCenter: parent.horizontalCenter - size: Theme.primaryTextSize + size: Theme.textMediumPt bold: true } @@ -159,10 +158,10 @@ Opaque.Flickable { color: Theme.backgroundPaneColor } - Opaque.ScalingLabel { + Opaque.Label { visible: mode == mode_edit anchors.horizontalCenter: parent.horizontalCenter - size: Theme.secondaryTextSize + size: Theme.textSmallPt //: Send this address to peers you want to connect with text: qsTr("profile-oniblon-label") @@ -200,10 +199,10 @@ Opaque.Flickable { color: leftCol.color anchors.horizontalCenter: parent.horizontalCenter - Opaque.ScalingLabel { + Opaque.Label { id: noPasswordLabel width: parent.width - size: Theme.secondaryTextSize + size: Theme.textSmallPt anchors.horizontalCenter: parent.horizontalCenter //: Not using a password on this account means that all data stored locally will not be encrypted @@ -342,10 +341,10 @@ Opaque.Flickable { } - Opaque.ScalingLabel { + Opaque.Label { id: passwordErrorLabel anchors.horizontalCenter: parent.horizontalCenter - size: Theme.secondaryTextSize + size: Theme.textSmallPt //: Passwords do not match text: txtPassword1.text.length == 0 ? qsTr("password-error-empty") : qsTr("password-error-match") @@ -353,10 +352,10 @@ Opaque.Flickable { color: Theme.textfieldErrorColor } - Opaque.ScalingLabel { + Opaque.Label { id: passwordChangeErrorLabel anchors.horizontalCenter: parent.horizontalCenter - size: Theme.secondaryTextSize + size: Theme.textSmallPt //: Error changing password: Supplied password rejected text: qsTr("password-change-error") @@ -366,7 +365,7 @@ Opaque.Flickable { Opaque.Button { // ADD or SAVE button - height: Theme.primaryTextSize * 1.5 + //height: Theme.primaryTextSize * 1.5 anchors.horizontalCenter: parent.horizontalCenter @@ -418,7 +417,7 @@ Opaque.Flickable { text: qsTr("delete-profile-btn") //icon: "regular/trash-alt" visible: mode == mode_edit - height: Theme.primaryTextSize * 1.5 + //height: Theme.primaryTextSize * 1.5 onClicked: { @@ -426,9 +425,9 @@ Opaque.Flickable { } } - Opaque.ScalingLabel { + Opaque.Label { id: deleteConfirmLabel - size: Theme.secondaryTextSize + size: Theme.textSmallPt anchors.right: parent.right anchors.rightMargin: 20 * gcd.themeScale diff --git a/qml/panes/ProfileManagerPane.qml b/qml/panes/ProfileManagerPane.qml index f21ff010..a44a83a4 100644 --- a/qml/panes/ProfileManagerPane.qml +++ b/qml/panes/ProfileManagerPane.qml @@ -22,30 +22,28 @@ ColumnLayout { id: thecol anchors.fill: parent - spacing: 20 * gcd.themeScale + spacing: Theme.paddingSmall - Opaque.ScalingLabel { - Layout.alignment: Qt.AlignHCenter - wrapMode: TextEdit.Wrap - size: Theme.primaryTextSize - - font.family: Fonts.applicationFontRegular.name - font.styleName: "Bold" + Opaque.Label { + horizontalAlignment: Text.AlignHCenter + width: parent.width + Layout.fillWidth: true + bold: true //: Enter a password to view your profiles text: qsTr("enter-profile-password") } RowLayout { - width: 700 * gcd.themeScale + //width: 700 * gcd.themeScale Layout.alignment: Qt.AlignHCenter Opaque.UnderlineTextField { id: txtPassword //anchors.horizontalCenter: parent.horizontalCenter //Layout.fillWidth: true - Layout.maximumWidth: 450 * gcd.themeScale - Layout.minimumWidth: 450 * gcd.themeScale + //Layout.maximumWidth: 450 * gcd.themeScale + //Layout.minimumWidth: 450 * gcd.themeScale Layout.rightMargin: 40 Layout.leftMargin: 40 @@ -56,8 +54,6 @@ ColumnLayout { Opaque.Button { id: "button" - width: 100 * gcd.themeScale - height: Theme.primaryTextSize * gcd.themeScale //: Unlock text: qsTr("unlock") @@ -70,7 +66,7 @@ ColumnLayout { } } - Opaque.ScalingLabel { + Opaque.Label { id: error Layout.alignment: Qt.AlignHCenter color: Theme.textfieldErrorColor @@ -106,11 +102,10 @@ ColumnLayout { Layout.fillHeight: true Layout.fillWidth: true - Opaque.ScalingLabel { + Opaque.Label { id: profileLabel - size: Theme.subHeaderSize - font.family: Fonts.applicationFontRegular.name - font.styleName: "Bold" + size: Theme.textSubHeaderPt + bold: true anchors.left: parent.left anchors.leftMargin: 25 * gcd.themeScale bottomPadding: 10 * gcd.themeScale @@ -135,14 +130,13 @@ ColumnLayout { Layout.fillHeight: true Layout.fillWidth: true - Opaque.ScalingLabel { + Opaque.Label { id: serverLabel - size: Theme.subHeaderSize - font.family: Fonts.applicationFontRegular.name - font.styleName: "Bold" + size: Theme.textSubHeaderPt + bold: true anchors.left: parent.left - anchors.leftMargin: 25 * gcd.themeScale - bottomPadding: 10 * gcd.themeScale + anchors.leftMargin: Theme.paddingStandard + bottomPadding: Theme.paddingSmall //: Your Profiles text: qsTr("your-servers") diff --git a/qml/panes/ServerAddEditPane.qml b/qml/panes/ServerAddEditPane.qml index 1eff6f0d..3058263b 100644 --- a/qml/panes/ServerAddEditPane.qml +++ b/qml/panes/ServerAddEditPane.qml @@ -39,9 +39,9 @@ Opaque.SettingsList { // Add Profile Pane anchors.horizontalCenter: parent.horizontalCenter width: 700 - Opaque.ScalingLabel { + Opaque.Label { text: server_name - size: 16 + header: true } Opaque.Setting { @@ -51,9 +51,9 @@ Opaque.SettingsList { // Add Profile Pane field: Opaque.ToggleSwitch { anchors.right: parent.right - isToggled: serverAddEditPane.server_available - onToggled: function() { - serverAddEditPane.server_available = !serverAddEditPane.server_available + checked: serverAddEditPane.server_available + onCheckedChanged: function() { + //serverAddEditPane.server_available = !serverAddEditPane.server_available if (serverAddEditPane.server_available) { gcd.startServer(serverAddEditPane.server_name) } else { @@ -75,9 +75,9 @@ Opaque.SettingsList { // Add Profile Pane field: Opaque.ToggleSwitch { anchors.right: parent.right - isToggled: serverAddEditPane.autostart_server - onToggled: function() { - serverAddEditPane.autostart_server = !serverAddEditPane.autostart_server + checked: serverAddEditPane.autostart_server + onCheckedChanged: function() { + //serverAddEditPane.autostart_server = !serverAddEditPane.autostart_server gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server) } } diff --git a/qml/panes/ServerInfoPane.qml b/qml/panes/ServerInfoPane.qml index 372ed12d..fe313a2b 100644 --- a/qml/panes/ServerInfoPane.qml +++ b/qml/panes/ServerInfoPane.qml @@ -14,9 +14,8 @@ import "../const" Opaque.SettingsList { // groupSettingsPane id: gsp - anchors.fill: parent property string serverName - property color backgroundColor: parent.color + property color backgroundColor: "red"//parent.color?? property bool connected: false property bool synced: false @@ -66,11 +65,11 @@ Opaque.SettingsList { // groupSettingsPane onSupplyServerSettings: function(server, key_names, keys) { gsp.serverName = server; toolbar.setTitle(qsTr("server-settings")); - console.log("Servers: " + key_names); - for (let i=0; i Date: Wed, 16 Dec 2020 19:31:17 -0800 Subject: [PATCH 2/4] addressing comments on #457 --- Makefile | 2 +- qml/opaque | 2 +- qml/overlays/ListOverlay.qml | 332 ++++++++++++++++--------------- qml/panes/GroupSettingsPane.qml | 1 - qml/panes/OverlayPane.qml | 8 - qml/panes/ProfileAddEditPane.qml | 1 - qml/panes/ProfileManagerPane.qml | 6 - qml/panes/ServerAddEditPane.qml | 10 +- qml/panes/ServerInfoPane.qml | 5 - qml/widgets/Message.qml | 9 +- qml/widgets/Overlay.qml | 1 + qml/widgets/ProfileRow.qml | 4 - qml/widgets/ServerList.qml | 4 - 13 files changed, 175 insertions(+), 210 deletions(-) diff --git a/Makefile b/Makefile index 42393d15..dc5d3716 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ clean: linux: date - qtdeploy -qt_version $(QT_BUILD_VERSION) build linux 2>&1 | tee qtdeploy.log | pv + qtdeploy -docker -qt_version $(QT_BUILD_VERSION) build linux 2>&1 | tee qtdeploy.log | pv date cp -R assets deploy/linux/ diff --git a/qml/opaque b/qml/opaque index 6b285e4b..136e613a 160000 --- a/qml/opaque +++ b/qml/opaque @@ -1 +1 @@ -Subproject commit 6b285e4bbc2a673fceb1c0ffb0065d1dae9c5f8b +Subproject commit 136e613ab596ae70edfa73fc6019f5dde44e0a08 diff --git a/qml/overlays/ListOverlay.qml b/qml/overlays/ListOverlay.qml index 0f1e9063..e0094cb5 100644 --- a/qml/overlays/ListOverlay.qml +++ b/qml/overlays/ListOverlay.qml @@ -11,70 +11,77 @@ import "../opaque/controls" as Awesome import "../utils.js" as Utils import "../opaque/styles" import "../opaque/theme" +import "../widgets" as W ColumnLayout { + id: listpanel Layout.fillWidth: true - width: parent.width - id: listpanel + width:parent.width + // todo: margins don't seem to be getting applied to search/additem textboxes? not sure why + Layout.margins: Theme.paddingStandard + property bool online: false - Text { - Layout.fillWidth: true - } - Opaque.IconTextField { - id: filter - visible:listpanel.online - width: parent.width - 2 * Theme.paddingStandard + Item { + width: 1 + height: Theme.paddingStandard + } - //: ex: "Find..." - placeholderText: qsTr("search-list") - horizontalAlignment: TextInput.AlignHCenter - icon: gcd.assetPath + "core/search-24px.webp" + Opaque.IconTextField { + id: filter + visible:listpanel.online + Layout.fillWidth: true + + //: ex: "Find..." + placeholderText: qsTr("search-list") + horizontalAlignment: TextInput.AlignHCenter + icon: gcd.assetPath + "core/search-24px.webp" - onTextChanged: { - listView.filter = text - if (listView.model.get(listView.currentIndex).title.indexOf(text) == -1) { - listView.currentIndex = -1 - } - } - } + onTextChanged: { + listView.filter = text + if (listView.model.get(listView.currentIndex).title.indexOf(text) == -1) { + listView.currentIndex = -1 + } + } + } - Opaque.Icon { - visible:!listpanel.online - source: gcd.assetPath + "core/negative_heart_24px.webp" - iconColor: Theme.mainTextColor - backgroundColor: Theme.backgroundPaneColor - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - height: 150 - width: 150 - } -// Label { -// visible:!listpanel.online -// color: Theme.mainTextColor -// Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter -// elide: Text.ElideRight -// font.pixelSize: 18 * gcd.themeScale -// text: qsTr("peer-not-online") -// } + Opaque.Icon { + visible:!listpanel.online + source: gcd.assetPath + "core/negative_heart_24px.webp" + iconColor: Theme.mainTextColor + backgroundColor: Theme.backgroundPaneColor + Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + height: 150 + width: 150 + } + + Opaque.Label { + visible:!listpanel.online + horizontalAlignment: Text.AlignHCenter + Layout.fillWidth: true + elide: Text.ElideRight + size: Theme.textMediumPt + text: qsTr("peer-not-online") + } - Flickable { // THE MESSAGE LIST ITSELF - id: sv - clip: true - visible:listpanel.online - Layout.alignment: Qt.AlignLeft | Qt.AlignTop - Layout.fillHeight: true - Layout.fillWidth: true - contentWidth: parent.width - contentHeight: parent.height - boundsBehavior: Flickable.StopAtBounds - maximumFlickVelocity: 800 + Flickable { // THE MESSAGE LIST ITSELF + id: sv + clip: true + visible:listpanel.online + Layout.alignment: Qt.AlignLeft | Qt.AlignTop + Layout.fillHeight: true + Layout.fillWidth: true + contentWidth: parent.width + contentHeight: parent.height + boundsBehavior: Flickable.StopAtBounds + maximumFlickVelocity: 800 Connections { @@ -87,143 +94,138 @@ ColumnLayout { } } - Connections { - id: cnxns2 - target: gcd + Connections { + id: cnxns2 + target: gcd - onClearMessages: function() { - jsonModel4.clear() - } + onClearMessages: function() { + jsonModel4.clear() + } - onAppendMessage: function(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) { - handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) - } + onAppendMessage: function(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) { + handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) + } - onPrependMessage: function(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) { - handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) - } + onPrependMessage: function(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) { + handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) + } - function handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) { - var msg - try { - msg = JSON.parse(message) - } catch (e) { - return - } - if (msg.o != 4) return + function handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error) { + var msg + try { + msg = JSON.parse(message) + } catch (e) { + return + } + if (msg.o != 4) return - if (msg.t != undefined) { - jsonModel4.insert(0,{ - "title":msg.t, - "selected":false, - "from": from, - "displayName": displayName, - "timestamp": ts, - "complete": false - }) - } + if (msg.t != undefined) { + jsonModel4.insert(0,{ + "title":msg.t, + "selected":false, + "from": from, + "displayName": displayName, + "timestamp": ts, + "complete": false + }) + } - if(msg.c != undefined) { - jsonModel4.get(msg.c).complete = true - } - } + if(msg.c != undefined) { + jsonModel4.get(msg.c).complete = true + } + } - onUpdateContactStatus: function(_handle, _status, _loading) { - if (gcd.selectedConversation == _handle) { + onUpdateContactStatus: function(_handle, _status, _loading) { + if (gcd.selectedConversation == _handle) { - // Group is Synced OR p2p is Authenticated - if ( (_handle.length == 32 && _status == 4) || (_handle.length == 56 && _status == 3) ) { - newlistitem.readOnly = false - listpanel.online = true - } else { - newlistitem.readOnly = true - listpanel.online= false - } - } - } - } + // Group is Synced OR p2p is Authenticated + if ( (_handle.length == 32 && _status == 4) || (_handle.length == 56 && _status == 3) ) { + newlistitem.readOnly = false + listpanel.online = true + } else { + newlistitem.readOnly = true + listpanel.online= false + } + } + } + } - ScrollBar.vertical: ScrollBar{ - policy: ScrollBar.AlwaysOn - } + ScrollBar.vertical: ScrollBar{ + policy: ScrollBar.AlwaysOn + } - ListView { - id: listView - anchors.left: parent.left - anchors.leftMargin: 10 - anchors.topMargin: 10 + ListView { + id: listView + anchors.left: parent.left + anchors.leftMargin: 10 + anchors.topMargin: 10 - width: parent.width - 50 - height: parent.height - 20 - orientation: Qt.Vertical - spacing: 10 - model: jsonModel4 - property string filter: "" - delegate: + width: parent.width - 50 + height: parent.height - 20 + orientation: Qt.Vertical + spacing: 10 + model: jsonModel4 + property string filter: "" + delegate: - Item { - width: parent.width - height: title.indexOf(listView.filter) >= 0 ? texttitle.height : 0 - visible: title.indexOf(listView.filter) >= 0 + Item { + width: Listview.view.width + height: title.indexOf(listView.filter) >= 0 ? texttitle.height : 0 + visible: title.indexOf(listView.filter) >= 0 - Column { - width: parent.width + Column { + width: parent.width - RowLayout { - CheckBox { - checked: complete - onClicked: { - var msg = JSON.stringify({"o":4, "c":index}) - gcd.sendMessage(msg, newlistitem.nextMessageID++) - } - } + RowLayout { + CheckBox { + checked: complete + onClicked: { + var msg = JSON.stringify({"o":4, "c":index}) + gcd.sendMessage(msg, newlistitem.nextMessageID++) + } + } - RowLayout { - Text { - id: texttitle - text: '' + Utils.htmlEscaped(title) + ' by ' + displayName + "
" + Qt.formatDateTime(new Date(timestamp*1000), "MMMM d, h:mm ap") - leftPadding: 10 - topPadding: 5 - bottomPadding:5 - color: Theme.mainTextColor - } - } - } + RowLayout { + Text { + id: texttitle + text: '' + Utils.htmlEscaped(title) + ' by ' + displayName + "
" + Qt.formatDateTime(new Date(timestamp*1000), "MMMM d, h:mm ap") + leftPadding: 10 + topPadding: 5 + bottomPadding:5 + color: Theme.mainTextColor + } + } + } - Opaque.HLine{} - } + Opaque.HLine{} + } - } + } - focus: true - ListModel { - id: jsonModel4 - } - } - } - - Opaque.ButtonTextField { - id: newlistitem - visible:listpanel.online - readOnly: false - button_text: qsTr("add-list-item-btn") - dropShadowColor: Theme.dropShadowPaneColor - property int nextMessageID: 1 - width: parent.width - 2 * Theme.paddingStandard - - onClicked: { - if (newlistitem.text != "") { - var msg = JSON.stringify({"o":4, "t":newlistitem.text}) - gcd.sendMessage(msg, nextMessageID++) - } - newlistitem.text = "" - } - - } - - Opaque.HLine{} + focus: true + ListModel { + id: jsonModel4 + } + } + } + Opaque.ButtonTextField { + id: newlistitem + visible:listpanel.online + readOnly: false + button_text: qsTr("add-list-item-btn") + dropShadowColor: Theme.dropShadowPaneColor + property int nextMessageID: 1 + Layout.fillWidth: true + onClicked: { + if (newlistitem.text != "") { + var msg = JSON.stringify({"o":4, "t":newlistitem.text}) + gcd.sendMessage(msg, nextMessageID++) + } + newlistitem.text = "" + } + } } diff --git a/qml/panes/GroupSettingsPane.qml b/qml/panes/GroupSettingsPane.qml index 9a0f3f48..5627d3c4 100644 --- a/qml/panes/GroupSettingsPane.qml +++ b/qml/panes/GroupSettingsPane.qml @@ -76,7 +76,6 @@ Opaque.SettingsList { // groupSettingsPane } Opaque.Setting { - property color backgroundColor: "red"//parent.color inline: true label: qsTr("server-info") field: Column { diff --git a/qml/panes/OverlayPane.qml b/qml/panes/OverlayPane.qml index f81a9b14..af0f6f81 100644 --- a/qml/panes/OverlayPane.qml +++ b/qml/panes/OverlayPane.qml @@ -45,23 +45,15 @@ ColumnLayout { ChatOverlay { //0 -// Layout.maximumHeight: overlayStack.height -// Layout.maximumWidth: overlayStack.width } ListOverlay{ //1 -// Layout.maximumHeight: overlayStack.height -// Layout.maximumWidth: overlayStack.width } BulletinOverlay{ //2 -// Layout.maximumHeight: overlayStack.height -// Layout.maximumWidth: overlayStack.width } MembershipOverlay { //3 -// Layout.maximumHeight: overlayStack.height -// Layout.maximumWidth: overlayStack.width } } diff --git a/qml/panes/ProfileAddEditPane.qml b/qml/panes/ProfileAddEditPane.qml index 2ef17138..b343fb06 100644 --- a/qml/panes/ProfileAddEditPane.qml +++ b/qml/panes/ProfileAddEditPane.qml @@ -365,7 +365,6 @@ Opaque.Flickable { Opaque.Button { // ADD or SAVE button - //height: Theme.primaryTextSize * 1.5 anchors.horizontalCenter: parent.horizontalCenter diff --git a/qml/panes/ProfileManagerPane.qml b/qml/panes/ProfileManagerPane.qml index a44a83a4..ba6e053c 100644 --- a/qml/panes/ProfileManagerPane.qml +++ b/qml/panes/ProfileManagerPane.qml @@ -35,16 +35,10 @@ ColumnLayout { } RowLayout { - //width: 700 * gcd.themeScale Layout.alignment: Qt.AlignHCenter Opaque.UnderlineTextField { id: txtPassword - //anchors.horizontalCenter: parent.horizontalCenter - //Layout.fillWidth: true - //Layout.maximumWidth: 450 * gcd.themeScale - //Layout.minimumWidth: 450 * gcd.themeScale - Layout.rightMargin: 40 Layout.leftMargin: 40 placeholderText: qsTr("password") diff --git a/qml/panes/ServerAddEditPane.qml b/qml/panes/ServerAddEditPane.qml index 3058263b..885f6600 100644 --- a/qml/panes/ServerAddEditPane.qml +++ b/qml/panes/ServerAddEditPane.qml @@ -53,7 +53,7 @@ Opaque.SettingsList { // Add Profile Pane checked: serverAddEditPane.server_available onCheckedChanged: function() { - //serverAddEditPane.server_available = !serverAddEditPane.server_available + serverAddEditPane.server_available = checked if (serverAddEditPane.server_available) { gcd.startServer(serverAddEditPane.server_name) } else { @@ -63,12 +63,6 @@ Opaque.SettingsList { // Add Profile Pane } } - - - - - - Opaque.Setting { label: qsTr("server-autostart") @@ -77,7 +71,7 @@ Opaque.SettingsList { // Add Profile Pane checked: serverAddEditPane.autostart_server onCheckedChanged: function() { - //serverAddEditPane.autostart_server = !serverAddEditPane.autostart_server + serverAddEditPane.autostart_server = checked gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server) } } diff --git a/qml/panes/ServerInfoPane.qml b/qml/panes/ServerInfoPane.qml index fe313a2b..53bdeba5 100644 --- a/qml/panes/ServerInfoPane.qml +++ b/qml/panes/ServerInfoPane.qml @@ -65,11 +65,6 @@ Opaque.SettingsList { // groupSettingsPane onSupplyServerSettings: function(server, key_names, keys) { gsp.serverName = server; toolbar.setTitle(qsTr("server-settings")); -// console.log("Servers: " + key_names); -// for (let i=0; i Date: Wed, 16 Dec 2020 19:44:58 -0800 Subject: [PATCH 3/4] update translations --- i18n/translation_de.qm | Bin 2943 -> 2927 bytes i18n/translation_de.ts | 216 ++++--- i18n/translation_en.ts | 206 ++++--- i18n/translation_es.ts | 22 +- i18n/translation_fr.ts | 206 ++++--- i18n/translation_it.qm | Bin 15575 -> 10526 bytes i18n/translation_it.ts | 1299 +++++++++++++++++++++------------------- i18n/translation_pt.ts | 207 ++++--- 8 files changed, 1168 insertions(+), 988 deletions(-) diff --git a/i18n/translation_de.qm b/i18n/translation_de.qm index 077e1a7300bf8d7b1fc3d5aa4f983accc4446d68..f5575a42156ec893043c267bfba08ddee4f73fcb 100644 GIT binary patch delta 60 zcmew__Fim)C AddPeerGroupPane - + profile-oniblon-label Send this address to peers you want to connect with - + copy-btn Kopieren - + copied-to-clipboard-notification notification: copied to clipboard in die Zwischenablage kopiert - + add-peer-tab - + create-group-tab - + join-group-tab - + peer-address Address - + peer-name Name - + group-name Group Name - + server Server - + invitation Invitation - + group-addr Address @@ -102,18 +102,18 @@ BulletinOverlay - + new-bulletin-label Neue Meldung - + post-new-bulletin-label Post a new Bulletin Post Neue Meldung veröffentlichen - + title-placeholder title place holder text Titel... @@ -148,7 +148,7 @@ Adresse hier hinzufügen, um einen Kontakt aufzunehmen - + blocked @@ -156,65 +156,65 @@ GroupSettingsPane - + server-label Server - - + + copy-btn Kopieren - - + + copied-to-clipboard-notification notification: copied to clipboard in die Zwischenablage kopiert - + invitation-label Einladung - + server-info - + server-connectivity-connected - + server-connectivity-disconnected - + server-synced - + server-not-synced - + view-server-info - + group-name-label Gruppenname - + save-btn Speichern @@ -228,7 +228,7 @@ Einladen - + delete-btn Löschen @@ -251,18 +251,18 @@ noch zu erledigen
- + search-list ex: "Find..." - + peer-not-online - + add-list-item-btn @@ -279,24 +279,24 @@ Message - + dm-tooltip Click to DM Klicken, um DM zu senden - + could-not-send-msg-error Could not send this message Nachricht konnte nicht gesendet werden - + acknowledged-label bestätigt - + pending-label Bestätigung ausstehend @@ -379,55 +379,55 @@ PeerSettingsPane - + address-label Adresse - + copy-btn Kopieren - + copied-to-clipboard-notification notification: copied to clipboard in die Zwischenablage kopiert - + display-name-label Angezeigter Name - + save-btn speichern - - + + save-peer-history Save Peer History - + save-peer-history-description - + dont-save-peer-history - + delete-btn löschen - + block-btn @@ -435,30 +435,30 @@ ProfileAddEditPane - + copy-btn Kopieren - + copied-to-clipboard-notification notification: copied to clipboard in die Zwischenablage kopiert - + radio-use-password Password - + radio-no-password Unencrypted (No password) - + no-password-warning Not using a password on this account means that all data stored locally will not be encrypted @@ -475,84 +475,84 @@ - + profile-oniblon-label Send this address to peers you want to connect with - + your-display-name Your Display Name - + current-password-label Current Password - + password1-label Password - + password2-label Reenter password - + password-error-empty Passwords do not match - + create-profile-btn Create || Save - + save-profile-btn - + password-error-match - + password-change-error Error changing password: Supplied password rejected - + delete-profile-btn Delete Profile - - + + delete-confirm-label Type DELETE to confirm - + delete-profile-confirm-btn Really Delete Profile - + delete-confirm-text DELETE @@ -561,7 +561,7 @@ ProfileList - + add-new-profile-btn @@ -569,36 +569,36 @@ ProfileManagerPane - + enter-profile-password Enter a password to view your profiles - + password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password - + your-profiles Your Profiles - + your-servers Your Profiles - + unlock Unlock @@ -617,92 +617,111 @@ Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen) - + setting-language Language - + locale-en - + locale-fr - + locale-pt - + locale-de - + locale-es - + locale-it - + setting-interface-zoom Interface Zoom - + medium-text-label medium text + large text Groß - + + large-text-label + large text + + + + setting-theme Theme - + theme-light - + theme-dark -<<<<<<< HEAD - -======= - ->>>>>>> 1f98899f6be1eea1ab05dd2d5d63c7f7d927ebd5 + experiments-enabled - Theme + Enable experiments - + + Text magnification reference + + + + + Acknowledgements + + + + + extra special thanks!!!! + don't translate yet... we should come up with something to write here as a team<3 + + + + version %1 tor %2 Version %1 with tor %2 - + builddate %2 Built on: %2 @@ -713,8 +732,7 @@ defaultmäßige Textgröße (Skalierungsfaktor: - - + small-text-label small text Klein @@ -759,7 +777,7 @@ main - + new-connection-pane-title New Connection diff --git a/i18n/translation_en.ts b/i18n/translation_en.ts index a1b3e032..e5c63ec9 100644 --- a/i18n/translation_en.ts +++ b/i18n/translation_en.ts @@ -31,69 +31,69 @@ AddPeerGroupPane - + profile-oniblon-label Send this address to peers you want to connect with Send this address to peers you want to connect with - + copy-btn Copy - + copied-to-clipboard-notification notification: copied to clipboard Copied to Clipboard - + add-peer-tab Add a peer - + create-group-tab Create a group - + join-group-tab Join a group - + peer-address Address Address - + peer-name Name Name - + group-name Group Name Group name - + server Server Server - + invitation Invitation Invitation - + group-addr Address Address @@ -115,18 +115,18 @@ BulletinOverlay - + new-bulletin-label New Bulletin - + post-new-bulletin-label Post a new Bulletin Post Post new bulletin - + title-placeholder title place holder text title... @@ -172,7 +172,7 @@ ... paste an address here to add a contact... - + blocked Blocked @@ -268,65 +268,65 @@ Right-click to reset. GroupSettingsPane - + server-label Server - - + + copy-btn Copy - - + + copied-to-clipboard-notification notification: copied to clipboard Copied to Clipboard - + invitation-label Invitation - + server-info Server Information - + server-connectivity-connected Server Connected - + server-connectivity-disconnected Server Disconnected - + server-synced Synced - + server-not-synced Out of Sync - + view-server-info Server Info - + group-name-label Group Name - + save-btn Save @@ -340,7 +340,7 @@ Right-click to reset. Invite - + delete-btn Delete @@ -355,18 +355,18 @@ Right-click to reset. ListOverlay - + search-list ex: "Find..." Search List - + peer-not-online Peer is Offline. Applications cannot be used right now. - + add-list-item-btn Add Item @@ -383,24 +383,24 @@ Right-click to reset. Message - + dm-tooltip Click to DM Click to DM - + could-not-send-msg-error Could not send this message Could not send this message - + acknowledged-label Acknowledged - + pending-label Pending @@ -483,50 +483,50 @@ Right-click to reset. PeerSettingsPane - + address-label Address - + copy-btn Copy - + copied-to-clipboard-notification notification: copied to clipboard Copied to Clipboard - + display-name-label Display Name - + save-btn Save - + block-btn Block Peer - - + + save-peer-history Save Peer History Save Peer History - + save-peer-history-description Determines whether or not to delete any history associated with the peer. - + dont-save-peer-history Delete Peer History @@ -535,7 +535,7 @@ Right-click to reset. Unblock Peer - + delete-btn Delete @@ -576,113 +576,113 @@ Right-click to reset. Send this address to peers you want to connect with - + copy-btn Copy - + copied-to-clipboard-notification notification: copied to clipboard Copied to Clipboard - + radio-use-password Password Password - + radio-no-password Unencrypted (No password) Unencrypted (No password) - + no-password-warning 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 - + profile-oniblon-label Send this address to peers you want to connect with Send this address to peers you want to connect with - + your-display-name Your Display Name Your Display Name - + current-password-label Current Password Current Password - + password1-label Password Password - + password2-label Reenter password Reenter password - + password-error-empty Passwords do not match Password cannot be empty - + create-profile-btn Create || Save Create Profile - + save-profile-btn Save Profile - + password-error-match Passwords do not match - + password-change-error Error changing password: Supplied password rejected Error changing password: Supplied password rejected - + delete-profile-btn Delete Profile Delete Profile - - + + delete-confirm-label Type DELETE to confirm Type DELETE to confirm - + delete-profile-confirm-btn Really Delete Profile Really Delete Profile - + delete-confirm-text DELETE DELETE @@ -691,7 +691,7 @@ Right-click to reset. ProfileList - + add-new-profile-btn Add new profile @@ -699,36 +699,36 @@ Right-click to reset. ProfileManagerPane - + enter-profile-password Enter a password to view your profiles Enter a password to view your profiles - + password Password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password 0 profiles loaded with that password - + your-profiles Your Profiles Your Profiles - + your-servers Your Profiles Your Servers - + unlock Unlock Unlock @@ -756,83 +756,99 @@ Right-click to reset. Block Unknown Peers - + setting-language Language Language - + locale-en English - + locale-fr Frances - + locale-pt Portuguesa - + locale-de Deutsche - + locale-es Espanol - + locale-it Italiana - + setting-interface-zoom Interface Zoom Zoom level - + medium-text-label medium text - + large-text-label large text Large - + setting-theme Theme Theme - + theme-light Light - + theme-dark Dark - + experiments-enabled - Theme + Enable experiments Experiments enabled - + + Text magnification reference + + + + + Acknowledgements + + + + + extra special thanks!!!! + don't translate yet... we should come up with something to write here as a team<3 + + + + version %1 tor %2 Version %1 with tor %2 Version %1 with tor %2 @@ -843,7 +859,7 @@ Right-click to reset. Version %1 - + builddate %2 Built on: %2 Built on: %2 @@ -854,7 +870,7 @@ Right-click to reset. Default size text (scale factor: - + small-text-label small text Small @@ -907,7 +923,7 @@ Right-click to reset. main - + new-connection-pane-title New Connection New Connection diff --git a/i18n/translation_es.ts b/i18n/translation_es.ts index 5a4a52f9..1239d81c 100644 --- a/i18n/translation_es.ts +++ b/i18n/translation_es.ts @@ -621,6 +621,7 @@ large-text-label + large text Grande @@ -638,7 +639,7 @@ experiments-enabled - Theme + Enable experiments Experimentos habilitados @@ -661,6 +662,7 @@ small-text-label + small text Pequeño @@ -671,6 +673,24 @@ locale-it Italiano + + medium-text-label + medium text + + + + Text magnification reference + + + + Acknowledgements + + + + extra special thanks!!!! + don't translate yet... we should come up with something to write here as a team<3 + + SplashPane diff --git a/i18n/translation_fr.ts b/i18n/translation_fr.ts index 02966d47..2b46f25e 100644 --- a/i18n/translation_fr.ts +++ b/i18n/translation_fr.ts @@ -31,69 +31,69 @@ AddPeerGroupPane - + profile-oniblon-label Send this address to peers you want to connect with - + copy-btn Copier - + copied-to-clipboard-notification notification: copied to clipboard Copié dans le presse-papier - + add-peer-tab - + create-group-tab - + join-group-tab - + peer-address Address - + peer-name Name - + group-name Group Name - + server Server - + invitation Invitation - + group-addr Address @@ -102,18 +102,18 @@ BulletinOverlay - + new-bulletin-label Nouveau bulletin - + post-new-bulletin-label Post a new Bulletin Post Envoyer un nouveau bulletin - + title-placeholder title place holder text titre... @@ -148,7 +148,7 @@ ... coller une adresse ici pour ajouter un contact... - + blocked @@ -156,65 +156,65 @@ GroupSettingsPane - + server-label Serveur - - + + copy-btn Copier - - + + copied-to-clipboard-notification notification: copied to clipboard Copié dans le presse-papier - + invitation-label Invitation - + server-info - + server-connectivity-connected - + server-connectivity-disconnected - + server-synced - + server-not-synced - + view-server-info - + group-name-label Nom du groupe - + save-btn Sauvegarder @@ -228,7 +228,7 @@ Invitation - + delete-btn Effacer @@ -251,18 +251,18 @@ A faire... - + search-list ex: "Find..." - + peer-not-online - + add-list-item-btn @@ -279,24 +279,24 @@ Message - + dm-tooltip Click to DM Envoyer un message privé - + could-not-send-msg-error Could not send this message Impossible d'envoyer ce message - + acknowledged-label Confirmé - + pending-label En attente @@ -379,55 +379,55 @@ PeerSettingsPane - + address-label Adresse - + copy-btn Copier - + copied-to-clipboard-notification notification: copied to clipboard Copié dans le presse-papier - + display-name-label Pseudo - + save-btn Sauvegarder - - + + save-peer-history Save Peer History - + save-peer-history-description - + dont-save-peer-history - + delete-btn Effacer - + block-btn @@ -435,30 +435,30 @@ ProfileAddEditPane - + copy-btn Copier - + copied-to-clipboard-notification notification: copied to clipboard Copié dans le presse-papier - + radio-use-password Password - + radio-no-password Unencrypted (No password) - + no-password-warning Not using a password on this account means that all data stored locally will not be encrypted @@ -475,84 +475,84 @@ - + profile-oniblon-label Send this address to peers you want to connect with - + your-display-name Your Display Name - + current-password-label Current Password - + password1-label Password - + password2-label Reenter password - + password-error-empty Passwords do not match - + create-profile-btn Create || Save - + save-profile-btn - + password-error-match - + password-change-error Error changing password: Supplied password rejected - + delete-profile-btn Delete Profile - - + + delete-confirm-label Type DELETE to confirm - + delete-profile-confirm-btn Really Delete Profile - + delete-confirm-text DELETE @@ -561,7 +561,7 @@ ProfileList - + add-new-profile-btn @@ -569,36 +569,36 @@ ProfileManagerPane - + enter-profile-password Enter a password to view your profiles - + password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password - + your-profiles Your Profiles - + your-servers Your Profiles - + unlock Unlock @@ -617,89 +617,105 @@ Interface zoom (essentiellement la taille du texte et des composants de l'interface) - + setting-language Language - + locale-en - + locale-fr - + locale-pt - + locale-de - + locale-es - + locale-it - + setting-interface-zoom Interface Zoom - + medium-text-label medium text - + large-text-label large text Large - + setting-theme Theme - + theme-light - + theme-dark - + experiments-enabled - Theme + Enable experiments - + + Text magnification reference + + + + + Acknowledgements + + + + + extra special thanks!!!! + don't translate yet... we should come up with something to write here as a team<3 + + + + version %1 tor %2 Version %1 with tor %2 - + builddate %2 Built on: %2 @@ -710,7 +726,7 @@ Taille par défaut du texte (échelle: - + small-text-label small text Petit @@ -755,7 +771,7 @@ main - + new-connection-pane-title New Connection diff --git a/i18n/translation_it.qm b/i18n/translation_it.qm index e23dfed4ce276c39c6f04496179ca9393fdb759d..4aa935c3c6b4c09f2a50a32b511c2663ca80ffe5 100644 GIT binary patch delta 966 zcmXAnYfKbp6o%iK*`53B?kvkiiYtSz2@xz^#S|@I=p~8@s5JP)7);cbVy$(t4Xy1K zA~A~6=s*d$!Jrav2tP)Q20?4UAOVeH@P}G3#Y-Y-iC~D)NRORg&zJLk=X~dV&$(aT zv@ZO~r7dy&|3>NtjfAVk&0UXj04@#s&JIBO1Izq(fw|deKUV`V!??E61laB92~nKY z8NTl=p#8+8bhZMH6ejQHRv^aDRBUtt#thTC;2sdoGv|j=0KSOndwvT@2r;*%A;ABT zT^#n(gV{f`8$K%n=EbvJk=0cAiOu*-ZoxM#Kwv4imtO@Wm2qdL_5kh*Zgi3w43u-@ z{4VLa0a8x`~gh5G0nfa{SEiCib=jtOT^cB0d>*kb(>;?cyT3KPaU)lY@?@Ql+O7NbDrih!QJ^{}5La zUlDbwQZFRFk}6}#8RJ7~Xq@h)@Tby?(-e?P8FtUnsSQJ|~5Wa(aTL z9Ws@{3#3>GDr4Rr5?ZSI?vDduo>OCXCef^t)pV1Vidms9Y5$VAU(H?Pri6%E7_6e5 zXjhNd)d0?3o1PA}Ei(g%Yf(EU;;7L?_0P8hROg;1Qsmuc5Qwbr0}$BUp9@v?RVWQ zy9Go&a1H)OjLvhbf9C+PBW~NN2PL$TgH|4IFy<9u%HkxIGXnv?`JJ)M8rJ7B=DQ@r z>WtdYnlmx$t-e@;u~KKvcbK(vPMXhz1ZyO*ma_tZV#ey9Kgw8K@&IR!rXDccQiE3G d!Ze4OvMApQEiU2A-#^}D4rCNsjY~7x{{TSq4ZHvV delta 4737 zcmcIn3vg7`8UAnfy?b}_AP!aVfC%Yja*p@mwn{)S` zbN>JPzW+b}`Lq3|W6R-1ZQ#{W3QJPwCd zwJDotFCj|Vm2z;~Od`i)=xpQrII)4B_uh=$x zc$&yN-}dOa6+}Y{Y^OhmA`|{-JL`;s$;Y;@7WWeQdhE}>k9lDPAJgXBU)p$psJh(# z`HKLYxz>>-mJ^M9&5@r!j%ZkwWBc6guqQcQd;|c}x5piCcD)XV_d3o*Fi~{GS(tJZ z6SdCDAeiOf=Ug#400t@_{WJKOo59C|JU$lpI?o@(I^jz`ipTgkMtu8MhNLbk%s)q^*IYG>k~5QSV^<1mkv$ za4@RbvnIU}^9`OgIgobrou2*s&p_(wo}RNczs+a_{+P zz@X}!_n#}jgoE9_!CzOw&`*6O8#|EQCw<{{*MsSCU#wTfnC-iNJ)|D)^gYs>g4{ai zJMt8iN?q@JyX`P?p~m-q2F7ce#mr-8<3M(jJrMa1irJA;NO-pxyzxmO?-IwEZ{b)? z5y$Vn8RHtUVOA;(ofjKx?!qzpm-x#~0PK(RvEWAWiSJ)WRJl>y*E<-5MDh7AUWZ~; ze%G9H*f+wT8haMU?ppt>2LP}p$1kmmBPRK${4IB3LE7K^>vn#C*gooiV#&i`c8CAD zNr<7a+uw7_fuuR*f4lx9lJiWUTG;{#KL|{mk5IT2KIU!;EKG+(XK6s%i%=li(uo=* zZ*Sn9$;{8lz$?ZZuu~N{vI=AAyQ$)W_ofn6yq21Ji$UbsmAXm@<5-oY@{qig`t_LK z<5<3_5M5hsgGDz@qbSKFxtV<@zGVIBZU^kBw&xm^Bnb zl@s$b*oL{1CJW4PDb0Z44vOHTQ!zD@L>d|R8^d3PLZl~MW`yNtsY5mTd}>nrWsDY@ z$L&MSWu7d%1?ZHs++6HSpUi#?^qxmks0AMd2sCRf1`ZjYXws`&3WtLcS&o`J9C_Wd zZ3Ti~ypWysy3U>_2<7GyN0zxckZMLe9-nuqu4o*pwPdkFv{e{XZGDR2Qe)&u#YY11 z9|3}b5kSnj&YU=d5yfw506_Lm=Bx0R?dM_{5KHH_lfZ{Wq!g zkU|EFhHn~wo~gtPD;Rgv4e)1qh{L#Q>CY8mP-2$DsI`E@P%SVaY%=iF0tiv;kpaX@ zbFFnT>{2Y447S>*Gb5ZJ$SlS1WfZvcYEZxdWm%RHS{72}U`R4zK}icobtP;euWQ$r zD$}DaaLatbXD(&UO5gA{vR-Z$NFEy<}x9OTWPi8f1uND zoq`CpUezgx;}9hSkjVqku16!SSJr>?RRgxvrx45k?;`sLQn`%y(0&413%bcFK&<95 zFjnPEYT}H^QZ&?h@zF6Kvfb8w*j*+RrBOYKV<$}X)s^H{ucCD-<|t1|R^`QOaD+7T zHcx(b7F&briK@wOI8|zrRr8R$z!bBJ%vw)wcZoNWQrCZjutTQ-W;-eZE6V-%mh6)Pa}P5gBzx?ze3_Yv|E#R%X8kVEo zpZRO;<}YkxT?HXMqR3(Mq%Gg$nYC>5b(k-TL^st;TDM3 z*90WPKiUoH(p-dZCZSh3g3F4UIZ_I=7L=!xZ2_@2b09oq))bZONXJ0h zQF*Bx`X<`lzs)#ca}?4%YBIA2mDzk9npr!j%zVCRd|Eoo*oc)@IE{*7?#wOhj%P0s z%DvE+w-IxXsml@?ngHB`pgk-@q!KJx`G4v z-WwQ{@T+Tzu9*jO%Dd|etL-zZX(~K3xmaD|*FNvoc#EWAjy-V&l%#xvnp8d17VOa4 zG`&j;@{+Q;EZgiVopVDy&O7UYS>G!`ciuIzNbq<}qb|&Zs5NOWGt^~-T7xm!Fchr? z9Uj_jb5&VRJWP$qI%cRpoXiL>O^Jq#2brCA*2J)QY51~6u9${djX3Wrc?-lrFjf+{ zOH|trBcXXLB&h%rv>T{wCU|upE^V_3+2*Lq?9AkHFY-JFIg2Ysvo*Q3$a5xM0+vj* z08l}r&Cb%{gLC><7dLe%YM52h;))u!)f`!QTl^_n0G2wq@n($m)BIpCCQ*wAi<4qS zYM8~c8EaU#&Db!u5v=1SM8PxTmnh}#RhClIA)z;zwCUuY|XQ?q{0yY z-$tRTel?csdiw>Lu)eZ!=tL;Oz;#$q6zdeSG-I9^uy$%6WH802B) diff --git a/i18n/translation_it.ts b/i18n/translation_it.ts index 520b5821..b61d3de3 100644 --- a/i18n/translation_it.ts +++ b/i18n/translation_it.ts @@ -1,654 +1,747 @@ - + + + - AddGroupPane - - create-group-title - Crea un gruppo - - - server-label - Server - - - group-name-label - Nome del gruppo - - - default-group-name - Gruppo fantastico - - - create-group-btn - Crea - + AddGroupPane + + create-group-title + Crea un gruppo + + + server-label + Server + + + group-name-label + Nome del gruppo + + + default-group-name + Gruppo fantastico + + + create-group-btn + Crea + - AddPeerGroupPane - - profile-oniblon-label - Inviare questo indirizzo ai peer con cui si desidera connettersi - - - copy-btn - Copia - - - copied-to-clipboard-notification - Copiato negli Appunti - - - add-peer-tab - Aggiungi un peer - - - create-group-tab - Crea un gruppo - - - join-group-tab - Unisciti a un gruppo - - - peer-address - Indirizzo - - - peer-name - Nome - - - group-name - Nome del gruppo - - - server - Server - - - invitation - Invito - - - group-addr - Indirizzo - - - add-peer - Aggiungi peer - - - create-group - Crea un gruppo - - - join-group - Unisciti al gruppo - + AddPeerGroupPane + + profile-oniblon-label + Send this address to peers you want to connect with + Inviare questo indirizzo ai peer con cui si desidera connettersi + + + copy-btn + Copia + + + copied-to-clipboard-notification + notification: copied to clipboard + Copiato negli Appunti + + + add-peer-tab + Aggiungi un peer + + + create-group-tab + Crea un gruppo + + + join-group-tab + Unisciti a un gruppo + + + peer-address + Address + Indirizzo + + + peer-name + Name + Nome + + + group-name + Group Name + Nome del gruppo + + + server + Server + Server + + + invitation + Invitation + Invito + + + group-addr + Address + Indirizzo + + + add-peer + Aggiungi peer + + + create-group + Crea un gruppo + + + join-group + Unisciti al gruppo + - BulletinOverlay - - new-bulletin-label - Nuovo bollettino - - - post-new-bulletin-label - Pubblica un nuovo bollettino - - - title-placeholder - titolo... - + BulletinOverlay + + new-bulletin-label + Nuovo bollettino + + + post-new-bulletin-label + Post a new Bulletin Post + Pubblica un nuovo bollettino + + + title-placeholder + title place holder text + titolo... + - ContactList - - paste-address-to-add-contact - ... incolla qui un indirizzo per aggiungere un contatto... - - - blocked - Bloccato - + ChatOverlay + + chat-history-default + This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right. + + + + chat-history-disabled + Message history is disabled. + + + + chat-history-enabled + Message history is enabled. + + - EmojiDrawer - - cycle-cats-android - Fare clic per scorrere le categorie. + ContactList + + paste-address-to-add-contact + ... incolla qui un indirizzo per aggiungere un contatto... + + + blocked + Bloccato + + + + EmojiDrawer + + cycle-cats-android + Fare clic per scorrere le categorie. Pressione lunga per resettare. - - - cycle-cats-desktop - Fare clic per scorrere le categorie. + + + cycle-cats-desktop + Fare clic per scorrere le categorie. Cliccare con il tasto destro per resettare. - - - cycle-morphs-android - Fare clic per scorrere i morph. + + + cycle-morphs-android + Fare clic per scorrere i morph. Pressione lunga per resettare. - - - cycle-morphs-desktop - Fare clic per scorrere i morph. + + + cycle-morphs-desktop + Fare clic per scorrere i morph. Cliccare con il tasto destro per resettare. - - - cycle-colours-android - Fare clic per scorrere i colori. + + + cycle-colours-android + Fare clic per scorrere i colori. Pressione lunga per resettare. - - - cycle-colours-desktop - Fare clic per scorrere i colori. + + + cycle-colours-desktop + Fare clic per scorrere i colori. Cliccare con il tasto destro per resettare. - - - search - Ricerca... - + + + search + Ricerca... + - GroupSettingsPane - - server-label - Server - - - copy-btn - Copia - - - copied-to-clipboard-notification - Copiato negli Appunti - - - invitation-label - Invito - - - server-info - Informazioni sul server - - - server-connectivity-connected - Server connesso - - - server-connectivity-disconnected - Server disconnesso - - - server-synced - Sincronizzato - - - server-not-synced - Non sincronizzato - - - view-server-info - Informazioni sul server - - - group-name-label - Nome del gruppo - - - save-btn - Salva - - - invite-to-group-label - Invitare nel gruppo - - - invite-btn - Invitare - - - delete-btn - Elimina - + GroupSettingsPane + + server-label + Server + + + copy-btn + Copia + + + copied-to-clipboard-notification + notification: copied to clipboard + Copiato negli Appunti + + + invitation-label + Invito + + + server-info + Informazioni sul server + + + server-connectivity-connected + Server connesso + + + server-connectivity-disconnected + Server disconnesso + + + server-synced + Sincronizzato + + + server-not-synced + Non sincronizzato + + + view-server-info + Informazioni sul server + + + group-name-label + Nome del gruppo + + + save-btn + Salva + + + invite-to-group-label + Invitare nel gruppo + + + invite-btn + Invitare + + + delete-btn + Elimina + - InplaceEditText - - Update - Aggiornamento - + InplaceEditText + + Update + Aggiornamento + - ListOverlay - - search-list - Cerca nella lista - - - peer-not-online - Il peer è offline. Le applicazioni non possono essere utilizzate in questo momento. - - - add-list-item-btn - Aggiungi elemento - - - add-list-item - Aggiungi un nuovo elemento alla lista - - - add-new-item - Aggiungi un nuovo elemento alla lista - - - todo-placeholder - Da fare... - + ListOverlay + + search-list + ex: "Find..." + Cerca nella lista + + + peer-not-online + Il peer è offline. Le applicazioni non possono essere utilizzate in questo momento. + + + add-list-item-btn + Aggiungi elemento + + + add-list-item + Aggiungi un nuovo elemento alla lista + + + add-new-item + Aggiungi un nuovo elemento alla lista + + + todo-placeholder + Da fare... + - MembershipOverlay - - membership-description - Di seguito è riportato un elenco di utenti che hanno inviato messaggi al gruppo. Questo elenco potrebbe non corrispondere a tutti gli utenti che hanno accesso al gruppo. - + MembershipOverlay + + membership-description + Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group. + Di seguito è riportato un elenco di utenti che hanno inviato messaggi al gruppo. Questo elenco potrebbe non corrispondere a tutti gli utenti che hanno accesso al gruppo. + - Message - - dm-tooltip - Clicca per inviare un Messagio Diretto - - - could-not-send-msg-error - Impossibile inviare questo messaggio - - - acknowledged-label - Riconosciuto - - - pending-label - In corso - + Message + + dm-tooltip + Click to DM + Clicca per inviare un Messagio Diretto + + + could-not-send-msg-error + Could not send this message + Impossibile inviare questo messaggio + + + acknowledged-label + Riconosciuto + + + pending-label + In corso + - MessageEditor - - peer-blocked-message - Il peer è bloccato - - - peer-offline-message - Il peer è offline, i messaggi non possono essere recapitati in questo momento - + MessageEditor + + peer-blocked-message + Peer is blocked + Il peer è bloccato + + + peer-offline-message + Peer is offline, messages can't be delivered right now + Il peer è offline, i messaggi non possono essere recapitati in questo momento + - MyProfile - - copy-btn - Copia - - - copied-clipboard-notification - Copiato negli Appunti - - - new-group-btn - Crea un nuovo gruppo - - - paste-address-to-add-contact - ... incolla qui un indirizzo per aggiungere un contatto ... - + MyProfile + + copy-btn + Copia + + + copied-clipboard-notification + Copiato negli Appunti + + + new-group-btn + Crea un nuovo gruppo + + + paste-address-to-add-contact + ... incolla qui un indirizzo per aggiungere un contatto ... + - OverlayPane - - accept-group-invite-label - Vuoi accettare l'invito a - - - accept-group-btn - Accetta - - - reject-group-btn - Rifiuta - - - chat-btn - Chat - - - lists-btn - Liste - - - bulletins-btn - Bollettini - - - puzzle-game-btn - Gioco di puzzle - + OverlayPane + + accept-group-invite-label + Vuoi accettare l'invito a + + + accept-group-btn + Accetta + + + reject-group-btn + Rifiuta + + + chat-btn + Chat + + + lists-btn + Liste + + + bulletins-btn + Bollettini + + + puzzle-game-btn + Gioco di puzzle + - PeerSettingsPane - - address-label - Indirizzo - - - copy-btn - Copia - - - copied-to-clipboard-notification - Copiato negli Appunti - - - display-name-label - Nome visualizzato - - - save-btn - Salva - - - block-btn - Blocca il peer - - - save-peer-history - Salva cronologia peer - - - save-peer-history-description - Determina se eliminare o meno ogni cronologia eventualmente associata al peer. - - - dont-save-peer-history - Elimina cronologia dei peer - - - unblock-btn - Sblocca il peer - - - delete-btn - Elimina - + PeerSettingsPane + + address-label + Indirizzo + + + copy-btn + Copia + + + copied-to-clipboard-notification + notification: copied to clipboard + Copiato negli Appunti + + + display-name-label + Nome visualizzato + + + save-btn + Salva + + + block-btn + Blocca il peer + + + save-peer-history + Save Peer History + Salva cronologia peer + + + save-peer-history-description + Determina se eliminare o meno ogni cronologia eventualmente associata al peer. + + + dont-save-peer-history + Elimina cronologia dei peer + + + unblock-btn + Sblocca il peer + + + delete-btn + Elimina + - ProfileAddEditPane - - add-profile-title - Aggiungi nuovo profilo - - - edit-profile-title - Modifica profilo - - - profile-name - Nome visualizzato - - - default-profile-name - Alice - - - new-profile - Nuovo profilo - - - edit-profile - Modifica profilo - - - profile-onion-label - Inviare questo indirizzo ai peer con cui si desidera connettersi - - - copy-btn - Copia - - - copied-to-clipboard-notification - Copiato negli appunti - - - radio-use-password - Password - - - radio-no-password - Non criptato (senza password) - - - no-password-warning - Non utilizzare una password su questo account significa che tutti i dati archiviati localmente non verranno criptati - - - profile-oniblon-label - Inviare questo indirizzo ai peer con cui si desidera connettersi - - - your-display-name - Il tuo nome visualizzato - - - current-password-label - Password corrente - - - password1-label - Password - - - password2-label - Reinserire la password - - - password-error-empty - La password non può essere vuota - - - create-profile-btn - Crea un profilo - - - save-profile-btn - Salva il profilo - - - password-error-match - Le password non corrispondono - - - password-change-error - Errore durante la modifica della password: password fornita rifiutata - - - delete-profile-btn - Elimina profilo - - - delete-confirm-label - Digita ELIMINA per confermare - - - delete-profile-confirm-btn - Elimina realmente il profilo - - - delete-confirm-text - ELIMINA - + ProfileAddEditPane + + add-profile-title + Aggiungi nuovo profilo + + + edit-profile-title + Modifica profilo + + + profile-name + Nome visualizzato + + + default-profile-name + Alice + + + new-profile + New Profile || Edit Profile + Nuovo profilo + + + edit-profile + Modifica profilo + + + profile-onion-label + Inviare questo indirizzo ai peer con cui si desidera connettersi + + + copy-btn + Copia + + + copied-to-clipboard-notification + notification: copied to clipboard + Copiato negli appunti + + + radio-use-password + Password + Password + + + radio-no-password + Unencrypted (No password) + Non criptato (senza password) + + + no-password-warning + Not using a password on this account means that all data stored locally will not be encrypted + Non utilizzare una password su questo account significa che tutti i dati archiviati localmente non verranno criptati + + + profile-oniblon-label + Send this address to peers you want to connect with + Inviare questo indirizzo ai peer con cui si desidera connettersi + + + your-display-name + Your Display Name + Il tuo nome visualizzato + + + current-password-label + Current Password + Password corrente + + + password1-label + Password + Password + + + password2-label + Reenter password + Reinserire la password + + + password-error-empty + Passwords do not match + La password non può essere vuota + + + create-profile-btn + Create || Save + Crea un profilo + + + save-profile-btn + Salva il profilo + + + password-error-match + Le password non corrispondono + + + password-change-error + Error changing password: Supplied password rejected + Errore durante la modifica della password: password fornita rifiutata + + + delete-profile-btn + Delete Profile + Elimina profilo + + + delete-confirm-label + Type DELETE to confirm + Digita ELIMINA per confermare + + + delete-profile-confirm-btn + Really Delete Profile + Elimina realmente il profilo + + + delete-confirm-text + DELETE + ELIMINA + - ProfileList - - add-new-profile-btn - Aggiungi nuovo profilo - + ProfileList + + add-new-profile-btn + Aggiungi nuovo profilo + - ProfileManagerPane - - enter-profile-password - Inserisci una password per visualizzare i tuoi profili - - - password - Password - - - error-0-profiles-loaded-for-password - 0 profili caricati con quella password - - - your-profiles - I tuoi profili - - - your-servers - I tuoi server - - - unlock - Sblocca - + ProfileManagerPane + + enter-profile-password + Enter a password to view your profiles + Inserisci una password per visualizzare i tuoi profili + + + password + Password + + + error-0-profiles-loaded-for-password + 0 profiles loaded with that password + 0 profili caricati con quella password + + + your-profiles + Your Profiles + I tuoi profili + + + your-servers + Your Profiles + I tuoi server + + + unlock + Unlock + Sblocca + - SettingsPane - - cwtch-settings-title - Impostazioni di Cwtch - - - version %1 builddate %2 - Versione: %1 Costruito il: %2 - - - zoom-label - Zoom dell'interfaccia (influisce principalmente sulle dimensioni del testo e dei pulsanti) - - - block-unknown-label - Blocca peer sconosciuti - - - setting-language - Lingua - - - locale-en - Inglese - - - locale-fr - Francese - - - locale-pt - Portoghese - - - locale-de - Tedesco - - - setting-interface-zoom - Livello di zoom - - - large-text-label - Grande - - - setting-theme - Tema - - - theme-light - Chiaro - - - theme-dark - Scuro - - - experiments-enabled - Esperimenti abilitati - - - version %1 tor %2 - Versione %1 con tor %2 - - - version %1 - Versione %1 - - - builddate %2 - Costruito il: %2 - - - default-scaling-text - Testo di dimensioni predefinite (fattore di scala: - - - small-text-label - Piccolo - - - locale-es - Spagnolo - - - locale-it - Italiano - + SettingsPane + + cwtch-settings-title + Impostazioni di Cwtch + + + version %1 builddate %2 + Versione: %1 Costruito il: %2 + + + zoom-label + Zoom dell'interfaccia (influisce principalmente sulle dimensioni del testo e dei pulsanti) + + + block-unknown-label + Blocca peer sconosciuti + + + setting-language + Language + Lingua + + + locale-en + Inglese + + + locale-fr + Francese + + + locale-pt + Portoghese + + + locale-de + Tedesco + + + setting-interface-zoom + Interface Zoom + Livello di zoom + + + large-text-label + large text + Grande + + + setting-theme + Theme + Tema + + + theme-light + Chiaro + + + theme-dark + Scuro + + + experiments-enabled + Enable experiments + Esperimenti abilitati + + + version %1 tor %2 + Version %1 with tor %2 + Versione %1 con tor %2 + + + version %1 + Versione %1 + + + builddate %2 + Built on: %2 + Costruito il: %2 + + + default-scaling-text + Testo di dimensioni predefinite (fattore di scala: + + + small-text-label + small text + Piccolo + + + locale-es + Spagnolo + + + locale-it + Italiano + + + medium-text-label + medium text + + + + Text magnification reference + + + + Acknowledgements + + + + extra special thanks!!!! + don't translate yet... we should come up with something to write here as a team<3 + + - SplashPane - - loading-tor - Caricamento di tor... - + SplashPane + + loading-tor + Loading tor... + Caricamento di tor... + - StackToolbar - - view-group-membership-tooltip - Visualizza i membri del gruppo - + StackToolbar + + view-group-membership-tooltip + Visualizza i membri del gruppo + - Statusbar - - network-status-disconnected - Disconnesso da Internet, controlla la tua connessione - - - network-status-attempting-tor - Tentativo di connessione alla rete Tor - - - network-status-connecting - Connessione alla rete e ai peer ... - - - network-status-online - Online - + Statusbar + + network-status-disconnected + Disconnected from the internet, check your connection + Disconnesso da Internet, controlla la tua connessione + + + network-status-attempting-tor + Attempting to connect to Tor network + Tentativo di connessione alla rete Tor + + + network-status-connecting + Connecting... + Connessione alla rete e ai peer ... + + + network-status-online + Online + Online + - main - - new-connection-pane-title - Nuova connessione - + main + + new-connection-pane-title + New Connection + Nuova connessione + diff --git a/i18n/translation_pt.ts b/i18n/translation_pt.ts index d110ca74..7a7f63d5 100644 --- a/i18n/translation_pt.ts +++ b/i18n/translation_pt.ts @@ -31,69 +31,69 @@ AddPeerGroupPane - + profile-oniblon-label Send this address to peers you want to connect with - + copy-btn Copiar - + copied-to-clipboard-notification notification: copied to clipboard Copiado - + add-peer-tab - + create-group-tab - + join-group-tab - + peer-address Address - + peer-name Name - + group-name Group Name - + server Server - + invitation Invitation - + group-addr Address @@ -102,18 +102,18 @@ BulletinOverlay - + new-bulletin-label Novo Boletim - + post-new-bulletin-label Post a new Bulletin Post Postar novo boletim - + title-placeholder title place holder text título… @@ -148,7 +148,7 @@ … cole um endereço aqui para adicionar um contato… - + blocked @@ -156,65 +156,65 @@ GroupSettingsPane - + server-label Servidor - - + + copy-btn Copiar - - + + copied-to-clipboard-notification notification: copied to clipboard Copiado - + invitation-label Convite - + server-info - + server-connectivity-connected - + server-connectivity-disconnected - + server-synced - + server-not-synced - + view-server-info - + group-name-label Nome do Grupo - + save-btn Salvar @@ -228,7 +228,7 @@ Convidar - + delete-btn Deletar @@ -251,18 +251,18 @@ Afazer… - + search-list ex: "Find..." - + peer-not-online - + add-list-item-btn @@ -279,24 +279,24 @@ Message - + dm-tooltip Click to DM Clique para DM - + could-not-send-msg-error Could not send this message Não deu para enviar esta mensagem - + acknowledged-label Confirmada - + pending-label Pendente @@ -379,55 +379,55 @@ PeerSettingsPane - + address-label Endereço - + copy-btn Copiar - + copied-to-clipboard-notification notification: copied to clipboard Copiado - + display-name-label Nome de Exibição - + save-btn Salvar - - + + save-peer-history Save Peer History - + save-peer-history-description - + dont-save-peer-history - + delete-btn Deletar - + block-btn @@ -435,30 +435,30 @@ ProfileAddEditPane - + copy-btn Copiar - + copied-to-clipboard-notification notification: copied to clipboard Copiado - + radio-use-password Password - + radio-no-password Unencrypted (No password) - + no-password-warning Not using a password on this account means that all data stored locally will not be encrypted @@ -475,84 +475,84 @@ - + profile-oniblon-label Send this address to peers you want to connect with - + your-display-name Your Display Name - + current-password-label Current Password - + password1-label Password - + password2-label Reenter password - + password-error-empty Passwords do not match - + create-profile-btn Create || Save - + save-profile-btn - + password-error-match - + password-change-error Error changing password: Supplied password rejected - + delete-profile-btn Delete Profile - - + + delete-confirm-label Type DELETE to confirm - + delete-profile-confirm-btn Really Delete Profile - + delete-confirm-text DELETE @@ -561,7 +561,7 @@ ProfileList - + add-new-profile-btn @@ -569,36 +569,36 @@ ProfileManagerPane - + enter-profile-password Enter a password to view your profiles - + password - + error-0-profiles-loaded-for-password 0 profiles loaded with that password - + your-profiles Your Profiles - + your-servers Your Profiles - + unlock Unlock @@ -617,88 +617,105 @@ Zoom da interface (afeta principalmente tamanho de texto e botões) - + setting-language Language - + locale-en - + locale-fr - + locale-pt - + locale-de - + locale-es - + locale-it - + setting-interface-zoom Interface Zoom - + medium-text-label medium text - + large-text-label large text Grande - + setting-theme Theme - + theme-light - + theme-dark - + experiments-enabled - Theme + Enable experiments - + + + Text magnification reference + + + + + Acknowledgements + + + + + extra special thanks!!!! + don't translate yet... we should come up with something to write here as a team<3 + + + + version %1 tor %2 Version %1 with tor %2 - + builddate %2 Built on: %2 @@ -709,7 +726,7 @@ Texto tamanho padrão (fator de escala: - + small-text-label small text Pequeno @@ -754,7 +771,7 @@ main - + new-connection-pane-title New Connection -- 2.25.1 From 32b617d3ecff7595dd5e10e77cf1e1b07f71e8a5 Mon Sep 17 00:00:00 2001 From: erinn Date: Thu, 17 Dec 2020 08:10:57 -0800 Subject: [PATCH 4/4] new scaling system pass two --- go/ui/gcd.go | 25 +++------- go/ui/settings.go | 8 +-- qml/main.qml | 11 ++--- qml/opaque | 2 +- qml/overlays/ChatOverlay.qml | 8 ++- qml/panes/AddPeerGroupPane.qml | 85 ++++++++++++++++++-------------- qml/panes/PeerSettingsPane.qml | 3 +- qml/panes/ProfileAddEditPane.qml | 41 ++++++++------- qml/panes/ProfileManagerPane.qml | 6 +-- qml/panes/SettingsPane.qml | 7 ++- qml/panes/SplashPane.qml | 8 +-- qml/widgets/ContactList.qml | 19 ++----- qml/widgets/ContactRow.qml | 26 +++++----- qml/widgets/Message.qml | 9 ++-- qml/widgets/MessageEditor.qml | 31 ++++++------ qml/widgets/ProfileList.qml | 2 +- qml/widgets/ProfileRow.qml | 2 +- qml/widgets/ServerList.qml | 2 +- qml/widgets/Statusbar.qml | 20 ++++---- 19 files changed, 144 insertions(+), 171 deletions(-) diff --git a/go/ui/gcd.go b/go/ui/gcd.go index 2ee99c44..2a55557e 100644 --- a/go/ui/gcd.go +++ b/go/ui/gcd.go @@ -42,12 +42,7 @@ type GrandCentralDispatcher struct { _ int `property:"torStatus"` _ string `property:"os"` _ bool `property:"firstTime"` - // phasing out themeScale in three steps: - // 1 (current): switch labels to themeScaleNew - // 2: switch everything else to themeScaleNew - // 3: refactor: delete themeScale, rename themeScaleNew -> themeScale - _ float32 `property:"themeScale,auto,changed"` - _ int `property:"themeScaleNew,auto,changed"` + _ int `property:"scaleFactor,auto,changed"` _ string `property:"theme,auto,changed"` _ string `property:"locale,auto,changed"` _ string `property:"version"` @@ -103,7 +98,7 @@ type GrandCentralDispatcher struct { // settings helpers _ func(str string) `signal:"InvokePopup"` - _ func(locale string, zoom float32, theme string) `signal:"SupplySettings"` + _ func(locale string, scale int, theme string) `signal:"SupplySettings"` _ func(groupID, name, server, invitation string, accepted bool, addrbooknames, addrbookaddrs []string) `signal:"SupplyGroupSettings"` _ func(onion, nick string, authorization string, storage string) `signal:"SupplyPeerSettings"` _ func(server string, key_types []string, keys []string) `signal:"SupplyServerSettings"` @@ -111,8 +106,8 @@ type GrandCentralDispatcher struct { // signals emitted from the ui (and implemented in go, below) // ui _ func() `signal:"onActivate,auto"` - _ func(pane int) `signal:"setRootPaneState",auto` - _ func(pane int) `signal:"setProfilePaneState",auto` + _ func(pane int) `signal:"setRootPaneState,auto"` + _ func(pane int) `signal:"setProfilePaneState,auto"` // profile managemenet _ func(onion, nick string) `signal:"updateNick,auto"` _ func(handle string) `signal:"loadProfile,auto"` @@ -163,8 +158,7 @@ func (this *GrandCentralDispatcher) init() { firstTime := false this.GlobalSettings, firstTime = ReadGlobalSettings() this.SetFirstTime(firstTime) - this.SetThemeScale(this.GlobalSettings.Zoom) - this.SetThemeScaleNew(this.GlobalSettings.Scale) + this.SetScaleFactor(this.GlobalSettings.Scale) this.SetTheme(this.GlobalSettings.Theme) this.SetExperimentsEnabled(this.GlobalSettings.ExperimentsEnabled) this.SetExperiments(this.GlobalSettings.Experiments) @@ -460,7 +454,7 @@ func (this *GrandCentralDispatcher) legacyLoadOverlay_helper(handle string, over } func (this *GrandCentralDispatcher) requestSettings() { - this.SupplySettings(this.GlobalSettings.Locale, this.GlobalSettings.Zoom, this.GlobalSettings.Theme) + this.SupplySettings(this.GlobalSettings.Locale, this.GlobalSettings.Scale, this.GlobalSettings.Theme) } func (this *GrandCentralDispatcher) saveSettings(zoom, locale string) { @@ -780,12 +774,7 @@ func (this *GrandCentralDispatcher) setLocaleHelper(locale string) { this.QMLEngine.Retranslate() } -func (this *GrandCentralDispatcher) themeScaleChanged(newThemeScale float32) { - this.GlobalSettings.Zoom = newThemeScale - WriteGlobalSettings(this.GlobalSettings) -} - -func (this *GrandCentralDispatcher) themeScaleNewChanged(newScale int) { +func (this *GrandCentralDispatcher) scaleFactorChanged(newScale int) { this.GlobalSettings.Scale = newScale WriteGlobalSettings(this.GlobalSettings) } diff --git a/go/ui/settings.go b/go/ui/settings.go index f6abab32..dee873de 100644 --- a/go/ui/settings.go +++ b/go/ui/settings.go @@ -9,15 +9,13 @@ import ( "io/ioutil" "os" "path" - "runtime" ) const GlobalSettingsFilename = "ui.globals" const saltFile = "SALT" type GlobalSettings struct { - Zoom float32 // deprecated - Scale int // the new hotness + Scale int Locale string Theme string PreviousPid int64 @@ -27,7 +25,6 @@ type GlobalSettings struct { } var DefaultGlobalSettings = GlobalSettings{ - Zoom: 1.9, Scale: 2, Locale: "en", Theme: "light", @@ -61,9 +58,6 @@ func InitGlobalSettingsFile(directory string, password string) error { func ReadGlobalSettings() (*GlobalSettings, bool) { settings := DefaultGlobalSettings - if runtime.GOOS == "android" { - settings.Zoom = 2.9 - } settings.Locale = core.QLocale_System().Name() settingsBytes, err := the.GlobalSettingsFile.Read() diff --git a/qml/main.qml b/qml/main.qml index 321261dd..8d735914 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -40,17 +40,17 @@ ApplicationWindow { retText = retText.replace(/\n/g,"
").replace(/\s\s/g, "  ") // mutant standard stickers - if (isntEditable) retText = Mutant.standard.parse(retText, 1.5 * gcd.themeScale * Theme.chatSize) + if (isntEditable) retText = Mutant.standard.parse(retText, ptToPx(Theme.chatSize)) return retText } function ptToPx(pt) { - return Screen.pixelDensity * 25.4 * pt / 72 + return Math.floor(Screen.pixelDensity * 25.4 * pt / 72) } function pxToPt(px) { - return px * 72 / (Screen.pixelDensity * 25.4) + return Math.floor(px * 72 / (Screen.pixelDensity * 25.4)) } StackView { @@ -199,7 +199,6 @@ ApplicationWindow { anchors.left: parent.left anchors.bottom: parent.bottom anchors.right: (divider.visible ? divider.left : parent.right) - //anchors.topMargin: 10 * gcd.themeScale dualPane: theStack.pane != theStack.emptyPane || theStack.pane == undefined } @@ -207,7 +206,7 @@ ApplicationWindow { id: divider width: 2 anchors.right: parent.right - height: parent.height - (20 * gcd.themeScale) + height: parent.height - 2 * Theme.paddingStandard anchors.verticalCenter: parent.verticalCenter visible: theStack.pane != theStack.emptyPane //Layout.fillHeight: true @@ -244,7 +243,7 @@ ApplicationWindow { Layout.fillHeight: true OverlayPane { // messagePane anchors.fill: parent - anchors.topMargin: 10// * gcd.themeScale + anchors.topMargin: Theme.paddingSmall } } diff --git a/qml/opaque b/qml/opaque index 136e613a..10123e56 160000 --- a/qml/opaque +++ b/qml/opaque @@ -1 +1 @@ -Subproject commit 136e613ab596ae70edfa73fc6019f5dde44e0a08 +Subproject commit 10123e56a6a6d251c0ff707e793de857250d7ad4 diff --git a/qml/overlays/ChatOverlay.qml b/qml/overlays/ChatOverlay.qml index 76539d95..dd48c9a6 100644 --- a/qml/overlays/ChatOverlay.qml +++ b/qml/overlays/ChatOverlay.qml @@ -16,8 +16,6 @@ W.Overlay { property bool loading property string historyState: "DefaultDeleteHistory" - //horizontalPadding: 15 * gcd.themeScale - Connections { target: mm onRowsInserted: { @@ -137,7 +135,7 @@ W.Overlay { property string txt: section color: Theme.backgroundMainColor width: parent.width - height: texmet.height + 6 + 12// * gcd.themeScale + height: texmet.height + 6 + 2 * Theme.paddingSmall anchors.horizontalCenter: parent.horizontalCenter @@ -156,7 +154,7 @@ W.Overlay { // ... and this can be changed to // text: parent.parent.section text: parent.parent.txt - font.pixelSize: Theme.chatSize * gcd.themeScale + font.pointSize: Theme.textSmallPt color: Theme.messageFromOtherTextColor anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter @@ -165,7 +163,7 @@ W.Overlay { TextMetrics { id: texmet text: txtDate.text - font.pixelSize: Theme.chatSize * gcd.themeScale + font: txtDate.font } } } diff --git a/qml/panes/AddPeerGroupPane.qml b/qml/panes/AddPeerGroupPane.qml index fc9bf988..83f505f7 100644 --- a/qml/panes/AddPeerGroupPane.qml +++ b/qml/panes/AddPeerGroupPane.qml @@ -27,13 +27,15 @@ Rectangle { groupAddr.text = "" onionLabel.text = gcd.selectedProfile + gcd.requestPeeredServers() + } Column { anchors.fill: parent - spacing: 25 * gcd.themeScale - leftPadding: 20 * gcd.themeScale - rightPadding: 20 * gcd.themeScale + spacing: Theme.paddingSmall + leftPadding: Theme.paddingStandard + rightPadding: Theme.paddingStandard Opaque.Label { id: shareLabel @@ -54,7 +56,7 @@ Rectangle { anchors.horizontalCenter: parent.horizontalCenter readOnly: true - width: parent.width - (40*gcd.themeScale) + width: parent.width - (2 * Theme.paddingStandard) button_text: qsTr("copy-btn") dropShadowColor: Theme.dropShadowPaneColor @@ -68,7 +70,7 @@ Rectangle { Rectangle { // Spacer width: 1 - height: 25 * gcd.themeScale + height: Theme.paddingStandard color: root.color } @@ -89,16 +91,16 @@ Rectangle { Column { // Add a peer Layout.fillWidth: true - leftPadding: 20 * gcd.themeScale - rightPadding: 20 * gcd.themeScale - spacing: 25 * gcd.themeScale + leftPadding: Theme.paddingStandard + rightPadding: Theme.paddingStandard + spacing: Theme.paddingSmall Opaque.UnderlineTextField { id: peerAddr backgroundColor: Theme.backgroundPaneColor - width: parent.width - (40*gcd.themeScale) + width: parent.width - (2 * Theme.paddingStandard) anchors.horizontalCenter: parent.horizontalCenter //: Address @@ -110,7 +112,7 @@ Rectangle { id: peerName backgroundColor: Theme.backgroundPaneColor - width: parent.width - (40*gcd.themeScale) + width: parent.width - (2 * Theme.paddingStandard) anchors.horizontalCenter: parent.horizontalCenter //: Name @@ -121,9 +123,9 @@ Rectangle { Column { // Create a group Layout.fillWidth: true - leftPadding: 20 * gcd.themeScale - rightPadding: 20 * gcd.themeScale - spacing: 25 * gcd.themeScale + leftPadding: Theme.paddingStandard + rightPadding: Theme.paddingStandard + spacing: Theme.paddingSmall Opaque.UnderlineTextField { @@ -131,7 +133,7 @@ Rectangle { id: groupNameCreate backgroundColor: Theme.backgroundPaneColor - width: parent.width - (40*gcd.themeScale) + width: parent.width - (2 * Theme.paddingStandard) anchors.horizontalCenter: parent.horizontalCenter //: Group Name @@ -139,24 +141,18 @@ Rectangle { } - Row { - width: parent.width - (40*gcd.themeScale) - - Column { - visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") - width: parent.width / 2 - Opaque.Label { - //: Server - text: qsTr("server") - } + Column { + width: parent.width - (2 * Theme.paddingStandard) + anchors.horizontalCenter: parent.horizontalCenter + visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") + Opaque.Label { + //: Server + text: qsTr("server") } - - Column { - visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") - width: parent.width / 2 - Opaque.Label { - //: Invitation - text: qsTr("invitation") + Opaque.ComboBox { + width:parent.width + model: ListModel { + id: cbServerList } } } @@ -164,9 +160,9 @@ Rectangle { Column { // Join a group Layout.fillWidth: true - leftPadding: 20 * gcd.themeScale - rightPadding: 20 * gcd.themeScale - spacing: 25 * gcd.themeScale + leftPadding: Theme.paddingStandard + rightPadding: Theme.paddingStandard + spacing: Theme.paddingSmall Opaque.UnderlineTextField { @@ -174,7 +170,7 @@ Rectangle { id: groupAddr backgroundColor: Theme.backgroundPaneColor - width: parent.width - (40*gcd.themeScale) + width: parent.width - (2 * Theme.paddingStandard) anchors.horizontalCenter: parent.horizontalCenter //: Address @@ -187,7 +183,7 @@ Rectangle { Rectangle { // Spacer width: 1 - height: 25 * gcd.themeScale + height: Theme.paddingStandard color: root.color } @@ -195,8 +191,6 @@ Rectangle { Opaque.Button { anchors.horizontalCenter: parent.horizontalCenter - height: 40 * gcd.themeScale - //: Add Peer | Create Group | Join Group text: tabBar.currentItem.text @@ -204,6 +198,9 @@ Rectangle { if (tabBar.currentIndex == 0) { gcd.addPeer(peerName.text, peerAddr.text) theStack.currentIndex = theStack.emptyPane + } else if (tabBar.currentIndex == 1) { + gcd.createGroup(cbServerList.get(cbServerList.selectedIndex).text, groupNameCreate.text); + theStack.currentIndex = theStack.emptyPane } else if (tabBar.currentIndex == 2) { gcd.addGroup(groupAddr.text) theStack.currentIndex = theStack.emptyPane @@ -213,4 +210,16 @@ Rectangle { } + Connections { + target: gcd + + onSupplyPeeredServers: function(servers) { + console.log("Servers are here:!" + servers); + cbServerList.clear(); + for (var i=0;i 99 ? "99+" : badge } @@ -71,16 +71,16 @@ Opaque.PortraitRow { visible: authorization == Const.auth_unknown anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - anchors.leftMargin: 1 * gcd.themeScale - anchors.rightMargin: 25 * gcd.themeScale - spacing: 16 * gcd.themeScale + anchors.leftMargin: Theme.paddingMinimal + anchors.rightMargin: Theme.paddingStandard + spacing: Theme.paddingSmall Opaque.Icon { source: gcd.assetPath + "core/favorite-24px.webp" iconColor: Theme.toolbarIconColor backgroundColor: rowColor - height: 18 * gcd.themeScale - width: 18 * gcd.themeScale + height: Theme.uiIconSizeS + width: Theme.uiIconSizeS onClicked: { gcd.setPeerAuthorization(handle, Const.auth_approved)} } @@ -89,8 +89,8 @@ Opaque.PortraitRow { source: gcd.assetPath + "core/delete-24px.webp" iconColor: Theme.toolbarIconColor backgroundColor: rowColor - height: 18 * gcd.themeScale - width: 18 * gcd.themeScale + height: Theme.uiIconSizeS + width: Theme.uiIconSizeS onClicked: gcd.setPeerAuthorization(handle, Const.auth_blocked) } diff --git a/qml/widgets/Message.qml b/qml/widgets/Message.qml index bbac2a6d..441609a3 100644 --- a/qml/widgets/Message.qml +++ b/qml/widgets/Message.qml @@ -29,8 +29,6 @@ Rectangle { property string error property bool calendarEvent - property real logscale: 4 * Math.log10(gcd.themeScale + 1) - Connections { target: gcd @@ -86,10 +84,10 @@ Rectangle { Rectangle { // THIS IS JUST A PRETTY MESSAGE-HOLDING RECTANGLE id: rectMessageBubble - height: (handle.visible ? handle.height : 0) + (10 * gcd.themeScale) + colMessageBubble.height + 8 - width: colMessageBubble.width + 6 + height: (handle.visible ? handle.height : 0) + colMessageBubble.height + 2 * Theme.paddingMinimal + width: colMessageBubble.width + 2 * Theme.radiusM color: fromMe ? Theme.messageFromMeBackgroundColor : (calendarEvent ? Theme.messageFromOtherBackgroundColor : Theme.messageFromOtherBackgroundColor) - radius: 15 * logscale + radius: Theme.radiusL anchors.left: fromMe ? undefined : (calendarEvent ? undefined : imgProfile.right) //parent.left anchors.right: fromMe ? (calendarEvent ? undefined : parent.right) : undefined @@ -125,7 +123,6 @@ Rectangle { bold: true leftPadding: Theme.paddingSmall rightPadding: Theme.paddingSmall - topPadding: Theme.paddingSmall } Column { diff --git a/qml/widgets/MessageEditor.qml b/qml/widgets/MessageEditor.qml index e6291e3d..8b275a17 100644 --- a/qml/widgets/MessageEditor.qml +++ b/qml/widgets/MessageEditor.qml @@ -58,7 +58,7 @@ ColumnLayout { Opaque.EmojiDrawer { id: emojiDrawer Layout.fillWidth: true - size: 24 * gcd.themeScale + size: Theme.uiIconSizeM onPicked: function(shortcode) { if (!txtMessage.enabled) return @@ -71,7 +71,7 @@ ColumnLayout { Layout.fillWidth: true - height: statusText.visible ? statusText.height + (4 * gcd.themeScale) : 3 * gcd.themeScale + height: statusText.visible ? statusText.height + (2 * Theme.paddingMinimal) : Theme.paddingMinimal implicitHeight: height color: Theme.dividerColor @@ -97,8 +97,8 @@ ColumnLayout { Rectangle { // MESSAGE ENTRY TEXTFIELD id: rectMessage Layout.fillWidth: true - Layout.minimumHeight: 120 * gcd.themeScale - Layout.maximumHeight: 120 * gcd.themeScale + Layout.minimumHeight: 60 + 20 * Theme.scale + Layout.maximumHeight: 60 + 20 * Theme.scale color: Theme.backgroundMainColor Opaque.Flickable { @@ -109,9 +109,9 @@ ColumnLayout { TextArea { id: txtMessage - font.pixelSize: Theme.chatSize * gcd.themeScale + font.pointSize: Theme.chatSize text: "" - padding: 6 * gcd.themeScale + padding: Theme.paddingSmall wrapMode: TextEdit.Wrap textFormat: Text.PlainText width: rectMessage.width @@ -152,7 +152,7 @@ ColumnLayout { ColumnLayout { id: colRight spacing: 0 - width: 100 * gcd.themeScale + width: Theme.uiIconSizeM + 2 * Theme.paddingStandard Layout.minimumWidth: width Layout.preferredWidth: width @@ -162,9 +162,8 @@ ColumnLayout { id: btnSend source: gcd.assetPath + "core/send-24px.webp" width: colRight.width - // floor(...) needed or else send icon won't scale properly(?!?) - height: Math.floor(50 * gcd.themeScale) - size: 36 * gcd.themeScale + height: Theme.uiIconSizeM + 2 * Theme.paddingMinimal + size: Theme.uiIconSizeM sourceWidth: size sourceHeight: size @@ -191,9 +190,9 @@ ColumnLayout { id: btnEmoji source: gcd.assetPath + "core/mood-24px.webp" - size: 25 - height: 36 * gcd.themeScale - width: 48 * gcd.themeScale + size: Theme.uiIconSizeS + height: Theme.uiIconSizeS + 2 * Theme.paddingMinimal + width: colRight.width / 2 backgroundColor: enabled ? Theme.altButtonColor : Theme.altButtonDisabledColor hilightBackgroundColor: backgroundColor @@ -206,9 +205,9 @@ ColumnLayout { id: btnAttach source: gcd.assetPath + "core/attach_file-24px.webp" - size: 25 - height: 36 * gcd.themeScale - width: 48 * gcd.themeScale + size: Theme.uiIconSizeS + height: Theme.uiIconSizeS + 2 * Theme.paddingMinimal + width: colRight.width / 2 backgroundColor: enabled ? Theme.altButtonColor : Theme.altButtonDisabledColor hilightBackgroundColor: backgroundColor diff --git a/qml/widgets/ProfileList.qml b/qml/widgets/ProfileList.qml index 22ab1e67..493c86cf 100644 --- a/qml/widgets/ProfileList.qml +++ b/qml/widgets/ProfileList.qml @@ -114,7 +114,7 @@ ColumnLayout { badgeVisible: true badgeContent: Image { source: gcd.assetPath + "core/fontawesome/solid/plus.webp" - height: Theme.badgeTextSize * gcd.themeScale + height: Theme.uiIconSizeS width: height } badgeColor: Theme.portraitProfileBadgeColor diff --git a/qml/widgets/ProfileRow.qml b/qml/widgets/ProfileRow.qml index 9c751f17..48790728 100644 --- a/qml/widgets/ProfileRow.qml +++ b/qml/widgets/ProfileRow.qml @@ -36,7 +36,7 @@ RowLayout { badgeContent: Opaque.Icon {// Profle Type id: profiletype source: tag == "v1-userPassword" ? gcd.assetPath + "core/lock-24px.webp" : gcd.assetPath + "core/lock_open-24px.webp" - height: Theme.badgeTextSize * gcd.themeScale + height: Theme.uiIconSizeS width: height iconColor: Theme.defaultButtonTextColor diff --git a/qml/widgets/ServerList.qml b/qml/widgets/ServerList.qml index d56561c9..fb555d12 100644 --- a/qml/widgets/ServerList.qml +++ b/qml/widgets/ServerList.qml @@ -104,7 +104,7 @@ ColumnLayout { badgeVisible: true badgeContent: Image { source: gcd.assetPath + "core/fontawesome/solid/plus.webp" - height: Theme.badgeTextSize * gcd.themeScale + height: Theme.uiIconSizeS width: height } badgeColor: Theme.defaultButtonColor diff --git a/qml/widgets/Statusbar.qml b/qml/widgets/Statusbar.qml index d1b60ed0..03ce203a 100644 --- a/qml/widgets/Statusbar.qml +++ b/qml/widgets/Statusbar.qml @@ -12,8 +12,8 @@ import "../const" Rectangle { id: statusbar - readonly property int openHeight: 25 - readonly property int hideHeight: 10 + readonly property int openHeight: Theme.uiIconSizeS + 2 * Theme.paddingMinimal + readonly property int hideHeight: Theme.paddingClickTarget property bool isHover: false @@ -27,9 +27,9 @@ Rectangle { opacity: 0 anchors.right: networkStatus.left anchors.verticalCenter: parent.verticalCenter - anchors.rightMargin: 5 * gcd.themeScale + anchors.rightMargin: Theme.paddingMinimal - font.pixelSize: Theme.statusTextSize * gcd.themeScale + font.pixelSize: Theme.statusTextSize } Opaque.Icon { @@ -37,9 +37,9 @@ Rectangle { opacity: 0 anchors.right: connectionStatus.left anchors.verticalCenter: parent.verticalCenter - anchors.rightMargin: 5 * gcd.themeScale - height: 18 - width: 18 + anchors.rightMargin: Theme.paddingMinimal + height: Theme.uiIconSizeS + width: Theme.uiIconSizeS } @@ -48,9 +48,9 @@ Rectangle { opacity: 0 anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - anchors.rightMargin: 10 * gcd.themeScale - height: 18 * gcd.themeScale - width: 18 * gcd.themeScale + anchors.rightMargin: Theme.paddingSmall + height: Theme.uiIconSizeS + width: Theme.uiIconSizeS } function changeStatus() { -- 2.25.1