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/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.qm b/i18n/translation_de.qm index 077e1a73..f5575a42 100644 Binary files a/i18n/translation_de.qm and b/i18n/translation_de.qm differ diff --git a/i18n/translation_de.ts b/i18n/translation_de.ts index 1c49f66a..3e8e1e77 100644 --- a/i18n/translation_de.ts +++ b/i18n/translation_de.ts @@ -31,69 +31,69 @@ 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,82 +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-label + + large text Groß - + + large-text-label + large text + + + + 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 @@ -703,8 +732,9 @@ defaultmäßige Textgröße (Skalierungsfaktor: - + small-text-label + small text Klein @@ -747,7 +777,7 @@ main - + new-connection-pane-title New Connection diff --git a/i18n/translation_en.ts b/i18n/translation_en.ts index 7606e16f..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... @@ -153,6 +153,17 @@ 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 @@ -257,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 @@ -329,7 +340,7 @@ Right-click to reset. Invite - + delete-btn Delete @@ -344,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 @@ -372,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 @@ -472,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 @@ -524,7 +535,7 @@ Right-click to reset. Unblock Peer - + delete-btn Delete @@ -565,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 @@ -680,7 +691,7 @@ Right-click to reset. ProfileList - + add-new-profile-btn Add new profile @@ -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 @@ -745,76 +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 @@ -825,7 +859,7 @@ Right-click to reset. Version %1 - + builddate %2 Built on: %2 Built on: %2 @@ -836,8 +870,9 @@ Right-click to reset. Default size text (scale factor: - + small-text-label + small text Small @@ -888,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 7d18891b..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,82 +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 @@ -703,8 +726,9 @@ Taille par défaut du texte (échelle: - + small-text-label + small text Petit @@ -747,7 +771,7 @@ main - + new-connection-pane-title New Connection diff --git a/i18n/translation_it.qm b/i18n/translation_it.qm index e23dfed4..4aa935c3 100644 Binary files a/i18n/translation_it.qm and b/i18n/translation_it.qm differ 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 2d52e119..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,82 +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 @@ -703,8 +726,9 @@ Texto tamanho padrão (fator de escala: - + small-text-label + small text Pequeno @@ -747,7 +771,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 ae63ff95..136e613a 160000 --- a/qml/opaque +++ b/qml/opaque @@ -1 +1 @@ -Subproject commit ae63ff95aff88938558ba7f2b3ec8152ab639e5a +Subproject commit 136e613ab596ae70edfa73fc6019f5dde44e0a08 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..e0094cb5 100644 --- a/qml/overlays/ListOverlay.qml +++ b/qml/overlays/ListOverlay.qml @@ -11,72 +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 + // 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 - anchors.left: parent.left - anchors.right: parent.right - anchors.margins: 10 + 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 { @@ -89,145 +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 - anchors.left: parent.left - anchors.right: parent.right - anchors.margins: 10 - - 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/AddPeerGroupPane.qml b/qml/panes/AddPeerGroupPane.qml index d561bf0a..fc9bf988 100644 --- a/qml/panes/AddPeerGroupPane.qml +++ b/qml/panes/AddPeerGroupPane.qml @@ -35,14 +35,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 @@ -145,7 +145,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") } @@ -154,7 +154,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..5627d3c4 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,6 @@ Opaque.SettingsList { // groupSettingsPane } Opaque.Setting { - property color backgroundColor: parent.color inline: true label: qsTr("server-info") field: Column { @@ -86,7 +84,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 +102,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..af0f6f81 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,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/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..b343fb06 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,6 @@ Opaque.Flickable { Opaque.Button { // ADD or SAVE button - height: Theme.primaryTextSize * 1.5 anchors.horizontalCenter: parent.horizontalCenter @@ -418,7 +416,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 +424,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..ba6e053c 100644 --- a/qml/panes/ProfileManagerPane.qml +++ b/qml/panes/ProfileManagerPane.qml @@ -22,31 +22,23 @@ 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 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") @@ -56,8 +48,6 @@ ColumnLayout { Opaque.Button { id: "button" - width: 100 * gcd.themeScale - height: Theme.primaryTextSize * gcd.themeScale //: Unlock text: qsTr("unlock") @@ -70,7 +60,7 @@ ColumnLayout { } } - Opaque.ScalingLabel { + Opaque.Label { id: error Layout.alignment: Qt.AlignHCenter color: Theme.textfieldErrorColor @@ -106,11 +96,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 +124,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..885f6600 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 = checked if (serverAddEditPane.server_available) { gcd.startServer(serverAddEditPane.server_name) } else { @@ -63,21 +63,15 @@ Opaque.SettingsList { // Add Profile Pane } } - - - - - - Opaque.Setting { label: qsTr("server-autostart") 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 = checked gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server) } } diff --git a/qml/panes/ServerInfoPane.qml b/qml/panes/ServerInfoPane.qml index 372ed12d..53bdeba5 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,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