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: linux:
date 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 date
cp -R assets deploy/linux/ cp -R assets deploy/linux/

View File

@ -42,7 +42,7 @@ type GrandCentralDispatcher struct {
_ int `property:"torStatus"` _ int `property:"torStatus"`
_ string `property:"os"` _ string `property:"os"`
_ bool `property:"firstTime"` _ bool `property:"firstTime"`
_ float32 `property:"themeScale,auto,changed"` _ int `property:"scaleFactor,auto,changed"`
_ string `property:"theme,auto,changed"` _ string `property:"theme,auto,changed"`
_ string `property:"locale,auto,changed"` _ string `property:"locale,auto,changed"`
_ string `property:"version"` _ string `property:"version"`
@ -98,7 +98,7 @@ type GrandCentralDispatcher struct {
// settings helpers // settings helpers
_ func(str string) `signal:"InvokePopup"` _ 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(groupID, name, server, invitation string, accepted bool, addrbooknames, addrbookaddrs []string) `signal:"SupplyGroupSettings"`
_ func(onion, nick string, authorization string, storage string) `signal:"SupplyPeerSettings"` _ func(onion, nick string, authorization string, storage string) `signal:"SupplyPeerSettings"`
_ func(server string, key_types []string, keys []string) `signal:"SupplyServerSettings"` _ 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) // signals emitted from the ui (and implemented in go, below)
// ui // ui
_ func() `signal:"onActivate,auto"` _ func() `signal:"onActivate,auto"`
_ func(pane int) `signal:"setRootPaneState",auto` _ func(pane int) `signal:"setRootPaneState,auto"`
_ func(pane int) `signal:"setProfilePaneState",auto` _ func(pane int) `signal:"setProfilePaneState,auto"`
// profile managemenet // profile managemenet
_ func(onion, nick string) `signal:"updateNick,auto"` _ func(onion, nick string) `signal:"updateNick,auto"`
_ func(handle string) `signal:"loadProfile,auto"` _ func(handle string) `signal:"loadProfile,auto"`
@ -158,7 +158,7 @@ func (this *GrandCentralDispatcher) init() {
firstTime := false firstTime := false
this.GlobalSettings, firstTime = ReadGlobalSettings() this.GlobalSettings, firstTime = ReadGlobalSettings()
this.SetFirstTime(firstTime) this.SetFirstTime(firstTime)
this.SetThemeScale(this.GlobalSettings.Zoom) this.SetScaleFactor(this.GlobalSettings.Scale)
this.SetTheme(this.GlobalSettings.Theme) this.SetTheme(this.GlobalSettings.Theme)
this.SetExperimentsEnabled(this.GlobalSettings.ExperimentsEnabled) this.SetExperimentsEnabled(this.GlobalSettings.ExperimentsEnabled)
this.SetExperiments(this.GlobalSettings.Experiments) this.SetExperiments(this.GlobalSettings.Experiments)
@ -454,7 +454,7 @@ func (this *GrandCentralDispatcher) legacyLoadOverlay_helper(handle string, over
} }
func (this *GrandCentralDispatcher) requestSettings() { 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) { func (this *GrandCentralDispatcher) saveSettings(zoom, locale string) {
@ -774,8 +774,8 @@ func (this *GrandCentralDispatcher) setLocaleHelper(locale string) {
this.QMLEngine.Retranslate() this.QMLEngine.Retranslate()
} }
func (this *GrandCentralDispatcher) themeScaleChanged(newThemeScale float32) { func (this *GrandCentralDispatcher) scaleFactorChanged(newScale int) {
this.GlobalSettings.Zoom = newThemeScale this.GlobalSettings.Scale = newScale
WriteGlobalSettings(this.GlobalSettings) WriteGlobalSettings(this.GlobalSettings)
} }

View File

@ -9,14 +9,13 @@ import (
"io/ioutil" "io/ioutil"
"os" "os"
"path" "path"
"runtime"
) )
const GlobalSettingsFilename = "ui.globals" const GlobalSettingsFilename = "ui.globals"
const saltFile = "SALT" const saltFile = "SALT"
type GlobalSettings struct { type GlobalSettings struct {
Zoom float32 Scale int
Locale string Locale string
Theme string Theme string
PreviousPid int64 PreviousPid int64
@ -26,7 +25,7 @@ type GlobalSettings struct {
} }
var DefaultGlobalSettings = GlobalSettings{ var DefaultGlobalSettings = GlobalSettings{
Zoom: 1.9, Scale: 2,
Locale: "en", Locale: "en",
Theme: "light", Theme: "light",
PreviousPid: -1, PreviousPid: -1,
@ -59,9 +58,6 @@ func InitGlobalSettingsFile(directory string, password string) error {
func ReadGlobalSettings() (*GlobalSettings, bool) { func ReadGlobalSettings() (*GlobalSettings, bool) {
settings := DefaultGlobalSettings settings := DefaultGlobalSettings
if runtime.GOOS == "android" {
settings.Zoom = 2.9
}
settings.Locale = core.QLocale_System().Name() settings.Locale = core.QLocale_System().Name()
settingsBytes, err := the.GlobalSettingsFile.Read() settingsBytes, err := the.GlobalSettingsFile.Read()
@ -76,7 +72,7 @@ func ReadGlobalSettings() (*GlobalSettings, bool) {
return &settings, true //firstTime = true return &settings, true //firstTime = true
} }
log.Debugf("Settings: %v", settings) log.Debugf("Settings: %#v", settings)
return &settings, false return &settings, false
} }

Binary file not shown.

View File

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

View File

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

View File

@ -621,6 +621,7 @@
</message> </message>
<message> <message>
<source>large-text-label</source> <source>large-text-label</source>
<extracomment>large text</extracomment>
<translation>Grande</translation> <translation>Grande</translation>
</message> </message>
<message> <message>
@ -638,7 +639,7 @@
</message> </message>
<message> <message>
<source>experiments-enabled</source> <source>experiments-enabled</source>
<extracomment>Theme</extracomment> <extracomment>Enable experiments</extracomment>
<translation>Experimentos habilitados</translation> <translation>Experimentos habilitados</translation>
</message> </message>
<message> <message>
@ -661,6 +662,7 @@
</message> </message>
<message> <message>
<source>small-text-label</source> <source>small-text-label</source>
<extracomment>small text</extracomment>
<translation>Pequeño</translation> <translation>Pequeño</translation>
</message> </message>
<message> <message>
@ -671,6 +673,24 @@
<source>locale-it</source> <source>locale-it</source>
<translation>Italiano</translation> <translation>Italiano</translation>
</message> </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>
<context> <context>
<name>SplashPane</name> <name>SplashPane</name>

View File

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

View File

@ -5,7 +5,7 @@ import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import QtQuick.Window 2.11 import QtQuick.Window 2.11
import "opaque" import "opaque" as Opaque
import "opaque/fonts" import "opaque/fonts"
import "opaque/fonts/MutantStandard.js" as Mutant import "opaque/fonts/MutantStandard.js" as Mutant
import "opaque/theme" import "opaque/theme"
@ -17,7 +17,7 @@ import "utils.js" as Utils
ApplicationWindow { ApplicationWindow {
id: windowItem id: windowItem
width: 1200 width: 600 + Theme.scale * 200
height: 800 height: 800
visible: true visible: true
title: "cwtch" + "" title: "cwtch" + ""
@ -26,7 +26,7 @@ ApplicationWindow {
readonly property real ratio: height / width readonly property real ratio: height / width
FontAwesome { // PRETTY BUTTON ICONS Opaque.FontAwesome { // PRETTY BUTTON ICONS
id: awesome id: awesome
resource: "qrc:/qml/opaque/fonts/fontawesome.ttf" resource: "qrc:/qml/opaque/fonts/fontawesome.ttf"
} }
@ -40,17 +40,17 @@ ApplicationWindow {
retText = retText.replace(/\n/g,"<br/>").replace(/\s\s/g, "&nbsp;&nbsp;") retText = retText.replace(/\n/g,"<br/>").replace(/\s\s/g, "&nbsp;&nbsp;")
// mutant standard stickers // 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 return retText
} }
function ptToPx(pt) { function ptToPx(pt) {
return Screen.pixelDensity * 25.4 * pt / 72 return Math.floor(Screen.pixelDensity * 25.4 * pt / 72)
} }
function pxToPt(px) { function pxToPt(px) {
return px * 72 / (Screen.pixelDensity * 25.4) return Math.floor(px * 72 / (Screen.pixelDensity * 25.4))
} }
StackView { StackView {
@ -94,10 +94,13 @@ ApplicationWindow {
// The actual app // The actual app
property Item mainLayout: Rectangle { property Item mainLayout: Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
color: Theme.backgroundMainColor color: Theme.backgroundMainColor
Toolbar { Opaque.Toolbar {
id: toolbar id: toolbar
rightPaneWidth: theStack.width
onLeftMenu: { onLeftMenu: {
gcd.requestSettings() gcd.requestSettings()
@ -186,17 +189,16 @@ ApplicationWindow {
Rectangle { // THE LEFT PANE WITH TOOLS AND CONTACTS Rectangle { // THE LEFT PANE WITH TOOLS AND CONTACTS
color: Theme.backgroundMainColor color: Theme.backgroundMainColor
Layout.fillHeight: true Layout.fillHeight: true
Layout.minimumWidth: Theme.sidePaneMinSize * gcd.themeScale Layout.minimumWidth: Theme.sidePaneMinSize
Layout.maximumWidth: theStack.pane == theStack.emptyPane ? parent.width : (Theme.sidePaneMinSize * gcd.themeScale) Layout.maximumWidth: theStack.pane == theStack.emptyPane ? parent.width : Theme.sidePaneMinSize
Layout.fillWidth: theStack.pane == theStack.emptyPane ? true : false 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 { ContactList {
anchors.top: parent.top anchors.top: parent.top
anchors.left: parent.left anchors.left: parent.left
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.right: (divider.visible ? divider.left : parent.right) anchors.right: (divider.visible ? divider.left : parent.right)
//anchors.topMargin: 10 * gcd.themeScale
dualPane: theStack.pane != theStack.emptyPane || theStack.pane == undefined dualPane: theStack.pane != theStack.emptyPane || theStack.pane == undefined
} }
@ -204,7 +206,7 @@ ApplicationWindow {
id: divider id: divider
width: 2 width: 2
anchors.right: parent.right anchors.right: parent.right
height: parent.height - (20 * gcd.themeScale) height: parent.height - 2 * Theme.paddingStandard
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
visible: theStack.pane != theStack.emptyPane visible: theStack.pane != theStack.emptyPane
//Layout.fillHeight: true //Layout.fillHeight: true
@ -230,7 +232,10 @@ ApplicationWindow {
readonly property int addPeerGroupPane: 4 readonly property int addPeerGroupPane: 4
readonly property int serverInfoPane: 5 readonly property int serverInfoPane: 5
Item { anchors.fill: parent } // empty Item { // empty
Layout.fillWidth: true
Layout.fillHeight: true
}
Rectangle { Rectangle {
color: Theme.backgroundMainColor color: Theme.backgroundMainColor
@ -238,21 +243,32 @@ ApplicationWindow {
Layout.fillHeight: true Layout.fillHeight: true
OverlayPane { // messagePane OverlayPane { // messagePane
anchors.fill: parent 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 { AddPeerGroupPane {
id: addPeerGroupPaneInstance id: addPeerGroupPaneInstance
anchors.fill: parent Layout.fillWidth: true
Layout.fillHeight: true
} }
ServerInfoPane { anchors.fill: parent } ServerInfoPane {
Layout.fillWidth: true
Layout.fillHeight: true
}
onCurrentIndexChanged: { onCurrentIndexChanged: {
gcd.setProfilePaneState(theStack.currentIndex) gcd.setProfilePaneState(theStack.currentIndex)
@ -267,8 +283,6 @@ ApplicationWindow {
addPeerGroupPaneInstance.reset() addPeerGroupPaneInstance.reset()
} }
} }
onWidthChanged: {toolbar.titleWidth = width}
} }
} }
} }
@ -384,19 +398,18 @@ ApplicationWindow {
anchors.top: parent.top anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20 anchors.topMargin: 20
width: lblPopup.width + 30 width: lblPopup.width + 2 * gcd.paddingStandard
height: lblPopup.height + 8 * gcd.themeScale height: lblPopup.height + 2 * gcd.paddingStandard
color: "#000000" color: "#000000"
opacity: 0.5 opacity: 0.5
radius: 15 radius: 15
visible: false visible: false
Label { Opaque.Label {
id: lblPopup id: lblPopup
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 18 * gcd.themeScale
color: "#FFFFFF" color: "#FFFFFF"
} }
} }

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

View File

@ -14,6 +14,7 @@ import "../utils.js" as Utils
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
width:parent.width width:parent.width
Layout.margins: Theme.paddingStandard
Text { Text {
Layout.fillWidth: true Layout.fillWidth: true
@ -26,10 +27,7 @@ ColumnLayout {
style: CwtchTextFieldStyle{} style: CwtchTextFieldStyle{}
anchors.left: parent.left width: parent.width - 2 * parent.padding
anchors.right: parent.right
anchors.margins: 10
onTextChanged: { onTextChanged: {
bulletinView.filter = text bulletinView.filter = text
@ -247,8 +245,7 @@ ColumnLayout {
id: btnSend id: btnSend
icon: "regular/paper-plane" icon: "regular/paper-plane"
text: "post" text: "post"
anchors.right: parent.right Layout.alignment: Qt.AlignRight
anchors.rightMargin: 2
property int nextMessageID: 1 property int nextMessageID: 1

View File

@ -16,8 +16,6 @@ W.Overlay {
property bool loading property bool loading
property string historyState: "DefaultDeleteHistory" property string historyState: "DefaultDeleteHistory"
//horizontalPadding: 15 * gcd.themeScale
Connections { Connections {
target: mm target: mm
onRowsInserted: { onRowsInserted: {
@ -137,7 +135,7 @@ W.Overlay {
property string txt: section property string txt: section
color: Theme.backgroundMainColor color: Theme.backgroundMainColor
width: parent.width width: parent.width
height: texmet.height + 6 + 12// * gcd.themeScale height: texmet.height + 6 + 2 * Theme.paddingSmall
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
@ -156,7 +154,7 @@ W.Overlay {
// ... and this can be changed to // ... and this can be changed to
// text: parent.parent.section // text: parent.parent.section
text: parent.parent.txt text: parent.parent.txt
font.pixelSize: Theme.chatSize * gcd.themeScale font.pointSize: Theme.textSmallPt
color: Theme.messageFromOtherTextColor color: Theme.messageFromOtherTextColor
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -165,7 +163,7 @@ W.Overlay {
TextMetrics { TextMetrics {
id: texmet id: texmet
text: txtDate.text 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 "../utils.js" as Utils
import "../opaque/styles" import "../opaque/styles"
import "../opaque/theme" import "../opaque/theme"
import "../widgets" as W
ColumnLayout { ColumnLayout {
id: listpanel
Layout.fillWidth: true Layout.fillWidth: true
width:parent.width 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 property bool online: false
Text {
Layout.fillWidth: true
}
Opaque.IconTextField { Item {
id: filter width: 1
visible:listpanel.online height: Theme.paddingStandard
anchors.left: parent.left }
anchors.right: parent.right
anchors.margins: 10
//: ex: "Find..." Opaque.IconTextField {
placeholderText: qsTr("search-list") id: filter
horizontalAlignment: TextInput.AlignHCenter visible:listpanel.online
icon: gcd.assetPath + "core/search-24px.webp" Layout.fillWidth: true
//: ex: "Find..."
placeholderText: qsTr("search-list")
horizontalAlignment: TextInput.AlignHCenter
icon: gcd.assetPath + "core/search-24px.webp"
onTextChanged: { onTextChanged: {
listView.filter = text listView.filter = text
if (listView.model.get(listView.currentIndex).title.indexOf(text) == -1) { if (listView.model.get(listView.currentIndex).title.indexOf(text) == -1) {
listView.currentIndex = -1 listView.currentIndex = -1
} }
} }
} }
Opaque.Icon { Opaque.Icon {
visible:!listpanel.online visible:!listpanel.online
source: gcd.assetPath + "core/negative_heart_24px.webp" source: gcd.assetPath + "core/negative_heart_24px.webp"
iconColor: Theme.mainTextColor iconColor: Theme.mainTextColor
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
height: 150 height: 150
width: 150 width: 150
} }
Label {
visible:!listpanel.online Opaque.Label {
color: Theme.mainTextColor visible:!listpanel.online
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight Layout.fillWidth: true
font.pixelSize: 18 * gcd.themeScale elide: Text.ElideRight
text: qsTr("peer-not-online") size: Theme.textMediumPt
} text: qsTr("peer-not-online")
}
Flickable { // THE MESSAGE LIST ITSELF Flickable { // THE MESSAGE LIST ITSELF
id: sv id: sv
clip: true clip: true
visible:listpanel.online visible:listpanel.online
Layout.alignment: Qt.AlignLeft | Qt.AlignTop Layout.alignment: Qt.AlignLeft | Qt.AlignTop
Layout.fillHeight: true Layout.fillHeight: true
Layout.fillWidth: true Layout.fillWidth: true
contentWidth: parent.width contentWidth: parent.width
contentHeight: parent.height contentHeight: parent.height
boundsBehavior: Flickable.StopAtBounds boundsBehavior: Flickable.StopAtBounds
maximumFlickVelocity: 800 maximumFlickVelocity: 800
Connections { Connections {
@ -89,145 +94,138 @@ ColumnLayout {
} }
} }
Connections { Connections {
id: cnxns2 id: cnxns2
target: gcd target: gcd
onClearMessages: function() { onClearMessages: function() {
jsonModel4.clear() jsonModel4.clear()
} }
onAppendMessage: function(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) handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error)
} }
onPrependMessage: function(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) handler(handle, from, displayName, message, image, mid, fromMe, ts, ack, error)
} }
function 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 var msg
try { try {
msg = JSON.parse(message) msg = JSON.parse(message)
} catch (e) { } catch (e) {
return return
} }
if (msg.o != 4) return if (msg.o != 4) return
if (msg.t != undefined) { if (msg.t != undefined) {
jsonModel4.insert(0,{ jsonModel4.insert(0,{
"title":msg.t, "title":msg.t,
"selected":false, "selected":false,
"from": from, "from": from,
"displayName": displayName, "displayName": displayName,
"timestamp": ts, "timestamp": ts,
"complete": false "complete": false
}) })
} }
if(msg.c != undefined) { if(msg.c != undefined) {
jsonModel4.get(msg.c).complete = true jsonModel4.get(msg.c).complete = true
} }
} }
onUpdateContactStatus: function(_handle, _status, _loading) { onUpdateContactStatus: function(_handle, _status, _loading) {
if (gcd.selectedConversation == _handle) { if (gcd.selectedConversation == _handle) {
// Group is Synced OR p2p is Authenticated // Group is Synced OR p2p is Authenticated
if ( (_handle.length == 32 && _status == 4) || (_handle.length == 56 && _status == 3) ) { if ( (_handle.length == 32 && _status == 4) || (_handle.length == 56 && _status == 3) ) {
newlistitem.readOnly = false newlistitem.readOnly = false
listpanel.online = true listpanel.online = true
} else { } else {
newlistitem.readOnly = true newlistitem.readOnly = true
listpanel.online= false listpanel.online= false
} }
} }
} }
} }
ScrollBar.vertical: ScrollBar{ ScrollBar.vertical: ScrollBar{
policy: ScrollBar.AlwaysOn policy: ScrollBar.AlwaysOn
} }
ListView { ListView {
id: listView id: listView
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 10 anchors.leftMargin: 10
anchors.topMargin: 10 anchors.topMargin: 10
width: parent.width - 50 width: parent.width - 50
height: parent.height - 20 height: parent.height - 20
orientation: Qt.Vertical orientation: Qt.Vertical
spacing: 10 spacing: 10
model: jsonModel4 model: jsonModel4
property string filter: "" property string filter: ""
delegate: delegate:
Item { Item {
width: parent.width width: Listview.view.width
height: title.indexOf(listView.filter) >= 0 ? texttitle.height : 0 height: title.indexOf(listView.filter) >= 0 ? texttitle.height : 0
visible: title.indexOf(listView.filter) >= 0 visible: title.indexOf(listView.filter) >= 0
Column { Column {
width: parent.width width: parent.width
RowLayout { RowLayout {
CheckBox { CheckBox {
checked: complete checked: complete
onClicked: { onClicked: {
var msg = JSON.stringify({"o":4, "c":index}) var msg = JSON.stringify({"o":4, "c":index})
gcd.sendMessage(msg, newlistitem.nextMessageID++) gcd.sendMessage(msg, newlistitem.nextMessageID++)
} }
} }
RowLayout { RowLayout {
Text { Text {
id: texttitle id: texttitle
text: '<b>' + Utils.htmlEscaped(title) + '</b> by ' + displayName + "<br/>" + Qt.formatDateTime(new Date(timestamp*1000), "MMMM d, h:mm ap") text: '<b>' + Utils.htmlEscaped(title) + '</b> by ' + displayName + "<br/>" + Qt.formatDateTime(new Date(timestamp*1000), "MMMM d, h:mm ap")
leftPadding: 10 leftPadding: 10
topPadding: 5 topPadding: 5
bottomPadding:5 bottomPadding:5
color: Theme.mainTextColor color: Theme.mainTextColor
} }
} }
} }
Opaque.HLine{} Opaque.HLine{}
} }
} }
focus: true focus: true
ListModel { ListModel {
id: jsonModel4 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{}
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 = "" groupAddr.text = ""
onionLabel.text = gcd.selectedProfile onionLabel.text = gcd.selectedProfile
gcd.requestPeeredServers()
} }
Column { Column {
anchors.fill: parent anchors.fill: parent
spacing: 25 * gcd.themeScale spacing: Theme.paddingSmall
leftPadding: 20 * gcd.themeScale leftPadding: Theme.paddingStandard
rightPadding: 20 * gcd.themeScale rightPadding: Theme.paddingStandard
Opaque.ScalingLabel { Opaque.Label {
id: shareLabel id: shareLabel
anchors { anchors {
left: parent.left left: parent.left
right: parent.right right: parent.right
} }
horizontalAlignment:Text.AlignHCenter horizontalAlignment:Text.AlignHCenter
size: Theme.secondaryTextSize size: Theme.textSmallPt
wrapMode: Text.Wrap wrapMode: Text.Wrap
//: Send this address to peers you want to connect with //: Send this address to peers you want to connect with
@ -54,7 +56,7 @@ Rectangle {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
readOnly: true readOnly: true
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
button_text: qsTr("copy-btn") button_text: qsTr("copy-btn")
dropShadowColor: Theme.dropShadowPaneColor dropShadowColor: Theme.dropShadowPaneColor
@ -68,7 +70,7 @@ Rectangle {
Rectangle { // Spacer Rectangle { // Spacer
width: 1 width: 1
height: 25 * gcd.themeScale height: Theme.paddingStandard
color: root.color color: root.color
} }
@ -89,16 +91,16 @@ Rectangle {
Column { // Add a peer Column { // Add a peer
Layout.fillWidth: true Layout.fillWidth: true
leftPadding: 20 * gcd.themeScale leftPadding: Theme.paddingStandard
rightPadding: 20 * gcd.themeScale rightPadding: Theme.paddingStandard
spacing: 25 * gcd.themeScale spacing: Theme.paddingSmall
Opaque.UnderlineTextField { Opaque.UnderlineTextField {
id: peerAddr id: peerAddr
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Address //: Address
@ -110,7 +112,7 @@ Rectangle {
id: peerName id: peerName
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Name //: Name
@ -121,9 +123,9 @@ Rectangle {
Column { // Create a group Column { // Create a group
Layout.fillWidth: true Layout.fillWidth: true
leftPadding: 20 * gcd.themeScale leftPadding: Theme.paddingStandard
rightPadding: 20 * gcd.themeScale rightPadding: Theme.paddingStandard
spacing: 25 * gcd.themeScale spacing: Theme.paddingSmall
Opaque.UnderlineTextField { Opaque.UnderlineTextField {
@ -131,7 +133,7 @@ Rectangle {
id: groupNameCreate id: groupNameCreate
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Group Name //: Group Name
@ -139,24 +141,18 @@ Rectangle {
} }
Row { Column {
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter
Column { visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment")
visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") Opaque.Label {
width: parent.width / 2 //: Server
Opaque.ScalingLabel { text: qsTr("server")
//: Server
text: qsTr("server")
}
} }
Opaque.ComboBox {
Column { width:parent.width
visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment") model: ListModel {
width: parent.width / 2 id: cbServerList
Opaque.ScalingLabel {
//: Invitation
text: qsTr("invitation")
} }
} }
} }
@ -164,9 +160,9 @@ Rectangle {
Column { // Join a group Column { // Join a group
Layout.fillWidth: true Layout.fillWidth: true
leftPadding: 20 * gcd.themeScale leftPadding: Theme.paddingStandard
rightPadding: 20 * gcd.themeScale rightPadding: Theme.paddingStandard
spacing: 25 * gcd.themeScale spacing: Theme.paddingSmall
Opaque.UnderlineTextField { Opaque.UnderlineTextField {
@ -174,7 +170,7 @@ Rectangle {
id: groupAddr id: groupAddr
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Address //: Address
@ -187,7 +183,7 @@ Rectangle {
Rectangle { // Spacer Rectangle { // Spacer
width: 1 width: 1
height: 25 * gcd.themeScale height: Theme.paddingStandard
color: root.color color: root.color
} }
@ -195,8 +191,6 @@ Rectangle {
Opaque.Button { Opaque.Button {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
height: 40 * gcd.themeScale
//: Add Peer | Create Group | Join Group //: Add Peer | Create Group | Join Group
text: tabBar.currentItem.text text: tabBar.currentItem.text
@ -204,6 +198,9 @@ Rectangle {
if (tabBar.currentIndex == 0) { if (tabBar.currentIndex == 0) {
gcd.addPeer(peerName.text, peerAddr.text) gcd.addPeer(peerName.text, peerAddr.text)
theStack.currentIndex = theStack.emptyPane 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) { } else if (tabBar.currentIndex == 2) {
gcd.addGroup(groupAddr.text) gcd.addGroup(groupAddr.text)
theStack.currentIndex = theStack.emptyPane 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 Opaque.SettingsList { // groupSettingsPane
id: gsp id: gsp
anchors.fill: parent
property string groupID property string groupID
property variant addrbook property variant addrbook
property bool connected: false property bool connected: false
@ -77,7 +76,6 @@ Opaque.SettingsList { // groupSettingsPane
} }
Opaque.Setting { Opaque.Setting {
property color backgroundColor: parent.color
inline: true inline: true
label: qsTr("server-info") label: qsTr("server-info")
field: Column { field: Column {
@ -86,7 +84,7 @@ Opaque.SettingsList { // groupSettingsPane
RowLayout { RowLayout {
width: parent.width width: parent.width
Layout.fillWidth: true Layout.fillWidth: true
Opaque.ScalingLabel { Opaque.Label {
text: gsp.connected ? qsTr("server-connectivity-connected") : qsTr("server-connectivity-disconnected") text: gsp.connected ? qsTr("server-connectivity-connected") : qsTr("server-connectivity-disconnected")
Layout.alignment: Qt.AlignLeft Layout.alignment: Qt.AlignLeft
} }
@ -104,7 +102,7 @@ Opaque.SettingsList { // groupSettingsPane
width: parent.width width: parent.width
Layout.fillWidth: true Layout.fillWidth: true
Opaque.ScalingLabel { Opaque.Label {
text: gsp.synced ? qsTr("server-synced") : qsTr("server-not-synced") text: gsp.synced ? qsTr("server-synced") : qsTr("server-not-synced")
Layout.alignment: Qt.AlignLeft Layout.alignment: Qt.AlignLeft
} }

View File

@ -30,6 +30,7 @@ ColumnLayout {
StackLayout { StackLayout {
id: overlayStack id: overlayStack
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true
width: parent.width width: parent.width
@ -44,23 +45,15 @@ ColumnLayout {
ChatOverlay { //0 ChatOverlay { //0
Layout.maximumHeight: overlayStack.height
Layout.maximumWidth: overlayStack.width
} }
ListOverlay{ //1 ListOverlay{ //1
Layout.maximumHeight: overlayStack.height
Layout.maximumWidth: overlayStack.width
} }
BulletinOverlay{ //2 BulletinOverlay{ //2
Layout.maximumHeight: overlayStack.height
Layout.maximumWidth: overlayStack.width
} }
MembershipOverlay { //3 MembershipOverlay { //3
Layout.maximumHeight: overlayStack.height
Layout.maximumWidth: overlayStack.width
} }
} }

View File

@ -14,8 +14,6 @@ import "../const"
Opaque.SettingsList { // settingsPane Opaque.SettingsList { // settingsPane
id: root id: root
anchors.fill: parent
anchors.topMargin: 20
width: parent.width width: parent.width
height: parent.height height: parent.height
contentHeight: peerSettings.height + 20 contentHeight: peerSettings.height + 20
@ -80,16 +78,15 @@ Opaque.SettingsList { // settingsPane
field: Opaque.ToggleSwitch { field: Opaque.ToggleSwitch {
anchors.right: parent.right anchors.right: parent.right
isToggled: root.authorization == Const.auth_blocked checked: root.authorization == Const.auth_blocked
onToggled: function() { onCheckedChanged: function() {
if (root.authorization == Const.auth_blocked) { if (!checked) {
root.authorization = Const.auth_unknown root.authorization = Const.auth_unknown
gcd.setPeerAuthorization(txtOnion.text, Const.auth_unknown) gcd.setPeerAuthorization(txtOnion.text, Const.auth_unknown)
} else { } else {
root.authorization = Const.auth_blocked root.authorization = Const.auth_blocked
gcd.setPeerAuthorization(txtOnion.text, 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 id: leftContents
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Layout.alignment : Qt.AlignHCenter + Qt.AlignTop Layout.alignment : Qt.AlignHCenter + Qt.AlignTop
width: 400 * gcd.themeScale spacing: Theme.paddingSmall
spacing: 10 * gcd.themeScale
Opaque.ScalingLabel { Opaque.Label {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
size: Theme.primaryTextSize size: Theme.textMediumPt
//: New Profile || Edit Profile //: New Profile || Edit Profile
text: mode == mode_add ? qsTr("new-profile") : qsTr("edit-profile") text: mode == mode_add ? qsTr("new-profile") : qsTr("edit-profile")
@ -114,7 +113,7 @@ Opaque.Flickable {
// spacing // spacing
Rectangle { Rectangle {
height: 30 * gcd.themeScale height: Theme.paddingSmall
width: 100 width: 100
color: Theme.backgroundPaneColor color: Theme.backgroundPaneColor
} }
@ -122,9 +121,8 @@ Opaque.Flickable {
Opaque.Portrait { Opaque.Portrait {
id: portrait id: portrait
size: 250 Layout.preferredHeight: implicitHeight
Layout.preferredWidth: implicitWidth
Layout.preferredHeight: size
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
portraitBorderColor: Theme.portraitOnlineBorderColor portraitBorderColor: Theme.portraitOnlineBorderColor
@ -136,33 +134,33 @@ Opaque.Flickable {
badgeContent: Image {// Profle Type badgeContent: Image {// Profle Type
id: profiletype id: profiletype
source: radioUsePassword.checked ? gcd.assetPath + "core/lock-24px.webp" : gcd.assetPath + "core/lock-open-24px.webp" source: radioUsePassword.checked ? gcd.assetPath + "core/lock-24px.webp" : gcd.assetPath + "core/lock_open-24px.webp"
height: 40 * gcd.themeScale height: Theme.uiIconSizeS
width: height width: height
} }
} }
Opaque.ScalingLabel { Opaque.Label {
id: nameLabel id: nameLabel
visible: mode == mode_edit visible: mode == mode_edit
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
size: Theme.primaryTextSize size: Theme.textMediumPt
bold: true bold: true
} }
// spacing // spacing
Rectangle { Rectangle {
visible: mode == mode_edit visible: mode == mode_edit
height: 10 * gcd.themeScale height: Theme.paddingSmall
width: 100 width: 100
color: Theme.backgroundPaneColor color: Theme.backgroundPaneColor
} }
Opaque.ScalingLabel { Opaque.Label {
visible: mode == mode_edit visible: mode == mode_edit
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
size: Theme.secondaryTextSize size: Theme.textSmallPt
//: Send this address to peers you want to connect with //: Send this address to peers you want to connect with
text: qsTr("profile-oniblon-label") text: qsTr("profile-oniblon-label")
@ -174,7 +172,7 @@ Opaque.Flickable {
visible: mode == mode_edit visible: mode == mode_edit
readOnly: true readOnly: true
width: leftCol.width - (40*gcd.themeScale) width: leftCol.width - (2 * Theme.paddingStandard)
button_text: qsTr("copy-btn") button_text: qsTr("copy-btn")
dropShadowColor: Theme.dropShadowPaneColor dropShadowColor: Theme.dropShadowPaneColor
@ -189,7 +187,7 @@ Opaque.Flickable {
// spacing // spacing
Rectangle { Rectangle {
visible: radioNoPassword.checked visible: radioNoPassword.checked
height: 30 * gcd.themeScale height: Theme.paddingSmall
width: 100 width: 100
color: Theme.backgroundPaneColor color: Theme.backgroundPaneColor
} }
@ -200,10 +198,10 @@ Opaque.Flickable {
color: leftCol.color color: leftCol.color
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Opaque.ScalingLabel { Opaque.Label {
id: noPasswordLabel id: noPasswordLabel
width: parent.width width: parent.width
size: Theme.secondaryTextSize size: Theme.textSmallPt
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Not using a password on this account means that all data stored locally will not be encrypted //: Not using a password on this account means that all data stored locally will not be encrypted
@ -214,7 +212,7 @@ Opaque.Flickable {
// spacing // spacing
Rectangle { Rectangle {
height: 30 * gcd.themeScale height: Theme.paddingSmall
width: 100 width: 100
color: Theme.backgroundPaneColor color: Theme.backgroundPaneColor
@ -231,7 +229,7 @@ Opaque.Flickable {
Rectangle { Rectangle {
id: rightCol id: rightCol
color: Theme.backgroundPaneColor color: Theme.backgroundPaneColor
anchors.topMargin: 80 * gcd.themeScale anchors.topMargin: Theme.paddingLarge
height: rightContents.height height: rightContents.height
implicitHeight: height implicitHeight: height
Layout.fillWidth: true Layout.fillWidth: true
@ -245,14 +243,14 @@ Opaque.Flickable {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
Layout.alignment : Qt.AlignHCenter + Qt.AlignTop Layout.alignment : Qt.AlignHCenter + Qt.AlignTop
width: 400 * gcd.themeScale spacing: Theme.paddingSmall
spacing: 40 * gcd.themeScale padding: Theme.paddingStandard
Opaque.UnderlineTextField { Opaque.UnderlineTextField {
id: txtProfileName id: txtProfileName
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Your Display Name //: Your Display Name
@ -263,7 +261,7 @@ Opaque.Flickable {
RowLayout { RowLayout {
visible: (mode == mode_add) || (tag == "v1-defaultPassword") visible: (mode == mode_add) || (tag == "v1-defaultPassword")
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//id: radioButtons //id: radioButtons
@ -296,7 +294,7 @@ Opaque.Flickable {
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Current Password //: Current Password
@ -312,7 +310,7 @@ Opaque.Flickable {
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
echoMode: TextInput.Password echoMode: TextInput.Password
@ -332,7 +330,7 @@ Opaque.Flickable {
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: parent.width - (40*gcd.themeScale) width: parent.width - (2 * Theme.paddingStandard)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
//: Reenter password //: Reenter password
@ -342,10 +340,10 @@ Opaque.Flickable {
} }
Opaque.ScalingLabel { Opaque.Label {
id: passwordErrorLabel id: passwordErrorLabel
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
size: Theme.secondaryTextSize size: Theme.textSmallPt
//: Passwords do not match //: Passwords do not match
text: txtPassword1.text.length == 0 ? qsTr("password-error-empty") : qsTr("password-error-match") text: txtPassword1.text.length == 0 ? qsTr("password-error-empty") : qsTr("password-error-match")
@ -353,10 +351,10 @@ Opaque.Flickable {
color: Theme.textfieldErrorColor color: Theme.textfieldErrorColor
} }
Opaque.ScalingLabel { Opaque.Label {
id: passwordChangeErrorLabel id: passwordChangeErrorLabel
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
size: Theme.secondaryTextSize size: Theme.textSmallPt
//: Error changing password: Supplied password rejected //: Error changing password: Supplied password rejected
text: qsTr("password-change-error") text: qsTr("password-change-error")
@ -366,7 +364,6 @@ Opaque.Flickable {
Opaque.Button { // ADD or SAVE button Opaque.Button { // ADD or SAVE button
height: Theme.primaryTextSize * 1.5
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
@ -412,13 +409,13 @@ Opaque.Flickable {
Opaque.Button { Opaque.Button {
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
//: Delete Profile //: Delete Profile
text: qsTr("delete-profile-btn") text: qsTr("delete-profile-btn")
//icon: "regular/trash-alt" //icon: "regular/trash-alt"
visible: mode == mode_edit visible: mode == mode_edit
height: Theme.primaryTextSize * 1.5 //height: Theme.primaryTextSize * 1.5
onClicked: { onClicked: {
@ -426,12 +423,12 @@ Opaque.Flickable {
} }
} }
Opaque.ScalingLabel { Opaque.Label {
id: deleteConfirmLabel id: deleteConfirmLabel
size: Theme.secondaryTextSize size: Theme.textSmallPt
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
//: Type DELETE to confirm //: Type DELETE to confirm
text: qsTr("delete-confirm-label")+ ":" text: qsTr("delete-confirm-label")+ ":"
@ -443,9 +440,9 @@ Opaque.Flickable {
visible: deleting visible: deleting
backgroundColor: Theme.backgroundPaneColor backgroundColor: Theme.backgroundPaneColor
width: 300 * gcd.themeScale width: parent.width - (2 * Theme.paddingStandard)
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
placeholderText: qsTr("delete-confirm-label") placeholderText: qsTr("delete-confirm-label")
} }
@ -455,7 +452,7 @@ Opaque.Flickable {
height: Theme.primaryTextSize * 1.5 height: Theme.primaryTextSize * 1.5
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 20 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
//: Really Delete Profile //: Really Delete Profile
text: qsTr("delete-profile-confirm-btn") text: qsTr("delete-profile-confirm-btn")
@ -478,7 +475,7 @@ Opaque.Flickable {
// spacing // spacing
Rectangle { Rectangle {
height: 30 * gcd.themeScale height: Theme.paddingSmall
width: 100 width: 100
color: Theme.backgroundPaneColor color: Theme.backgroundPaneColor
} }

View File

@ -22,31 +22,23 @@ ColumnLayout {
id: thecol id: thecol
anchors.fill: parent anchors.fill: parent
spacing: 20 * gcd.themeScale spacing: Theme.paddingSmall
Opaque.ScalingLabel { Opaque.Label {
Layout.alignment: Qt.AlignHCenter horizontalAlignment: Text.AlignHCenter
wrapMode: TextEdit.Wrap width: parent.width
size: Theme.primaryTextSize Layout.fillWidth: true
bold: true
font.family: Fonts.applicationFontRegular.name
font.styleName: "Bold"
//: Enter a password to view your profiles //: Enter a password to view your profiles
text: qsTr("enter-profile-password") text: qsTr("enter-profile-password")
} }
RowLayout { RowLayout {
width: 700 * gcd.themeScale
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Opaque.UnderlineTextField { Opaque.UnderlineTextField {
id: txtPassword id: txtPassword
//anchors.horizontalCenter: parent.horizontalCenter
//Layout.fillWidth: true
Layout.maximumWidth: 450 * gcd.themeScale
Layout.minimumWidth: 450 * gcd.themeScale
Layout.rightMargin: 40 Layout.rightMargin: 40
Layout.leftMargin: 40 Layout.leftMargin: 40
placeholderText: qsTr("password") placeholderText: qsTr("password")
@ -56,8 +48,6 @@ ColumnLayout {
Opaque.Button { Opaque.Button {
id: "button" id: "button"
width: 100 * gcd.themeScale
height: Theme.primaryTextSize * gcd.themeScale
//: Unlock //: Unlock
text: qsTr("unlock") text: qsTr("unlock")
@ -70,7 +60,7 @@ ColumnLayout {
} }
} }
Opaque.ScalingLabel { Opaque.Label {
id: error id: error
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
color: Theme.textfieldErrorColor color: Theme.textfieldErrorColor
@ -92,7 +82,7 @@ ColumnLayout {
// space // space
Rectangle { Rectangle {
width: 1 width: 1
height: 20 * gcd.themeScale height: Theme.paddingStandard
color: Theme.backgroundMainColor color: Theme.backgroundMainColor
} }
@ -106,14 +96,13 @@ ColumnLayout {
Layout.fillHeight: true Layout.fillHeight: true
Layout.fillWidth: true Layout.fillWidth: true
Opaque.ScalingLabel { Opaque.Label {
id: profileLabel id: profileLabel
size: Theme.subHeaderSize size: Theme.textSubHeaderPt
font.family: Fonts.applicationFontRegular.name bold: true
font.styleName: "Bold"
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 25 * gcd.themeScale anchors.leftMargin: Theme.paddingStandard
bottomPadding: 10 * gcd.themeScale bottomPadding: Theme.paddingSmall
//: Your Profiles //: Your Profiles
text: qsTr("your-profiles") text: qsTr("your-profiles")
@ -135,14 +124,13 @@ ColumnLayout {
Layout.fillHeight: true Layout.fillHeight: true
Layout.fillWidth: true Layout.fillWidth: true
Opaque.ScalingLabel { Opaque.Label {
id: serverLabel id: serverLabel
size: Theme.subHeaderSize size: Theme.textSubHeaderPt
font.family: Fonts.applicationFontRegular.name bold: true
font.styleName: "Bold"
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 25 * gcd.themeScale anchors.leftMargin: Theme.paddingStandard
bottomPadding: 10 * gcd.themeScale bottomPadding: Theme.paddingSmall
//: Your Profiles //: Your Profiles
text: qsTr("your-servers") text: qsTr("your-servers")

View File

@ -39,9 +39,9 @@ Opaque.SettingsList { // Add Profile Pane
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
width: 700 width: 700
Opaque.ScalingLabel { Opaque.Label {
text: server_name text: server_name
size: 16 header: true
} }
Opaque.Setting { Opaque.Setting {
@ -51,9 +51,9 @@ Opaque.SettingsList { // Add Profile Pane
field: Opaque.ToggleSwitch { field: Opaque.ToggleSwitch {
anchors.right: parent.right anchors.right: parent.right
isToggled: serverAddEditPane.server_available checked: serverAddEditPane.server_available
onToggled: function() { onCheckedChanged: function() {
serverAddEditPane.server_available = !serverAddEditPane.server_available serverAddEditPane.server_available = checked
if (serverAddEditPane.server_available) { if (serverAddEditPane.server_available) {
gcd.startServer(serverAddEditPane.server_name) gcd.startServer(serverAddEditPane.server_name)
} else { } else {
@ -63,21 +63,15 @@ Opaque.SettingsList { // Add Profile Pane
} }
} }
Opaque.Setting { Opaque.Setting {
label: qsTr("server-autostart") label: qsTr("server-autostart")
field: Opaque.ToggleSwitch { field: Opaque.ToggleSwitch {
anchors.right: parent.right anchors.right: parent.right
isToggled: serverAddEditPane.autostart_server checked: serverAddEditPane.autostart_server
onToggled: function() { onCheckedChanged: function() {
serverAddEditPane.autostart_server = !serverAddEditPane.autostart_server serverAddEditPane.autostart_server = checked
gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server) gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server)
} }
} }

View File

@ -14,9 +14,8 @@ import "../const"
Opaque.SettingsList { // groupSettingsPane Opaque.SettingsList { // groupSettingsPane
id: gsp id: gsp
anchors.fill: parent
property string serverName property string serverName
property color backgroundColor: parent.color property color backgroundColor: "red"//parent.color??
property bool connected: false property bool connected: false
property bool synced: false property bool synced: false
@ -66,11 +65,6 @@ Opaque.SettingsList { // groupSettingsPane
onSupplyServerSettings: function(server, key_names, keys) { onSupplyServerSettings: function(server, key_names, keys) {
gsp.serverName = server; gsp.serverName = server;
toolbar.setTitle(qsTr("server-settings")); 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 { Column {
id: settings id: settings
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
width:parent.width -20 width: parent.width - 20
parent:root.contentItem parent: root.contentItem
padding: Theme.paddingStandard
spacing: Theme.paddingSmall
Opaque.Setting { Opaque.Setting {
@ -66,37 +68,42 @@ Opaque.SettingsList { // settingsPane
//: Interface Zoom //: Interface Zoom
label: qsTr("setting-interface-zoom") label: qsTr("setting-interface-zoom")
field: Row { field: Column {
spacing: 10 spacing: 10
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Opaque.ScalingLabel {
text: qsTr("small-text-label")
size: 8
}
Opaque.Slider { Opaque.Slider {
id: zoomSlider id: zoomSlider
from: 0.5 from: 0
to: 4.0 to: 4
value: gcd.themeScale value: gcd.scaleFactor
live: false
snapMode: Slider.SnapAlways snapMode: Slider.SnapAlways
stepSize: 0.25 stepSize: 1
onValueChanged: { onValueChanged: {
gcd.themeScale = zoomSlider.value windowItem.width = windowItem.width
gcd.scaleFactor = zoomSlider.value
} }
width: 200 width: 200
} }
Row {
Opaque.ScalingLabel { Opaque.Label {
anchors.verticalCenter: parent.verticalCenter //: small text
wrapMode: TextEdit.Wrap text: qsTr("small-text-label") + " "
text: qsTr("large-text-label") size: Theme.textSmallPt
size: 20 }
} 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 { field: Opaque.ToggleSwitch {
//: Theme anchors.right: parent.right
label: qsTr("experiments-enabled") id: experimentsEnabledToggle
checked: gcd.experimentsEnabled
onCheckedChanged: gcd.experimentsEnabled = checked
}
}
field: Opaque.ToggleSwitch { Widgets.ExperimentToggle {
anchors.right: parent.right name: "servers_enabled"
id: experimentsEnabledToggle experiment_id: "tapir-servers-experiment"
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 { Widgets.ExperimentToggle {
name: "servers_enabled" name: "groups_enabled"
experiment_id: "tapir-servers-experiment" experiment_id: "tapir-groups-experiment"
} }
Widgets.ExperimentToggle { Opaque.Collapser {
name: "groups_enabled" textShow: qsTr("Text magnification reference")
experiment_id: "tapir-groups-experiment" textHide: textShow
}
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.ScalingLabel { Opaque.Label {
id: builddateLabel text: "compact header"
anchors.horizontalCenter: parent.horizontalCenter size: Theme.textHeaderPtBase[0]
//: Built on: %2 bold: true
text: qsTr("builddate %2").arg(gcd.buildDate) }
} 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 { Connections {
target: gcd target: gcd
onSupplySettings: function(locale, zoom, theme) { onSupplySettings: function(locale, scale, theme) {
for (var i=0; i < cbLangItems.count; i++) { for (var i=0; i < cbLangItems.count; i++) {
var item = cbLangItems.get(i) var item = cbLangItems.get(i)
if (item["value"] == locale) { if (item["value"] == locale) {

View File

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

View File

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

View File

@ -34,11 +34,11 @@ Opaque.PortraitRow {
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: 1 * gcd.themeScale anchors.leftMargin: Theme.paddingMinimal
anchors.rightMargin: 25 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
height: parent.height * .1 height: parent.height * .1
width: 100 * gcd.themeScale width: 50 + 20 * Theme.scale
indeterminate: true indeterminate: true
@ -54,14 +54,14 @@ Opaque.PortraitRow {
size: parent.height/4 size: parent.height/4
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 25 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
anchors.leftMargin: 1 * gcd.themeScale anchors.leftMargin: Theme.paddingMinimal
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
content: Label { content: Label {
id: lblUnread id: lblUnread
color: Theme.portraitContactBadgeTextColor color: Theme.portraitContactBadgeTextColor
font.pixelSize: Theme.badgeTextSize * gcd.themeScale font.pointSize: Theme.textBadgeLabelPt
font.weight: Font.Bold font.weight: Font.Bold
text: badge > 99 ? "99+" : badge text: badge > 99 ? "99+" : badge
} }
@ -71,16 +71,16 @@ Opaque.PortraitRow {
visible: authorization == Const.auth_unknown visible: authorization == Const.auth_unknown
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: 1 * gcd.themeScale anchors.leftMargin: Theme.paddingMinimal
anchors.rightMargin: 25 * gcd.themeScale anchors.rightMargin: Theme.paddingStandard
spacing: 16 * gcd.themeScale spacing: Theme.paddingSmall
Opaque.Icon { Opaque.Icon {
source: gcd.assetPath + "core/favorite-24px.webp" source: gcd.assetPath + "core/favorite-24px.webp"
iconColor: Theme.toolbarIconColor iconColor: Theme.toolbarIconColor
backgroundColor: rowColor backgroundColor: rowColor
height: 18 * gcd.themeScale height: Theme.uiIconSizeS
width: 18 * gcd.themeScale width: Theme.uiIconSizeS
onClicked: { gcd.setPeerAuthorization(handle, Const.auth_approved)} onClicked: { gcd.setPeerAuthorization(handle, Const.auth_approved)}
} }
@ -89,10 +89,10 @@ Opaque.PortraitRow {
source: gcd.assetPath + "core/delete-24px.webp" source: gcd.assetPath + "core/delete-24px.webp"
iconColor: Theme.toolbarIconColor iconColor: Theme.toolbarIconColor
backgroundColor: rowColor backgroundColor: rowColor
height: 18 * gcd.themeScale height: Theme.uiIconSizeS
width: 18 * gcd.themeScale 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 import "../utils.js" as Utils
Opaque.Setting { Opaque.Setting {
//: Theme
id: experiment id: experiment
property string name; property string name
property string experiment_id; property string experiment_id
visible: gcd.experimentsEnabled visible: gcd.experimentsEnabled
//: [todo]
label: qsTr(name) label: qsTr(name)
field: Opaque.ToggleSwitch { field: Opaque.ToggleSwitch {
anchors.right: parent.right anchors.right: parent.right
id: expToggle id: expToggle
isToggled: Utils.checkMap(gcd.experiments, experiment.experiment_id) checked: Utils.checkMap(gcd.experiments, experiment.experiment_id)
onToggled: function() { onCheckedChanged: function() {
let experimentsMap = Utils.buildMap(gcd.experiments); let experimentsMap = Utils.buildMap(gcd.experiments)
experimentsMap[experiment.experiment_id] = expToggle.isToggled ? false : true; experimentsMap[experiment.experiment_id] = checked
gcd.experiments = experimentsMap; gcd.experiments = experimentsMap
} }
} }
} }

View File

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

View File

@ -58,7 +58,7 @@ ColumnLayout {
Opaque.EmojiDrawer { Opaque.EmojiDrawer {
id: emojiDrawer id: emojiDrawer
Layout.fillWidth: true Layout.fillWidth: true
size: 24 * gcd.themeScale size: Theme.uiIconSizeM
onPicked: function(shortcode) { onPicked: function(shortcode) {
if (!txtMessage.enabled) return if (!txtMessage.enabled) return
@ -71,11 +71,11 @@ ColumnLayout {
Layout.fillWidth: true 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 implicitHeight: height
color: Theme.dividerColor color: Theme.dividerColor
Opaque.ScalingLabel { Opaque.Label {
id: statusText id: statusText
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -85,9 +85,8 @@ ColumnLayout {
wrapMode: Text.NoWrap wrapMode: Text.NoWrap
text: "" text: ""
visible: text != "" visible: text != ""
size: Theme.chatMetaTextSize size: Theme.textSmallPt
font.family: Fonts.applicationFontRegular.name bold: true
font.styleName: "Bold"
} }
} }
@ -98,8 +97,8 @@ ColumnLayout {
Rectangle { // MESSAGE ENTRY TEXTFIELD Rectangle { // MESSAGE ENTRY TEXTFIELD
id: rectMessage id: rectMessage
Layout.fillWidth: true Layout.fillWidth: true
Layout.minimumHeight: 120 * gcd.themeScale Layout.minimumHeight: 60 + 20 * Theme.scale
Layout.maximumHeight: 120 * gcd.themeScale Layout.maximumHeight: 60 + 20 * Theme.scale
color: Theme.backgroundMainColor color: Theme.backgroundMainColor
Opaque.Flickable { Opaque.Flickable {
@ -110,9 +109,9 @@ ColumnLayout {
TextArea { TextArea {
id: txtMessage id: txtMessage
font.pixelSize: Theme.chatSize * gcd.themeScale font.pointSize: Theme.chatSize
text: "" text: ""
padding: 6 * gcd.themeScale padding: Theme.paddingSmall
wrapMode: TextEdit.Wrap wrapMode: TextEdit.Wrap
textFormat: Text.PlainText textFormat: Text.PlainText
width: rectMessage.width width: rectMessage.width
@ -153,7 +152,7 @@ ColumnLayout {
ColumnLayout { ColumnLayout {
id: colRight id: colRight
spacing: 0 spacing: 0
width: 100 * gcd.themeScale width: Theme.uiIconSizeM + 2 * Theme.paddingStandard
Layout.minimumWidth: width Layout.minimumWidth: width
Layout.preferredWidth: width Layout.preferredWidth: width
@ -163,9 +162,8 @@ ColumnLayout {
id: btnSend id: btnSend
source: gcd.assetPath + "core/send-24px.webp" source: gcd.assetPath + "core/send-24px.webp"
width: colRight.width width: colRight.width
// floor(...) needed or else send icon won't scale properly(?!?) height: Theme.uiIconSizeM + 2 * Theme.paddingMinimal
height: Math.floor(50 * gcd.themeScale) size: Theme.uiIconSizeM
size: 36 * gcd.themeScale
sourceWidth: size sourceWidth: size
sourceHeight: size sourceHeight: size
@ -192,9 +190,9 @@ ColumnLayout {
id: btnEmoji id: btnEmoji
source: gcd.assetPath + "core/mood-24px.webp" source: gcd.assetPath + "core/mood-24px.webp"
size: 25 size: Theme.uiIconSizeS
height: 36 * gcd.themeScale height: Theme.uiIconSizeS + 2 * Theme.paddingMinimal
width: 48 * gcd.themeScale width: colRight.width / 2
backgroundColor: enabled ? Theme.altButtonColor : Theme.altButtonDisabledColor backgroundColor: enabled ? Theme.altButtonColor : Theme.altButtonDisabledColor
hilightBackgroundColor: backgroundColor hilightBackgroundColor: backgroundColor
@ -207,9 +205,9 @@ ColumnLayout {
id: btnAttach id: btnAttach
source: gcd.assetPath + "core/attach_file-24px.webp" source: gcd.assetPath + "core/attach_file-24px.webp"
size: 25 size: Theme.uiIconSizeS
height: 36 * gcd.themeScale height: Theme.uiIconSizeS + 2 * Theme.paddingMinimal
width: 48 * gcd.themeScale width: colRight.width / 2
backgroundColor: enabled ? Theme.altButtonColor : Theme.altButtonDisabledColor backgroundColor: enabled ? Theme.altButtonColor : Theme.altButtonDisabledColor
hilightBackgroundColor: backgroundColor hilightBackgroundColor: backgroundColor

View File

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

View File

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

View File

@ -10,14 +10,6 @@ import "../opaque/theme"
ColumnLayout { ColumnLayout {
id: root id: root
MouseArea {
anchors.fill: parent
onClicked: {
forceActiveFocus()
}
}
Opaque.Flickable { // Profile List Opaque.Flickable { // Profile List
id: sv id: sv
Layout.minimumHeight: 100 Layout.minimumHeight: 100
@ -122,15 +114,13 @@ ColumnLayout {
badgeVisible: true badgeVisible: true
badgeContent: Image { badgeContent: Image {
source: gcd.assetPath + "core/fontawesome/solid/plus.webp" source: gcd.assetPath + "core/fontawesome/solid/plus.webp"
height: Theme.badgeTextSize * gcd.themeScale height: Theme.uiIconSizeS
width: height width: height
} }
badgeColor: Theme.portraitProfileBadgeColor badgeColor: Theme.portraitProfileBadgeColor
onClicked: function(handle) { profileAddEditPane.reset(); parentStack.pane = parentStack.addEditProfilePane } onClicked: function(handle) { profileAddEditPane.reset(); parentStack.pane = parentStack.addEditProfilePane }
} }
} }
} }
} }

View File

@ -36,7 +36,7 @@ RowLayout {
badgeContent: Opaque.Icon {// Profle Type badgeContent: Opaque.Icon {// Profle Type
id: profiletype id: profiletype
source: tag == "v1-userPassword" ? gcd.assetPath + "core/lock-24px.webp" : gcd.assetPath + "core/lock_open-24px.webp" 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 width: height
iconColor: Theme.defaultButtonTextColor iconColor: Theme.defaultButtonTextColor
@ -104,19 +104,11 @@ RowLayout {
hilightBackgroundColor: Theme.backgroundHilightElementColor hilightBackgroundColor: Theme.backgroundHilightElementColor
iconColor: Theme.altTextColor iconColor: Theme.altTextColor
anchors.verticalCenter: parent.verticalCenter
// Layout.alignment: Qt.AlignVCenter
height: root.height / 2 height: root.height / 2
width: root.height / 2 width: root.height / 2
size: root.height / 2 size: root.height / 2
onClicked: editClicked(handle, displayName, tag, image) onClicked: editClicked(handle, displayName, tag, image)
} }
} }

View File

@ -10,14 +10,6 @@ import "../opaque/theme"
ColumnLayout { ColumnLayout {
id: root id: root
MouseArea {
anchors.fill: parent
onClicked: {
forceActiveFocus()
}
}
Opaque.Flickable { // Profile List Opaque.Flickable { // Profile List
id: sv id: sv
Layout.minimumHeight: 100 Layout.minimumHeight: 100
@ -71,10 +63,6 @@ ColumnLayout {
_messages: messages _messages: messages
}) })
} }
onResetServerList: function() {
serversModel.clear()
}
} }
ListModel { // Profile OBJECTS ARE STORED HERE ... ListModel { // Profile OBJECTS ARE STORED HERE ...
@ -116,7 +104,7 @@ ColumnLayout {
badgeVisible: true badgeVisible: true
badgeContent: Image { badgeContent: Image {
source: gcd.assetPath + "core/fontawesome/solid/plus.webp" source: gcd.assetPath + "core/fontawesome/solid/plus.webp"
height: Theme.badgeTextSize * gcd.themeScale height: Theme.uiIconSizeS
width: height width: height
} }
badgeColor: Theme.defaultButtonColor badgeColor: Theme.defaultButtonColor

View File

@ -12,8 +12,8 @@ import "../const"
Rectangle { Rectangle {
id: statusbar id: statusbar
readonly property int openHeight: 25 readonly property int openHeight: Theme.uiIconSizeS + 2 * Theme.paddingMinimal
readonly property int hideHeight: 10 readonly property int hideHeight: Theme.paddingClickTarget
property bool isHover: false property bool isHover: false
@ -27,9 +27,9 @@ Rectangle {
opacity: 0 opacity: 0
anchors.right: networkStatus.left anchors.right: networkStatus.left
anchors.verticalCenter: parent.verticalCenter 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 { Opaque.Icon {
@ -37,9 +37,9 @@ Rectangle {
opacity: 0 opacity: 0
anchors.right: connectionStatus.left anchors.right: connectionStatus.left
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 5 * gcd.themeScale anchors.rightMargin: Theme.paddingMinimal
height: 18 height: Theme.uiIconSizeS
width: 18 width: Theme.uiIconSizeS
} }
@ -48,9 +48,9 @@ Rectangle {
opacity: 0 opacity: 0
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.rightMargin: 10 * gcd.themeScale anchors.rightMargin: Theme.paddingSmall
height: 18 * gcd.themeScale height: Theme.uiIconSizeS
width: 18 * gcd.themeScale width: Theme.uiIconSizeS
} }
function changeStatus() { function changeStatus() {