WIP: new scaling system pass two #461

Draft
erinn wants to merge 5 commits from newzoompart2 into master
37 changed files with 1836 additions and 1673 deletions

View File

@ -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/

View File

@ -42,7 +42,7 @@ type GrandCentralDispatcher struct {
_ int `property:"torStatus"`
_ string `property:"os"`
_ bool `property:"firstTime"`
_ float32 `property:"themeScale,auto,changed"`
_ int `property:"scaleFactor,auto,changed"`
_ string `property:"theme,auto,changed"`
_ string `property:"locale,auto,changed"`
_ string `property:"version"`
@ -98,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"`
@ -106,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"`
@ -158,7 +158,7 @@ func (this *GrandCentralDispatcher) init() {
firstTime := false
this.GlobalSettings, firstTime = ReadGlobalSettings()
this.SetFirstTime(firstTime)
this.SetThemeScale(this.GlobalSettings.Zoom)
this.SetScaleFactor(this.GlobalSettings.Scale)
this.SetTheme(this.GlobalSettings.Theme)
this.SetExperimentsEnabled(this.GlobalSettings.ExperimentsEnabled)
this.SetExperiments(this.GlobalSettings.Experiments)
@ -454,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) {
@ -774,8 +774,8 @@ func (this *GrandCentralDispatcher) setLocaleHelper(locale string) {
this.QMLEngine.Retranslate()
}
func (this *GrandCentralDispatcher) themeScaleChanged(newThemeScale float32) {
this.GlobalSettings.Zoom = newThemeScale
func (this *GrandCentralDispatcher) scaleFactorChanged(newScale int) {
this.GlobalSettings.Scale = newScale
WriteGlobalSettings(this.GlobalSettings)
}

View File

@ -9,14 +9,13 @@ import (
"io/ioutil"
"os"
"path"
"runtime"
)
const GlobalSettingsFilename = "ui.globals"
const saltFile = "SALT"
type GlobalSettings struct {
Zoom float32
Scale int
Locale string
Theme string
PreviousPid int64
@ -26,7 +25,7 @@ type GlobalSettings struct {
}
var DefaultGlobalSettings = GlobalSettings{
Zoom: 1.9,
Scale: 2,
Locale: "en",
Theme: "light",
PreviousPid: -1,
@ -59,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()
@ -76,7 +72,7 @@ func ReadGlobalSettings() (*GlobalSettings, bool) {
return &settings, true //firstTime = true
}
log.Debugf("Settings: %v", settings)
log.Debugf("Settings: %#v", settings)
return &settings, false
}

Binary file not shown.

View File

@ -31,69 +31,69 @@
<context>
<name>AddPeerGroupPane</name>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="51"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="49"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="61"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="59"/>
<source>copy-btn</source>
<translation type="unfinished">Kopieren</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="63"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>add-peer-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>create-group-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>join-group-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="107"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="105"/>
<source>peer-address</source>
<extracomment>Address</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="119"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="117"/>
<source>peer-name</source>
<extracomment>Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="140"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="138"/>
<source>group-name</source>
<extracomment>Group Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="152"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="150"/>
<source>server</source>
<extracomment>Server</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="161"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="159"/>
<source>invitation</source>
<extracomment>Invitation</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="183"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="181"/>
<source>group-addr</source>
<extracomment>Address</extracomment>
<translation type="unfinished"></translation>
@ -102,18 +102,18 @@
<context>
<name>BulletinOverlay</name>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="215"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="213"/>
<source>new-bulletin-label</source>
<translation>Neue Meldung</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="227"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="225"/>
<source>post-new-bulletin-label</source>
<extracomment>Post a new Bulletin Post</extracomment>
<translation>Neue Meldung veröffentlichen</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="234"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="232"/>
<source>title-placeholder</source>
<extracomment>title place holder text</extracomment>
<translation>Titel...</translation>
@ -148,7 +148,7 @@
<translation type="obsolete">Adresse hier hinzufügen, um einen Kontakt aufzunehmen</translation>
</message>
<message>
<location filename="../qml/widgets/ContactList.qml" line="240"/>
<location filename="../qml/widgets/ContactList.qml" line="227"/>
<source>blocked</source>
<translation type="unfinished"></translation>
</message>
@ -156,65 +156,65 @@
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="45"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<source>server-label</source>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="50"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="68"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="49"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="67"/>
<source>copy-btn</source>
<translation>Kopieren</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="72"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="71"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="62"/>
<source>invitation-label</source>
<translation>Einladung</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="82"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="80"/>
<source>server-info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-synced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-not-synced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="124"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="122"/>
<source>view-server-info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="28"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="27"/>
<source>group-name-label</source>
<translation>Gruppenname</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="32"/>
<source>save-btn</source>
<translation>Speichern</translation>
</message>
@ -228,7 +228,7 @@
<translation type="vanished">Einladen</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="144"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="142"/>
<source>delete-btn</source>
<translation>Löschen</translation>
</message>
@ -251,18 +251,18 @@
<translation type="vanished">noch zu erledigen</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="33"/>
<location filename="../qml/overlays/ListOverlay.qml" line="37"/>
<source>search-list</source>
<extracomment>ex: &quot;Find...&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="63"/>
<location filename="../qml/overlays/ListOverlay.qml" line="68"/>
<source>peer-not-online</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="212"/>
<location filename="../qml/overlays/ListOverlay.qml" line="217"/>
<source>add-list-item-btn</source>
<translation type="unfinished"></translation>
</message>
@ -279,24 +279,24 @@
<context>
<name>Message</name>
<message>
<location filename="../qml/widgets/Message.qml" line="67"/>
<location filename="../qml/widgets/Message.qml" line="68"/>
<source>dm-tooltip</source>
<extracomment>Click to DM</extracomment>
<translation>Klicken, um DM zu senden</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Nachricht konnte nicht gesendet werden</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>acknowledged-label</source>
<translation>bestätigt</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>pending-label</source>
<translation>Bestätigung ausstehend</translation>
</message>
@ -379,55 +379,55 @@
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="33"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="31"/>
<source>address-label</source>
<translation>Adresse</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="36"/>
<source>copy-btn</source>
<translation>Kopieren</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="40"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="54"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="52"/>
<source>display-name-label</source>
<translation>Angezeigter Name</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="58"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="56"/>
<source>save-btn</source>
<translation>speichern</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="109"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="97"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="107"/>
<source>save-peer-history</source>
<extracomment>Save Peer History</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="100"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="98"/>
<source>save-peer-history-description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="108"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="106"/>
<source>dont-save-peer-history</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="130"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="128"/>
<source>delete-btn</source>
<translation>löschen</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="75"/>
<source>block-btn</source>
<translation type="unfinished"></translation>
</message>
@ -435,30 +435,30 @@
<context>
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="179"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="178"/>
<source>copy-btn</source>
<translation type="unfinished">Kopieren</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="182"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">in die Zwischenablage kopiert</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="274"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="285"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="284"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="210"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="209"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation type="unfinished"></translation>
@ -475,84 +475,84 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="168"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="167"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="259"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="258"/>
<source>your-display-name</source>
<extracomment>Your Display Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="303"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="302"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="321"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="320"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="339"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="338"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-empty</source>
<extracomment>Passwords do not match</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>create-profile-btn</source>
<extracomment>Create || Save</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>save-profile-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-match</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="362"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="361"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="418"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="416"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="437"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="450"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="435"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="448"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="461"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="459"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="466"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="464"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation type="unfinished"></translation>
@ -561,7 +561,7 @@
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="114"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation type="unfinished"></translation>
</message>
@ -569,36 +569,36 @@
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="34"/>
<source>enter-profile-password</source>
<extracomment>Enter a password to view your profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="44"/>
<source>password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="78"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="68"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="119"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="108"/>
<source>your-profiles</source>
<extracomment>Your Profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="148"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="136"/>
<source>your-servers</source>
<extracomment>Your Profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="63"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -617,82 +617,111 @@
<translation type="vanished">Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="33"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>setting-language</source>
<extracomment>Language</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="44"/>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<source>locale-en</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="45"/>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<source>locale-fr</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<location filename="../qml/panes/SettingsPane.qml" line="51"/>
<source>locale-pt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<source>locale-de</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<source>locale-es</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<location filename="../qml/panes/SettingsPane.qml" line="50"/>
<source>locale-it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="67"/>
<location filename="../qml/panes/SettingsPane.qml" line="69"/>
<source>setting-interface-zoom</source>
<extracomment>Interface Zoom</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="99"/>
<source>medium-text-label</source>
<extracomment>medium text</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="97"/>
<source>large-text-label</source>
<source></source>
<extracomment>large text</extracomment>
<translation>Groß</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="105"/>
<location filename="../qml/panes/SettingsPane.qml" line="104"/>
<source>large-text-label</source>
<extracomment>large text</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="113"/>
<source>setting-theme</source>
<extracomment>Theme</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="114"/>
<location filename="../qml/panes/SettingsPane.qml" line="122"/>
<source>theme-light</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="115"/>
<location filename="../qml/panes/SettingsPane.qml" line="123"/>
<source>theme-dark</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="134"/>
<location filename="../qml/panes/SettingsPane.qml" line="140"/>
<source>experiments-enabled</source>
<extracomment>Theme</extracomment>
<extracomment>Enable experiments</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
<location filename="../qml/panes/SettingsPane.qml" line="161"/>
<source>Text magnification reference</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="218"/>
<source>Acknowledgements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="223"/>
<source>extra special thanks!!!!</source>
<extracomment>don&apos;t translate yet... we should come up with something to write here as a team&lt;3</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="238"/>
<source>version %1 tor %2</source>
<extracomment>Version %1 with tor %2</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="171"/>
<location filename="../qml/panes/SettingsPane.qml" line="246"/>
<source>builddate %2</source>
<extracomment>Built on: %2</extracomment>
<translation type="unfinished"></translation>
@ -703,8 +732,9 @@
<translation type="vanished">defaultmäßige Textgröße (Skalierungsfaktor:</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="74"/>
<location filename="../qml/panes/SettingsPane.qml" line="94"/>
<source>small-text-label</source>
<extracomment>small text</extracomment>
<translation>Klein</translation>
</message>
</context>
@ -747,7 +777,7 @@
<context>
<name>main</name>
<message>
<location filename="../qml/main.qml" line="265"/>
<location filename="../qml/main.qml" line="282"/>
<source>new-connection-pane-title</source>
<extracomment>New Connection</extracomment>
<translation type="unfinished"></translation>

View File

@ -31,69 +31,69 @@
<context>
<name>AddPeerGroupPane</name>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="51"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="49"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation>Send this address to peers you want to connect with</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="61"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="59"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="63"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copied to Clipboard</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>add-peer-tab</source>
<translation>Add a peer</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>create-group-tab</source>
<translation>Create a group</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>join-group-tab</source>
<translation>Join a group</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="107"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="105"/>
<source>peer-address</source>
<extracomment>Address</extracomment>
<translation>Address</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="119"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="117"/>
<source>peer-name</source>
<extracomment>Name</extracomment>
<translation>Name</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="140"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="138"/>
<source>group-name</source>
<extracomment>Group Name</extracomment>
<translation>Group name</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="152"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="150"/>
<source>server</source>
<extracomment>Server</extracomment>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="161"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="159"/>
<source>invitation</source>
<extracomment>Invitation</extracomment>
<translation>Invitation</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="183"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="181"/>
<source>group-addr</source>
<extracomment>Address</extracomment>
<translation>Address</translation>
@ -115,18 +115,18 @@
<context>
<name>BulletinOverlay</name>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="215"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="213"/>
<source>new-bulletin-label</source>
<translation>New Bulletin</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="227"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="225"/>
<source>post-new-bulletin-label</source>
<extracomment>Post a new Bulletin Post</extracomment>
<translation>Post new bulletin</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="234"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="232"/>
<source>title-placeholder</source>
<extracomment>title place holder text</extracomment>
<translation>title...</translation>
@ -153,6 +153,17 @@
<translation>Message history is enabled.</translation>
</message>
</context>
<context>
<name>Collapser/Expander Widget</name>
<message>
<source>collapser-show</source>
<translation type="vanished">Show</translation>
</message>
<message>
<source>collapser-hide</source>
<translation type="vanished">Hide</translation>
</message>
</context>
<context>
<name>ContactList</name>
<message>
@ -161,7 +172,7 @@
<translation type="vanished">... paste an address here to add a contact...</translation>
</message>
<message>
<location filename="../qml/widgets/ContactList.qml" line="240"/>
<location filename="../qml/widgets/ContactList.qml" line="227"/>
<source>blocked</source>
<translation>Blocked</translation>
</message>
@ -257,65 +268,65 @@ Right-click to reset.</translation>
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="45"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<source>server-label</source>
<translation>Server</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="50"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="68"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="49"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="67"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="72"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="71"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copied to Clipboard</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="62"/>
<source>invitation-label</source>
<translation>Invitation</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="82"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="80"/>
<source>server-info</source>
<translation>Server Information</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-connected</source>
<translation>Server Connected</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-disconnected</source>
<translation>Server Disconnected</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-synced</source>
<translation>Synced</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-not-synced</source>
<translation>Out of Sync</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="124"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="122"/>
<source>view-server-info</source>
<translation>Server Info</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="28"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="27"/>
<source>group-name-label</source>
<translation>Group Name</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="32"/>
<source>save-btn</source>
<translation>Save</translation>
</message>
@ -329,7 +340,7 @@ Right-click to reset.</translation>
<translation type="vanished">Invite</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="144"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="142"/>
<source>delete-btn</source>
<translation>Delete</translation>
</message>
@ -344,18 +355,18 @@ Right-click to reset.</translation>
<context>
<name>ListOverlay</name>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="33"/>
<location filename="../qml/overlays/ListOverlay.qml" line="37"/>
<source>search-list</source>
<extracomment>ex: &quot;Find...&quot;</extracomment>
<translation>Search List</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="63"/>
<location filename="../qml/overlays/ListOverlay.qml" line="68"/>
<source>peer-not-online</source>
<translation>Peer is Offline. Applications cannot be used right now.</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="212"/>
<location filename="../qml/overlays/ListOverlay.qml" line="217"/>
<source>add-list-item-btn</source>
<translation>Add Item</translation>
</message>
@ -372,24 +383,24 @@ Right-click to reset.</translation>
<context>
<name>Message</name>
<message>
<location filename="../qml/widgets/Message.qml" line="67"/>
<location filename="../qml/widgets/Message.qml" line="68"/>
<source>dm-tooltip</source>
<extracomment>Click to DM</extracomment>
<translation>Click to DM</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Could not send this message</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>acknowledged-label</source>
<translation>Acknowledged</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>pending-label</source>
<translation>Pending</translation>
</message>
@ -472,50 +483,50 @@ Right-click to reset.</translation>
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="33"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="31"/>
<source>address-label</source>
<translation>Address</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="36"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="40"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copied to Clipboard</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="54"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="52"/>
<source>display-name-label</source>
<translation>Display Name</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="58"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="56"/>
<source>save-btn</source>
<translation>Save</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="75"/>
<source>block-btn</source>
<translation>Block Peer</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="109"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="97"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="107"/>
<source>save-peer-history</source>
<extracomment>Save Peer History</extracomment>
<translation>Save Peer History</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="100"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="98"/>
<source>save-peer-history-description</source>
<translation>Determines whether or not to delete any history associated with the peer.</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="108"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="106"/>
<source>dont-save-peer-history</source>
<translation>Delete Peer History</translation>
</message>
@ -524,7 +535,7 @@ Right-click to reset.</translation>
<translation type="vanished">Unblock Peer</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="130"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="128"/>
<source>delete-btn</source>
<translation>Delete</translation>
</message>
@ -565,113 +576,113 @@ Right-click to reset.</translation>
<translation type="vanished">Send this address to peers you want to connect with</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="179"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="178"/>
<source>copy-btn</source>
<translation>Copy</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="182"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copied to Clipboard</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="274"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation>Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="285"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="284"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation>Unencrypted (No password)</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="210"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="209"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation>Not using a password on this account means that all data stored locally will not be encrypted</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="168"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="167"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation>Send this address to peers you want to connect with</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="259"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="258"/>
<source>your-display-name</source>
<extracomment>Your Display Name</extracomment>
<translation>Your Display Name</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="303"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="302"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation>Current Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="321"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="320"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation>Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="339"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="338"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation>Reenter password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-empty</source>
<extracomment>Passwords do not match</extracomment>
<translation>Password cannot be empty</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>create-profile-btn</source>
<extracomment>Create || Save</extracomment>
<translation>Create Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>save-profile-btn</source>
<translation>Save Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-match</source>
<translation>Passwords do not match</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="362"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="361"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation>Error changing password: Supplied password rejected</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="418"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="416"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation>Delete Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="437"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="450"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="435"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="448"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation>Type DELETE to confirm</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="461"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="459"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation>Really Delete Profile</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="466"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="464"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation>DELETE</translation>
@ -680,7 +691,7 @@ Right-click to reset.</translation>
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="114"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation>Add new profile</translation>
</message>
@ -688,36 +699,36 @@ Right-click to reset.</translation>
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="34"/>
<source>enter-profile-password</source>
<extracomment>Enter a password to view your profiles</extracomment>
<translation>Enter a password to view your profiles</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="44"/>
<source>password</source>
<translation>Password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="78"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="68"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation>0 profiles loaded with that password</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="119"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="108"/>
<source>your-profiles</source>
<extracomment>Your Profiles</extracomment>
<translation>Your Profiles</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="148"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="136"/>
<source>your-servers</source>
<extracomment>Your Profiles</extracomment>
<translation>Your Servers</translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="63"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation>Unlock</translation>
@ -745,76 +756,99 @@ Right-click to reset.</translation>
<translation type="vanished">Block Unknown Peers</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="33"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>setting-language</source>
<extracomment>Language</extracomment>
<translation>Language</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="44"/>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<source>locale-en</source>
<translation>English</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="45"/>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<source>locale-fr</source>
<translation>Frances</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<location filename="../qml/panes/SettingsPane.qml" line="51"/>
<source>locale-pt</source>
<translation>Portuguesa</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<source>locale-de</source>
<translation>Deutsche</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<source>locale-es</source>
<translation>Espanol</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<location filename="../qml/panes/SettingsPane.qml" line="50"/>
<source>locale-it</source>
<translation>Italiana</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="67"/>
<location filename="../qml/panes/SettingsPane.qml" line="69"/>
<source>setting-interface-zoom</source>
<extracomment>Interface Zoom</extracomment>
<translation>Zoom level</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="97"/>
<location filename="../qml/panes/SettingsPane.qml" line="99"/>
<source>medium-text-label</source>
<extracomment>medium text</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="104"/>
<source>large-text-label</source>
<extracomment>large text</extracomment>
<translation>Large</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="105"/>
<location filename="../qml/panes/SettingsPane.qml" line="113"/>
<source>setting-theme</source>
<extracomment>Theme</extracomment>
<translation>Theme</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="114"/>
<location filename="../qml/panes/SettingsPane.qml" line="122"/>
<source>theme-light</source>
<translation>Light</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="115"/>
<location filename="../qml/panes/SettingsPane.qml" line="123"/>
<source>theme-dark</source>
<translation>Dark</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="134"/>
<location filename="../qml/panes/SettingsPane.qml" line="140"/>
<source>experiments-enabled</source>
<extracomment>Theme</extracomment>
<extracomment>Enable experiments</extracomment>
<translation>Experiments enabled</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
<location filename="../qml/panes/SettingsPane.qml" line="161"/>
<source>Text magnification reference</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="218"/>
<source>Acknowledgements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="223"/>
<source>extra special thanks!!!!</source>
<extracomment>don&apos;t translate yet... we should come up with something to write here as a team&lt;3</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="238"/>
<source>version %1 tor %2</source>
<extracomment>Version %1 with tor %2</extracomment>
<translation>Version %1 with tor %2</translation>
@ -825,7 +859,7 @@ Right-click to reset.</translation>
<translation type="vanished">Version %1</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="171"/>
<location filename="../qml/panes/SettingsPane.qml" line="246"/>
<source>builddate %2</source>
<extracomment>Built on: %2</extracomment>
<translation>Built on: %2</translation>
@ -836,8 +870,9 @@ Right-click to reset.</translation>
<translation type="vanished">Default size text (scale factor:</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="74"/>
<location filename="../qml/panes/SettingsPane.qml" line="94"/>
<source>small-text-label</source>
<extracomment>small text</extracomment>
<translation>Small</translation>
</message>
</context>
@ -888,7 +923,7 @@ Right-click to reset.</translation>
<context>
<name>main</name>
<message>
<location filename="../qml/main.qml" line="265"/>
<location filename="../qml/main.qml" line="282"/>
<source>new-connection-pane-title</source>
<extracomment>New Connection</extracomment>
<translation>New Connection</translation>

View File

@ -621,6 +621,7 @@
</message>
<message>
<source>large-text-label</source>
<extracomment>large text</extracomment>
<translation>Grande</translation>
</message>
<message>
@ -638,7 +639,7 @@
</message>
<message>
<source>experiments-enabled</source>
<extracomment>Theme</extracomment>
<extracomment>Enable experiments</extracomment>
<translation>Experimentos habilitados</translation>
</message>
<message>
@ -661,6 +662,7 @@
</message>
<message>
<source>small-text-label</source>
<extracomment>small text</extracomment>
<translation>Pequeño</translation>
</message>
<message>
@ -671,6 +673,24 @@
<source>locale-it</source>
<translation>Italiano</translation>
</message>
<message>
<source>medium-text-label</source>
<extracomment>medium text</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Text magnification reference</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Acknowledgements</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>extra special thanks!!!!</source>
<extracomment>don&apos;t translate yet... we should come up with something to write here as a team&lt;3</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SplashPane</name>

View File

@ -31,69 +31,69 @@
<context>
<name>AddPeerGroupPane</name>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="51"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="49"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="61"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="59"/>
<source>copy-btn</source>
<translation type="unfinished">Copier</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="63"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">Copié dans le presse-papier</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>add-peer-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>create-group-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>join-group-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="107"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="105"/>
<source>peer-address</source>
<extracomment>Address</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="119"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="117"/>
<source>peer-name</source>
<extracomment>Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="140"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="138"/>
<source>group-name</source>
<extracomment>Group Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="152"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="150"/>
<source>server</source>
<extracomment>Server</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="161"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="159"/>
<source>invitation</source>
<extracomment>Invitation</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="183"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="181"/>
<source>group-addr</source>
<extracomment>Address</extracomment>
<translation type="unfinished"></translation>
@ -102,18 +102,18 @@
<context>
<name>BulletinOverlay</name>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="215"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="213"/>
<source>new-bulletin-label</source>
<translation>Nouveau bulletin</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="227"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="225"/>
<source>post-new-bulletin-label</source>
<extracomment>Post a new Bulletin Post</extracomment>
<translation>Envoyer un nouveau bulletin</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="234"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="232"/>
<source>title-placeholder</source>
<extracomment>title place holder text</extracomment>
<translation>titre...</translation>
@ -148,7 +148,7 @@
<translation type="obsolete">... coller une adresse ici pour ajouter un contact...</translation>
</message>
<message>
<location filename="../qml/widgets/ContactList.qml" line="240"/>
<location filename="../qml/widgets/ContactList.qml" line="227"/>
<source>blocked</source>
<translation type="unfinished"></translation>
</message>
@ -156,65 +156,65 @@
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="45"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<source>server-label</source>
<translation>Serveur</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="50"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="68"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="49"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="67"/>
<source>copy-btn</source>
<translation>Copier</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="72"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="71"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">Copié dans le presse-papier</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="62"/>
<source>invitation-label</source>
<translation>Invitation</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="82"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="80"/>
<source>server-info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-synced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-not-synced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="124"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="122"/>
<source>view-server-info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="28"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="27"/>
<source>group-name-label</source>
<translation>Nom du groupe</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="32"/>
<source>save-btn</source>
<translation>Sauvegarder</translation>
</message>
@ -228,7 +228,7 @@
<translation type="vanished">Invitation</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="144"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="142"/>
<source>delete-btn</source>
<translation>Effacer</translation>
</message>
@ -251,18 +251,18 @@
<translation type="vanished">A faire...</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="33"/>
<location filename="../qml/overlays/ListOverlay.qml" line="37"/>
<source>search-list</source>
<extracomment>ex: &quot;Find...&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="63"/>
<location filename="../qml/overlays/ListOverlay.qml" line="68"/>
<source>peer-not-online</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="212"/>
<location filename="../qml/overlays/ListOverlay.qml" line="217"/>
<source>add-list-item-btn</source>
<translation type="unfinished"></translation>
</message>
@ -279,24 +279,24 @@
<context>
<name>Message</name>
<message>
<location filename="../qml/widgets/Message.qml" line="67"/>
<location filename="../qml/widgets/Message.qml" line="68"/>
<source>dm-tooltip</source>
<extracomment>Click to DM</extracomment>
<translation>Envoyer un message privé</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Impossible d&apos;envoyer ce message</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>acknowledged-label</source>
<translation>Confirmé</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>pending-label</source>
<translation>En attente</translation>
</message>
@ -379,55 +379,55 @@
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="33"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="31"/>
<source>address-label</source>
<translation>Adresse</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="36"/>
<source>copy-btn</source>
<translation>Copier</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="40"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copié dans le presse-papier</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="54"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="52"/>
<source>display-name-label</source>
<translation>Pseudo</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="58"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="56"/>
<source>save-btn</source>
<translation>Sauvegarder</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="109"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="97"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="107"/>
<source>save-peer-history</source>
<extracomment>Save Peer History</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="100"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="98"/>
<source>save-peer-history-description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="108"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="106"/>
<source>dont-save-peer-history</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="130"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="128"/>
<source>delete-btn</source>
<translation>Effacer</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="75"/>
<source>block-btn</source>
<translation type="unfinished"></translation>
</message>
@ -435,30 +435,30 @@
<context>
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="179"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="178"/>
<source>copy-btn</source>
<translation type="unfinished">Copier</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="182"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">Copié dans le presse-papier</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="274"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="285"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="284"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="210"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="209"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation type="unfinished"></translation>
@ -475,84 +475,84 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="168"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="167"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="259"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="258"/>
<source>your-display-name</source>
<extracomment>Your Display Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="303"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="302"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="321"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="320"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="339"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="338"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-empty</source>
<extracomment>Passwords do not match</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>create-profile-btn</source>
<extracomment>Create || Save</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>save-profile-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-match</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="362"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="361"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="418"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="416"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="437"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="450"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="435"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="448"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="461"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="459"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="466"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="464"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation type="unfinished"></translation>
@ -561,7 +561,7 @@
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="114"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation type="unfinished"></translation>
</message>
@ -569,36 +569,36 @@
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="34"/>
<source>enter-profile-password</source>
<extracomment>Enter a password to view your profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="44"/>
<source>password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="78"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="68"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="119"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="108"/>
<source>your-profiles</source>
<extracomment>Your Profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="148"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="136"/>
<source>your-servers</source>
<extracomment>Your Profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="63"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -617,82 +617,105 @@
<translation type="vanished">Interface zoom (essentiellement la taille du texte et des composants de l&apos;interface)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="33"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>setting-language</source>
<extracomment>Language</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="44"/>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<source>locale-en</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="45"/>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<source>locale-fr</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<location filename="../qml/panes/SettingsPane.qml" line="51"/>
<source>locale-pt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<source>locale-de</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<source>locale-es</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<location filename="../qml/panes/SettingsPane.qml" line="50"/>
<source>locale-it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="67"/>
<location filename="../qml/panes/SettingsPane.qml" line="69"/>
<source>setting-interface-zoom</source>
<extracomment>Interface Zoom</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="97"/>
<location filename="../qml/panes/SettingsPane.qml" line="99"/>
<source>medium-text-label</source>
<extracomment>medium text</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="104"/>
<source>large-text-label</source>
<extracomment>large text</extracomment>
<translation type="unfinished">Large</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="105"/>
<location filename="../qml/panes/SettingsPane.qml" line="113"/>
<source>setting-theme</source>
<extracomment>Theme</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="114"/>
<location filename="../qml/panes/SettingsPane.qml" line="122"/>
<source>theme-light</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="115"/>
<location filename="../qml/panes/SettingsPane.qml" line="123"/>
<source>theme-dark</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="134"/>
<location filename="../qml/panes/SettingsPane.qml" line="140"/>
<source>experiments-enabled</source>
<extracomment>Theme</extracomment>
<extracomment>Enable experiments</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
<location filename="../qml/panes/SettingsPane.qml" line="161"/>
<source>Text magnification reference</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="218"/>
<source>Acknowledgements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="223"/>
<source>extra special thanks!!!!</source>
<extracomment>don&apos;t translate yet... we should come up with something to write here as a team&lt;3</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="238"/>
<source>version %1 tor %2</source>
<extracomment>Version %1 with tor %2</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="171"/>
<location filename="../qml/panes/SettingsPane.qml" line="246"/>
<source>builddate %2</source>
<extracomment>Built on: %2</extracomment>
<translation type="unfinished"></translation>
@ -703,8 +726,9 @@
<translation type="vanished">Taille par défaut du texte (échelle:</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="74"/>
<location filename="../qml/panes/SettingsPane.qml" line="94"/>
<source>small-text-label</source>
<extracomment>small text</extracomment>
<translation>Petit</translation>
</message>
</context>
@ -747,7 +771,7 @@
<context>
<name>main</name>
<message>
<location filename="../qml/main.qml" line="265"/>
<location filename="../qml/main.qml" line="282"/>
<source>new-connection-pane-title</source>
<extracomment>New Connection</extracomment>
<translation type="unfinished"></translation>

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -31,69 +31,69 @@
<context>
<name>AddPeerGroupPane</name>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="51"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="49"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="61"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="59"/>
<source>copy-btn</source>
<translation type="unfinished">Copiar</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="65"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="63"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">Copiado</translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>add-peer-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>create-group-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="81"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="79"/>
<source>join-group-tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="107"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="105"/>
<source>peer-address</source>
<extracomment>Address</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="119"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="117"/>
<source>peer-name</source>
<extracomment>Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="140"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="138"/>
<source>group-name</source>
<extracomment>Group Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="152"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="150"/>
<source>server</source>
<extracomment>Server</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="161"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="159"/>
<source>invitation</source>
<extracomment>Invitation</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="183"/>
<location filename="../qml/panes/AddPeerGroupPane.qml" line="181"/>
<source>group-addr</source>
<extracomment>Address</extracomment>
<translation type="unfinished"></translation>
@ -102,18 +102,18 @@
<context>
<name>BulletinOverlay</name>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="215"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="213"/>
<source>new-bulletin-label</source>
<translation>Novo Boletim</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="227"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="225"/>
<source>post-new-bulletin-label</source>
<extracomment>Post a new Bulletin Post</extracomment>
<translation>Postar novo boletim</translation>
</message>
<message>
<location filename="../qml/overlays/BulletinOverlay.qml" line="234"/>
<location filename="../qml/overlays/BulletinOverlay.qml" line="232"/>
<source>title-placeholder</source>
<extracomment>title place holder text</extracomment>
<translation>título</translation>
@ -148,7 +148,7 @@
<translation type="obsolete"> cole um endereço aqui para adicionar um contato</translation>
</message>
<message>
<location filename="../qml/widgets/ContactList.qml" line="240"/>
<location filename="../qml/widgets/ContactList.qml" line="227"/>
<source>blocked</source>
<translation type="unfinished"></translation>
</message>
@ -156,65 +156,65 @@
<context>
<name>GroupSettingsPane</name>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="45"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="44"/>
<source>server-label</source>
<translation>Servidor</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="50"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="68"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="49"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="67"/>
<source>copy-btn</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="54"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="72"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="53"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="71"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">Copiado</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="63"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="62"/>
<source>invitation-label</source>
<translation>Convite</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="82"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="80"/>
<source>server-info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-connected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="90"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="88"/>
<source>server-connectivity-disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-synced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="108"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="106"/>
<source>server-not-synced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="124"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="122"/>
<source>view-server-info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="28"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="27"/>
<source>group-name-label</source>
<translation>Nome do Grupo</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="33"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="32"/>
<source>save-btn</source>
<translation>Salvar</translation>
</message>
@ -228,7 +228,7 @@
<translation type="vanished">Convidar</translation>
</message>
<message>
<location filename="../qml/panes/GroupSettingsPane.qml" line="144"/>
<location filename="../qml/panes/GroupSettingsPane.qml" line="142"/>
<source>delete-btn</source>
<translation>Deletar</translation>
</message>
@ -251,18 +251,18 @@
<translation type="vanished">Afazer</translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="33"/>
<location filename="../qml/overlays/ListOverlay.qml" line="37"/>
<source>search-list</source>
<extracomment>ex: &quot;Find...&quot;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="63"/>
<location filename="../qml/overlays/ListOverlay.qml" line="68"/>
<source>peer-not-online</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/overlays/ListOverlay.qml" line="212"/>
<location filename="../qml/overlays/ListOverlay.qml" line="217"/>
<source>add-list-item-btn</source>
<translation type="unfinished"></translation>
</message>
@ -279,24 +279,24 @@
<context>
<name>Message</name>
<message>
<location filename="../qml/widgets/Message.qml" line="67"/>
<location filename="../qml/widgets/Message.qml" line="68"/>
<source>dm-tooltip</source>
<extracomment>Click to DM</extracomment>
<translation>Clique para DM</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>could-not-send-msg-error</source>
<extracomment>Could not send this message</extracomment>
<translation>Não deu para enviar esta mensagem</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>acknowledged-label</source>
<translation>Confirmada</translation>
</message>
<message>
<location filename="../qml/widgets/Message.qml" line="189"/>
<location filename="../qml/widgets/Message.qml" line="186"/>
<source>pending-label</source>
<translation>Pendente</translation>
</message>
@ -379,55 +379,55 @@
<context>
<name>PeerSettingsPane</name>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="33"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="31"/>
<source>address-label</source>
<translation>Endereço</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="38"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="36"/>
<source>copy-btn</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="42"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="40"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation>Copiado</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="54"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="52"/>
<source>display-name-label</source>
<translation>Nome de Exibição</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="58"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="56"/>
<source>save-btn</source>
<translation>Salvar</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="99"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="109"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="97"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="107"/>
<source>save-peer-history</source>
<extracomment>Save Peer History</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="100"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="98"/>
<source>save-peer-history-description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="108"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="106"/>
<source>dont-save-peer-history</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="130"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="128"/>
<source>delete-btn</source>
<translation>Deletar</translation>
</message>
<message>
<location filename="../qml/panes/PeerSettingsPane.qml" line="77"/>
<location filename="../qml/panes/PeerSettingsPane.qml" line="75"/>
<source>block-btn</source>
<translation type="unfinished"></translation>
</message>
@ -435,30 +435,30 @@
<context>
<name>ProfileAddEditPane</name>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="179"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="178"/>
<source>copy-btn</source>
<translation type="unfinished">Copiar</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="183"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="182"/>
<source>copied-to-clipboard-notification</source>
<extracomment>notification: copied to clipboard</extracomment>
<translation type="unfinished">Copiado</translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="275"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="274"/>
<source>radio-use-password</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="285"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="284"/>
<source>radio-no-password</source>
<extracomment>Unencrypted (No password)</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="210"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="209"/>
<source>no-password-warning</source>
<extracomment>Not using a password on this account means that all data stored locally will not be encrypted</extracomment>
<translation type="unfinished"></translation>
@ -475,84 +475,84 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="168"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="167"/>
<source>profile-oniblon-label</source>
<extracomment>Send this address to peers you want to connect with</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="259"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="258"/>
<source>your-display-name</source>
<extracomment>Your Display Name</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="303"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="302"/>
<source>current-password-label</source>
<extracomment>Current Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="321"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="320"/>
<source>password1-label</source>
<extracomment>Password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="339"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="338"/>
<source>password2-label</source>
<extracomment>Reenter password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-empty</source>
<extracomment>Passwords do not match</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>create-profile-btn</source>
<extracomment>Create || Save</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="374"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="372"/>
<source>save-profile-btn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="351"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="350"/>
<source>password-error-match</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="362"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="361"/>
<source>password-change-error</source>
<extracomment>Error changing password: Supplied password rejected</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="418"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="416"/>
<source>delete-profile-btn</source>
<extracomment>Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="437"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="450"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="435"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="448"/>
<source>delete-confirm-label</source>
<extracomment>Type DELETE to confirm</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="461"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="459"/>
<source>delete-profile-confirm-btn</source>
<extracomment>Really Delete Profile</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="466"/>
<location filename="../qml/panes/ProfileAddEditPane.qml" line="464"/>
<source>delete-confirm-text</source>
<extracomment>DELETE</extracomment>
<translation type="unfinished"></translation>
@ -561,7 +561,7 @@
<context>
<name>ProfileList</name>
<message>
<location filename="../qml/widgets/ProfileList.qml" line="114"/>
<location filename="../qml/widgets/ProfileList.qml" line="106"/>
<source>add-new-profile-btn</source>
<translation type="unfinished"></translation>
</message>
@ -569,36 +569,36 @@
<context>
<name>ProfileManagerPane</name>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="36"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="34"/>
<source>enter-profile-password</source>
<extracomment>Enter a password to view your profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="52"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="44"/>
<source>password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="78"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="68"/>
<source>error-0-profiles-loaded-for-password</source>
<extracomment>0 profiles loaded with that password</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="119"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="108"/>
<source>your-profiles</source>
<extracomment>Your Profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="148"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="136"/>
<source>your-servers</source>
<extracomment>Your Profiles</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/ProfileManagerPane.qml" line="63"/>
<location filename="../qml/panes/ProfileManagerPane.qml" line="53"/>
<source>unlock</source>
<extracomment>Unlock</extracomment>
<translation type="unfinished"></translation>
@ -617,82 +617,105 @@
<translation type="vanished">Zoom da interface (afeta principalmente tamanho de texto e botões)</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="33"/>
<location filename="../qml/panes/SettingsPane.qml" line="35"/>
<source>setting-language</source>
<extracomment>Language</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="44"/>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<source>locale-en</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="45"/>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<source>locale-fr</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<location filename="../qml/panes/SettingsPane.qml" line="51"/>
<source>locale-pt</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="47"/>
<location filename="../qml/panes/SettingsPane.qml" line="49"/>
<source>locale-de</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="46"/>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<source>locale-es</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="48"/>
<location filename="../qml/panes/SettingsPane.qml" line="50"/>
<source>locale-it</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="67"/>
<location filename="../qml/panes/SettingsPane.qml" line="69"/>
<source>setting-interface-zoom</source>
<extracomment>Interface Zoom</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="97"/>
<location filename="../qml/panes/SettingsPane.qml" line="99"/>
<source>medium-text-label</source>
<extracomment>medium text</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="104"/>
<source>large-text-label</source>
<extracomment>large text</extracomment>
<translation>Grande</translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="105"/>
<location filename="../qml/panes/SettingsPane.qml" line="113"/>
<source>setting-theme</source>
<extracomment>Theme</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="114"/>
<location filename="../qml/panes/SettingsPane.qml" line="122"/>
<source>theme-light</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="115"/>
<location filename="../qml/panes/SettingsPane.qml" line="123"/>
<source>theme-dark</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="134"/>
<location filename="../qml/panes/SettingsPane.qml" line="140"/>
<source>experiments-enabled</source>
<extracomment>Theme</extracomment>
<extracomment>Enable experiments</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
<location filename="../qml/panes/SettingsPane.qml" line="161"/>
<source>Text magnification reference</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="218"/>
<source>Acknowledgements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="223"/>
<source>extra special thanks!!!!</source>
<extracomment>don&apos;t translate yet... we should come up with something to write here as a team&lt;3</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="238"/>
<source>version %1 tor %2</source>
<extracomment>Version %1 with tor %2</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="171"/>
<location filename="../qml/panes/SettingsPane.qml" line="246"/>
<source>builddate %2</source>
<extracomment>Built on: %2</extracomment>
<translation type="unfinished"></translation>
@ -703,8 +726,9 @@
<translation type="vanished">Texto tamanho padrão (fator de escala: </translation>
</message>
<message>
<location filename="../qml/panes/SettingsPane.qml" line="74"/>
<location filename="../qml/panes/SettingsPane.qml" line="94"/>
<source>small-text-label</source>
<extracomment>small text</extracomment>
<translation>Pequeno</translation>
</message>
</context>
@ -747,7 +771,7 @@
<context>
<name>main</name>
<message>
<location filename="../qml/main.qml" line="265"/>
<location filename="../qml/main.qml" line="282"/>
<source>new-connection-pane-title</source>
<extracomment>New Connection</extracomment>
<translation type="unfinished"></translation>

View File

@ -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"
}
@ -40,17 +40,17 @@ ApplicationWindow {
retText = retText.replace(/\n/g,"<br/>").replace(/\s\s/g, "&nbsp;&nbsp;")
// 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 {
@ -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,17 +189,16 @@ 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
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
}
@ -204,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
@ -230,7 +232,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
@ -238,21 +243,32 @@ ApplicationWindow {
Layout.fillHeight: true
OverlayPane { // messagePane
anchors.fill: parent
anchors.topMargin: 10// * gcd.themeScale
anchors.topMargin: Theme.paddingSmall
}
}
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 +283,6 @@ ApplicationWindow {
addPeerGroupPaneInstance.reset()
}
}
onWidthChanged: {toolbar.titleWidth = width}
}
}
}
@ -384,19 +398,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"
}
}

@ -1 +1 @@
Subproject commit ae63ff95aff88938558ba7f2b3ec8152ab639e5a
Subproject commit 10123e56a6a6d251c0ff707e793de857250d7ad4

View File

@ -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

View File

@ -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
}
}
}

View File

@ -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: '<b>' + Utils.htmlEscaped(title) + '</b> by ' + displayName + "<br/>" + 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: '<b>' + Utils.htmlEscaped(title) + '</b> by ' + displayName + "<br/>" + 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 = ""
}
}
}

View File

@ -27,22 +27,24 @@ 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.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
@ -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.ScalingLabel {
//: 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.ScalingLabel {
//: 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<servers.length;i++) {
cbServerList.append( {"text": servers[i], "value": servers[i]});
}
}
}
}

View File

@ -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
}

View File

@ -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
}
}

View File

@ -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,16 +78,15 @@ Opaque.SettingsList { // settingsPane
field: Opaque.ToggleSwitch {
anchors.right: parent.right
isToggled: root.authorization == Const.auth_blocked
onToggled: function() {
if (root.authorization == Const.auth_blocked) {
checked: root.authorization == Const.auth_blocked
onCheckedChanged: function() {
if (!checked) {
root.authorization = Const.auth_unknown
gcd.setPeerAuthorization(txtOnion.text, Const.auth_unknown)
} else {
root.authorization = Const.auth_blocked
gcd.setPeerAuthorization(txtOnion.text, Const.auth_blocked)
}
isToggled = root.authorization == Const.auth_blocked
}
}
}

View File

@ -100,12 +100,11 @@ Opaque.Flickable {
id: leftContents
anchors.horizontalCenter: parent.horizontalCenter
Layout.alignment : Qt.AlignHCenter + Qt.AlignTop
width: 400 * gcd.themeScale
spacing: 10 * gcd.themeScale
spacing: Theme.paddingSmall
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")
@ -114,7 +113,7 @@ Opaque.Flickable {
// spacing
Rectangle {
height: 30 * gcd.themeScale
height: Theme.paddingSmall
width: 100
color: Theme.backgroundPaneColor
}
@ -122,9 +121,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,33 +134,33 @@ 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
}
// spacing
Rectangle {
visible: mode == mode_edit
height: 10 * gcd.themeScale
height: Theme.paddingSmall
width: 100
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")
@ -174,7 +172,7 @@ Opaque.Flickable {
visible: mode == mode_edit
readOnly: true
width: leftCol.width - (40*gcd.themeScale)
width: leftCol.width - (2 * Theme.paddingStandard)
button_text: qsTr("copy-btn")
dropShadowColor: Theme.dropShadowPaneColor
@ -189,7 +187,7 @@ Opaque.Flickable {
// spacing
Rectangle {
visible: radioNoPassword.checked
height: 30 * gcd.themeScale
height: Theme.paddingSmall
width: 100
color: Theme.backgroundPaneColor
}
@ -200,10 +198,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
@ -214,7 +212,7 @@ Opaque.Flickable {
// spacing
Rectangle {
height: 30 * gcd.themeScale
height: Theme.paddingSmall
width: 100
color: Theme.backgroundPaneColor
@ -231,7 +229,7 @@ Opaque.Flickable {
Rectangle {
id: rightCol
color: Theme.backgroundPaneColor
anchors.topMargin: 80 * gcd.themeScale
anchors.topMargin: Theme.paddingLarge
height: rightContents.height
implicitHeight: height
Layout.fillWidth: true
@ -245,14 +243,14 @@ Opaque.Flickable {
anchors.horizontalCenter: parent.horizontalCenter
Layout.alignment : Qt.AlignHCenter + Qt.AlignTop
width: 400 * gcd.themeScale
spacing: 40 * gcd.themeScale
spacing: Theme.paddingSmall
padding: Theme.paddingStandard
Opaque.UnderlineTextField {
id: txtProfileName
backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale)
width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter
//: Your Display Name
@ -263,7 +261,7 @@ Opaque.Flickable {
RowLayout {
visible: (mode == mode_add) || (tag == "v1-defaultPassword")
width: parent.width - (40*gcd.themeScale)
width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter
//id: radioButtons
@ -296,7 +294,7 @@ Opaque.Flickable {
backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale)
width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter
//: Current Password
@ -312,7 +310,7 @@ Opaque.Flickable {
backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale)
width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter
echoMode: TextInput.Password
@ -332,7 +330,7 @@ Opaque.Flickable {
backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale)
width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter
//: Reenter password
@ -342,10 +340,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 +351,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 +364,6 @@ Opaque.Flickable {
Opaque.Button { // ADD or SAVE button
height: Theme.primaryTextSize * 1.5
anchors.horizontalCenter: parent.horizontalCenter
@ -412,13 +409,13 @@ Opaque.Flickable {
Opaque.Button {
anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale
anchors.rightMargin: Theme.paddingStandard
//: Delete Profile
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,12 +423,12 @@ Opaque.Flickable {
}
}
Opaque.ScalingLabel {
Opaque.Label {
id: deleteConfirmLabel
size: Theme.secondaryTextSize
size: Theme.textSmallPt
anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale
anchors.rightMargin: Theme.paddingStandard
//: Type DELETE to confirm
text: qsTr("delete-confirm-label")+ ":"
@ -443,9 +440,9 @@ Opaque.Flickable {
visible: deleting
backgroundColor: Theme.backgroundPaneColor
width: 300 * gcd.themeScale
width: parent.width - (2 * Theme.paddingStandard)
anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale
anchors.rightMargin: Theme.paddingStandard
placeholderText: qsTr("delete-confirm-label")
}
@ -455,7 +452,7 @@ Opaque.Flickable {
height: Theme.primaryTextSize * 1.5
anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale
anchors.rightMargin: Theme.paddingStandard
//: Really Delete Profile
text: qsTr("delete-profile-confirm-btn")
@ -478,7 +475,7 @@ Opaque.Flickable {
// spacing
Rectangle {
height: 30 * gcd.themeScale
height: Theme.paddingSmall
width: 100
color: Theme.backgroundPaneColor
}

View File

@ -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
@ -92,7 +82,7 @@ ColumnLayout {
// space
Rectangle {
width: 1
height: 20 * gcd.themeScale
height: Theme.paddingStandard
color: Theme.backgroundMainColor
}
@ -106,14 +96,13 @@ 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
anchors.leftMargin: Theme.paddingStandard
bottomPadding: Theme.paddingSmall
//: Your Profiles
text: qsTr("your-profiles")
@ -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")

View File

@ -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)
}
}

View File

@ -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<key_names.length;i++) {
// TODO: Actually do something with these keys
console.log("FOUND SERVER KEY " + key_names[i] + " " + keys[i]);
}
}
}

View File

@ -24,8 +24,10 @@ Opaque.SettingsList { // settingsPane
Column {
id: settings
anchors.horizontalCenter: parent.horizontalCenter
width:parent.width -20
parent:root.contentItem
width: parent.width - 20
parent: root.contentItem
padding: Theme.paddingStandard
spacing: Theme.paddingSmall
Opaque.Setting {
@ -66,37 +68,42 @@ Opaque.SettingsList { // settingsPane
//: Interface Zoom
label: qsTr("setting-interface-zoom")
field: Row {
field: Column {
spacing: 10
anchors.verticalCenter: parent.verticalCenter
Opaque.ScalingLabel {
text: qsTr("small-text-label")
size: 8
}
Opaque.Slider {
id: zoomSlider
from: 0.5
to: 4.0
value: gcd.themeScale
live: false
from: 0
to: 4
value: gcd.scaleFactor
snapMode: Slider.SnapAlways
stepSize: 0.25
stepSize: 1
onValueChanged: {
gcd.themeScale = zoomSlider.value
windowItem.width = windowItem.width
gcd.scaleFactor = zoomSlider.value
}
width: 200
}
Opaque.ScalingLabel {
anchors.verticalCenter: parent.verticalCenter
wrapMode: TextEdit.Wrap
text: qsTr("large-text-label")
size: 20
}
Row {
Opaque.Label {
//: small text
text: qsTr("small-text-label") + " "
size: Theme.textSmallPt
}
Opaque.Label {
//: medium text
text: qsTr("medium-text-label") + " "
size: Theme.textMediumPt
}
Opaque.Label {
//: large text
text: qsTr("large-text-label")
size: Theme.textLargePt
}
}
}
}
@ -127,57 +134,124 @@ Opaque.SettingsList { // settingsPane
}
}
// Experimental Gating
Opaque.Setting {
//: Enable experiments
label: qsTr("experiments-enabled")
Opaque.Setting {
//: Theme
label: qsTr("experiments-enabled")
field: Opaque.ToggleSwitch {
anchors.right: parent.right
id: experimentsEnabledToggle
checked: gcd.experimentsEnabled
onCheckedChanged: gcd.experimentsEnabled = checked
}
}
field: Opaque.ToggleSwitch {
anchors.right: parent.right
id: experimentsEnabledToggle
isToggled: gcd.experimentsEnabled
onToggled: function() {
console.log("experiments enabled: " + gcd.experimentsEnabled + " " + experimentsEnabledToggle.isToggled) ;
if (gcd.experimentsEnabled == false) {
gcd.experimentsEnabled = true;
} else {
gcd.experimentsEnabled = false;
}
}
}
}
Widgets.ExperimentToggle {
name: "servers_enabled"
experiment_id: "tapir-servers-experiment"
}
Widgets.ExperimentToggle {
name: "servers_enabled"
experiment_id: "tapir-servers-experiment"
}
Widgets.ExperimentToggle {
name: "groups_enabled"
experiment_id: "tapir-groups-experiment"
}
Widgets.ExperimentToggle {
name: "groups_enabled"
experiment_id: "tapir-groups-experiment"
}
Opaque.ScalingLabel {
id: versionLabel
anchors.horizontalCenter: parent.horizontalCenter
//: Version %1 with tor %2
text: qsTr("version %1 tor %2").arg(gcd.version).arg(gcd.torVersion)
}
Opaque.Collapser {
textShow: qsTr("Text magnification reference")
textHide: textShow
Opaque.ScalingLabel {
id: builddateLabel
anchors.horizontalCenter: parent.horizontalCenter
//: Built on: %2
text: qsTr("builddate %2").arg(gcd.buildDate)
}
Opaque.Label {
text: "compact header"
size: Theme.textHeaderPtBase[0]
bold: true
}
Opaque.Label {
text: "compact small text"
size: Theme.textSmallPtBase[0]
}
Opaque.Label {
text: "compact medium text"
size: Theme.textMediumPtBase[0]
}
Opaque.Label {
text: "compact large text"
size: Theme.textLargePtBase[0]
}
Opaque.Label {
text: "normal header"
size: Theme.textHeaderPtBase[1]
bold: true
}
Opaque.Label {
text: "normal small text"
size: Theme.textSmallPtBase[1]
}
Opaque.Label {
text: "normal medium text"
size: Theme.textMediumPtBase[1]
}
Opaque.Label {
text: "normal large text"
size: Theme.textLargePtBase[1]
}
Opaque.Label {
text: "magnified header"
size: Theme.textHeaderPtBase[2]
bold: true
}
Opaque.Label {
text: "magnified small text"
size: Theme.textSmallPtBase[2]
}
Opaque.Label {
text: "magnified medium text"
size: Theme.textMediumPtBase[2]
}
Opaque.Label {
text: "magnified large text"
size: Theme.textLargePtBase[2]
}
}
Opaque.Collapser {
textShow: qsTr("Acknowledgements")
textHide: textShow
Opaque.Label {
//: don't translate yet... we should come up with something to write here as a team<3
text: qsTr("extra special thanks!!!!")
}
Opaque.Label {
text: "dependencies, licenses?\nprofile icon pics\nfontawesome? other icon sources?\nmutant standard\nadobe blank\nopensans?"
}
}
// todo: found this -60 by trial and error. not sure of derivation
Opaque.HLine{width:parent.width-padding*2-60}
Opaque.Label {
id: versionLabel
anchors.horizontalCenter: parent.horizontalCenter
//: Version %1 with tor %2
text: qsTr("version %1 tor %2").arg(gcd.version).arg(gcd.torVersion)
size: Theme.textSmallPt
}
Opaque.Label {
id: builddateLabel
anchors.horizontalCenter: parent.horizontalCenter
//: Built on: %2
text: qsTr("builddate %2").arg(gcd.buildDate)
size: Theme.textSmallPt
}
}
Connections {
target: gcd
onSupplySettings: function(locale, zoom, theme) {
onSupplySettings: function(locale, scale, theme) {
for (var i=0; i < cbLangItems.count; i++) {
var item = cbLangItems.get(i)
if (item["value"] == locale) {

View File

@ -21,7 +21,7 @@ Item {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
anchors.topMargin: 100 * gcd.themeScale
anchors.topMargin: 60 + 10 * Theme.scale
width: 200
height: 200
@ -31,30 +31,29 @@ Item {
id: splashImage
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: aniKnot.bottom
anchors.topMargin: 20 * gcd.themeScale
anchors.topMargin: Theme.paddingStandard
source: "qrc:/qml/images/cwtch_title.png"
}
Opaque.ScalingLabel {
Opaque.Label {
id: loadingLabel
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: splashImage.bottom
anchors.topMargin: 10 * gcd.themeScale
anchors.topMargin: Theme.paddingSmall
//: Loading tor...
text: qsTr("loading-tor")
size: Theme.secondaryTextSize
color: Theme.mainTextColor
size: Theme.textSmallPt
}
Image {
id: opImage
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
anchors.bottomMargin: 20 * gcd.themeScale
anchors.bottomMargin: Theme.paddingStandard
source: "qrc:/qml/images/Open_Privacy_Logo_lightoutline.png"
}

View File

@ -12,20 +12,11 @@ ColumnLayout {
id: root
property alias dualPane: myprof.dualPane
property real logscale: 4 * Math.log10(gcd.themeScale + 1)
spacing: 10
MouseArea {
anchors.fill: parent
onClicked: {
forceActiveFocus()
}
}
MyProfile { // CURRENT PROFILE INFO AND CONTROL BAR
id: myprof
width: root.width
Layout.fillWidth: true
}
function filterContact(displayName, handle) {
@ -45,20 +36,15 @@ ColumnLayout {
Opaque.IconTextField {
id: searchAddText
anchors.horizontalCenter: parent.horizontalCenter
Layout.minimumWidth: parent.width - 60
Layout.maximumWidth: parent.width - 60
Layout.alignment: Qt.AlignHCenter
Layout.fillWidth: true
Layout.margins: Theme.paddingStandard
//: ex: "... paste an address here to add a contact ..."
//placeholderText: qsTr("paste-address-to-add-contact")
horizontalAlignment: TextInput.AlignHCenter
icon: gcd.assetPath + "core/search-24px.webp"
onTextChanged: {
// TODO: detect peer or group address and insert a contactRow that asks to add the corresponding group or peer
/*if (text != "") {
@ -229,24 +215,16 @@ ColumnLayout {
id: blockedToggle
property bool showing: true
leftPadding: 32 * logscale
topPadding: 16 * logscale
bottomPadding: 8 * logscale
spacing: 5 * logscale
// for review: uhhh....?
leftPadding: Theme.paddingLarge
topPadding: Theme.paddingStandard
bottomPadding: Theme.paddingSmall
Opaque.ScalingLabel {
Opaque.Label {
id: blockLbl
text: qsTr("blocked")
size: Theme.chatMetaTextSize
color: Theme.portraitBlockedTextColor
}
Opaque.ScalingLabel {
id: blockBtn
text: blockedToggle.showing ? "▲" : "▼"
size: Theme.chatMetaTextSize
text: qsTr("blocked") + blockedToggle.showing ? "▲" : "▼"
size: Theme.textSmallPt
color: Theme.portraitBlockedTextColor
}
}

View File

@ -34,11 +34,11 @@ Opaque.PortraitRow {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: 1 * gcd.themeScale
anchors.rightMargin: 25 * gcd.themeScale
anchors.leftMargin: Theme.paddingMinimal
anchors.rightMargin: Theme.paddingStandard
height: parent.height * .1
width: 100 * gcd.themeScale
width: 50 + 20 * Theme.scale
indeterminate: true
@ -54,14 +54,14 @@ Opaque.PortraitRow {
size: parent.height/4
anchors.right: parent.right
anchors.rightMargin: 25 * gcd.themeScale
anchors.leftMargin: 1 * gcd.themeScale
anchors.rightMargin: Theme.paddingStandard
anchors.leftMargin: Theme.paddingMinimal
anchors.verticalCenter: parent.verticalCenter
content: Label {
id: lblUnread
color: Theme.portraitContactBadgeTextColor
font.pixelSize: Theme.badgeTextSize * gcd.themeScale
font.pointSize: Theme.textBadgeLabelPt
font.weight: Font.Bold
text: badge > 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,10 +89,10 @@ 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: { console.log("approve"); gcd.setPeerAuthorization(handle, Const.auth_blocked)}
onClicked: gcd.setPeerAuthorization(handle, Const.auth_blocked)
}
}

View File

@ -4,21 +4,21 @@ import "../opaque/theme"
import "../utils.js" as Utils
Opaque.Setting {
//: Theme
id: experiment
property string name;
property string experiment_id;
property string name
property string experiment_id
visible: gcd.experimentsEnabled
//: [todo]
label: qsTr(name)
field: Opaque.ToggleSwitch {
anchors.right: parent.right
id: expToggle
isToggled: Utils.checkMap(gcd.experiments, experiment.experiment_id)
onToggled: function() {
let experimentsMap = Utils.buildMap(gcd.experiments);
experimentsMap[experiment.experiment_id] = expToggle.isToggled ? false : true;
gcd.experiments = experimentsMap;
checked: Utils.checkMap(gcd.experiments, experiment.experiment_id)
onCheckedChanged: function() {
let experimentsMap = Utils.buildMap(gcd.experiments)
experimentsMap[experiment.experiment_id] = checked
gcd.experiments = experimentsMap
}
}
}

View File

@ -29,8 +29,6 @@ Rectangle {
property string error
property bool calendarEvent
property real logscale: 4 * Math.log10(gcd.themeScale + 1)
Connections {
target: gcd
@ -55,7 +53,8 @@ Rectangle {
visible: !fromMe && !calendarEvent
size: fromMe || calendarEvent ? 0 : Theme.contactPortraitSize * 0.5
width: fromMe || calendarEvent ? 0 : implicitWidth * 0.5
height: implicitHeight * 0.5
badgeVisible: false
@ -85,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
@ -110,7 +109,7 @@ Rectangle {
color: parent.color
}
Label {
Opaque.Label {
id: handle
visible: !fromMe && !calendarEvent
@ -118,14 +117,12 @@ Rectangle {
color: Theme.messageFromOtherTextColor
elide: Text.ElideRight
width: parent.width - 20 // padding
font.pixelSize: Theme.chatSize * gcd.themeScale
font.weight: Font.Bold
font.family: Fonts.applicationFontBold.name
font.styleName: "Bold"
leftPadding: 10 * gcd.themeScale
topPadding: 10 * gcd.themeScale
multiline: false
width: parent.width - leftPadding - rightPadding // padding
size: Theme.chatSize
bold: true
leftPadding: Theme.paddingSmall
rightPadding: Theme.paddingSmall
}
Column {
@ -134,14 +131,12 @@ Rectangle {
width: Math.max(lbl.width, ts.width + ack.width + 10)
anchors.top: fromMe ? parent.top : (calendarEvent ? parent.top : handle.bottom)
anchors.topMargin: 10 * gcd.themeScale
TextEdit { // this is used as a helper to calculate the message box width
id: dummy
visible: false
padding: 6 * gcd.themeScale
leftPadding: 10 * gcd.themeScale
font.pixelSize: gcd.themeScale * Theme.chatSize
padding: Theme.paddingSmall
font.pointSize: lbl.font.pointSize
wrapMode: TextEdit.NoWrap
text: lbl.text
textFormat: Text.RichText
@ -149,11 +144,10 @@ Rectangle {
TextEdit { // this is the actual text display
id: lbl
text: parse(message, 12, true)
text: parse(message, Theme.uiEmojiSize, true)
color: fromMe ? Theme.messageFromMeTextColor : Theme.messageFromOtherTextColor
padding: 6 * gcd.themeScale
leftPadding: 10 * gcd.themeScale
font.pixelSize: gcd.themeScale * Theme.chatSize
padding: Theme.paddingSmall
font.pointSize: Theme.textSmallPt
selectByMouse: gcd.os != "android"
readOnly: true
width: Math.min(dummy.width, root.parent.width - (imgProfile.visible ? imgProfile.width : 0) - 40)
@ -166,22 +160,22 @@ Rectangle {
anchors.right: parent.right
visible: !calendarEvent
Opaque.ScalingLabel { // TIMESTAMP
Opaque.Label { // TIMESTAMP
id: ts
text: Qt.formatDateTime(new Date(root.timestamp*1000), "h:mm ap")
color: fromMe ? Theme.messageFromMeTextColor : Theme.messageFromOtherTextColor
font.pixelSize: Theme.chatMetaTextSize * gcd.themeScale
size: Theme.textSmallPt
rightPadding: 10
}
Image { // ACKNOWLEDGEMENT ICON
id: ack
source: root.error != "" ? gcd.assetPath + "core/fontawesome/regular/window-close.webp" : (root.ackd ? gcd.assetPath + "core/fontawesome/regular/check-circle.webp" : gcd.assetPath + "core/fontawesome/regular/hourglass.svg")
height: Theme.chatMetaTextSize * gcd.themeScale
width: Theme.chatMetaTextSize * gcd.themeScale
height: Theme.uiIconSizeS
width: Theme.uiIconSizeS
anchors.bottom: parent.bottom
sourceSize.height: Theme.chatMetaTextSize * gcd.themeScale
sourceSize.height: Theme.uiIconSizeS
visible: fromMe
ToolTip.visible: ma.containsMouse
ToolTip.delay: 200

View File

@ -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,11 +71,11 @@ 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
Opaque.ScalingLabel {
Opaque.Label {
id: statusText
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
@ -85,9 +85,8 @@ ColumnLayout {
wrapMode: Text.NoWrap
text: ""
visible: text != ""
size: Theme.chatMetaTextSize
font.family: Fonts.applicationFontRegular.name
font.styleName: "Bold"
size: Theme.textSmallPt
bold: true
}
}
@ -98,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 {
@ -110,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
@ -153,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
@ -163,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
@ -192,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
@ -207,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

View File

@ -13,13 +13,13 @@ import "../opaque/theme"
import "../opaque/fonts"
import "../const"
// usage: needs a width
Item {
id: root
anchors.fill: parent
width: parent.width
height: profile.height
implicitHeight: profile.height
width: 100
height: implicitHeight
implicitHeight: (dualPane ? 1 : 3) * Theme.contactPortraitSize + 2 * Theme.paddingStandard // + nameMetric.height
property string image
property string nick
@ -28,124 +28,77 @@ Item {
property bool dualPane: false
property bool profileOnline: false
property real logscale: 4 * Math.log10(gcd.themeScale + 1)
onDualPaneChanged: { realignProfile() }
function realignProfile() {
if (dualPane) {
profile.height = Theme.contactPortraitSize * logscale
portrait.anchors.horizontalCenter = undefined
portrait.anchors.left = profile.left
portrait.anchors.leftMargin = 25 * logscale
portrait.size = Theme.contactPortraitSize * logscale
profiletype.height = Theme.badgeTextSize * gcd.themeScale
nameRow.anchors.right = undefined
nameRow.anchors.left = portrait.right
nameRow.anchors.top = undefined
nameRow.anchors.verticalCenter = portrait.verticalCenter
nameCenter.anchors.horizontalCenter = undefined
nameCenter.anchors.left = nameRow.left
} else {
profile.height = (Theme.contactPortraitSize * 2 * logscale)
portrait.anchors.left = undefined
portrait.anchors.leftMargin = undefined
portrait.anchors.horizontalCenter = profile.horizontalCenter
portrait.size = Theme.contactPortraitSize * 1.5
profiletype.height = Theme.badgeTextSize * gcd.themeScale * 1.5
nameRow.anchors.left = profile.left
nameRow.anchors.right = profile.right
nameRow.anchors.verticalCenter = undefined
nameRow.anchors.top = portrait.bottom
nameCenter.anchors.left = undefined
nameCenter.anchors.horizontalCenter = nameRow.horizontalCenter
}
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
width: parent.width
id: profile
anchors.fill: parent
color: Theme.backgroundMainColor
Opaque.Portrait {
id: portrait
Opaque.Portrait {
id: portrait
anchors.horizontalCenter: root.dualPane ? undefined : parent.horizontalCenter
//anchors.left: root.dualPane ? parent.left : undefined
anchors.bottom: root.dualPane ? undefined : parent.verticalCenter
source: root.image
source: root.image
width: (root.dualPane ? 1 : 2) * Theme.contactPortraitSize
height: width
badgeColor: Theme.portraitProfileBadgeColor
portraitBorderColor: Theme.portraitOnlineBorderColor
portraitColor: Theme.portraitOnlineBackgroundColor
badgeColor: Theme.portraitProfileBadgeColor
portraitBorderColor: Theme.portraitOnlineBorderColor
portraitColor: Theme.portraitOnlineBackgroundColor
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
width: height
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
width: height
iconColor: Theme.defaultButtonTextColor
backgroundColor: portrait.badgeColor
hilightBackgroundColor: portrait.badgeColor
}
}
iconColor: Theme.defaultButtonTextColor
backgroundColor: portrait.badgeColor
hilightBackgroundColor: portrait.badgeColor
}
}
Rectangle {
id: nameRow
height: name.height
color: Theme.backgroundMainColor
Opaque.Label {
id: name
anchors.left: root.dualPane ? portrait.right : undefined
anchors.top: root.dualPane ? undefined : parent.verticalCenter
anchors.verticalCenter: root.dualPane ? portrait.verticalCenter : undefined
Rectangle {
id: nameCenter
width: name.width + addBtn.width
property real rem: parent.width - portrait.width - addBtn.width
width: root.dualPane ? Math.min(rem, nameMetric.width) : nameMetric.width + 6
//horizontalAlignment: root.dualPane ? Text.AlignLeft : Text.AlignCenter
anchors.horizontalCenter: root.dualPane ? undefined : parent.horizontalCenter
Label {
id: name
color: Theme.portraitOnlineTextColor
multiline: false
header: true
text: root.nick
}
color: Theme.portraitOnlineTextColor
elide: Text.ElideRight
font.pixelSize: Theme.usernameSize * gcd.themeScale
font.weight: Font.Bold
font.family: Fonts.applicationFontExtraBold.name
font.styleName: "ExtraBold"
text: nick
}
TextMetrics {
id: nameMetric
font: name.font
text: root.nick
}
Opaque.Button { // Add Button
id: addBtn
Opaque.Button { // Add Button
id: addBtn
anchors.left: name.right
anchors.top: name.top
anchors.leftMargin: 10 * gcd.themeScale
anchors.left: name.right
anchors.verticalCenter: name.verticalCenter
anchors.top: name.top
anchors.leftMargin: Theme.paddingSmall
icon: "fontawesome/solid/plus"
height: name.height
width: height
radius: width * 0.3
onClicked: {
theStack.currentIndex = theStack.addPeerGroupPane
}
}
}
}
icon: "fontawesome/solid/plus"
height: Theme.uiIconSizeM
width: Theme.uiIconSizeM
radius: width * 0.3
onClicked: {
theStack.currentIndex = theStack.addPeerGroupPane
}
}
}
function updateStatus() {
@ -182,8 +135,6 @@ Item {
updateStatus()
}
onResetProfile: { realignProfile() }
onTorStatusChanged: function() {
updateStatus()
}

View File

@ -15,6 +15,7 @@ import "../const"
Item {
id: root
Layout.fillWidth: true
width: parent.width
property bool online: false
property int state: Const.state_disconnected

View File

@ -10,14 +10,6 @@ import "../opaque/theme"
ColumnLayout {
id: root
MouseArea {
anchors.fill: parent
onClicked: {
forceActiveFocus()
}
}
Opaque.Flickable { // Profile List
id: sv
Layout.minimumHeight: 100
@ -122,15 +114,13 @@ 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
onClicked: function(handle) { profileAddEditPane.reset(); parentStack.pane = parentStack.addEditProfilePane }
}
}
}
}

View File

@ -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
@ -104,19 +104,11 @@ RowLayout {
hilightBackgroundColor: Theme.backgroundHilightElementColor
iconColor: Theme.altTextColor
anchors.verticalCenter: parent.verticalCenter
// Layout.alignment: Qt.AlignVCenter
height: root.height / 2
width: root.height / 2
size: root.height / 2
onClicked: editClicked(handle, displayName, tag, image)
}
}

View File

@ -10,14 +10,6 @@ import "../opaque/theme"
ColumnLayout {
id: root
MouseArea {
anchors.fill: parent
onClicked: {
forceActiveFocus()
}
}
Opaque.Flickable { // Profile List
id: sv
Layout.minimumHeight: 100
@ -71,10 +63,6 @@ ColumnLayout {
_messages: messages
})
}
onResetServerList: function() {
serversModel.clear()
}
}
ListModel { // Profile OBJECTS ARE STORED HERE ...
@ -116,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

View File

@ -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() {