new scaling system pass one
the build was successful
Details
the build was successful
Details
This commit is contained in:
parent
dfb12a2ab0
commit
290b0b26db
11
go/ui/gcd.go
11
go/ui/gcd.go
|
@ -42,7 +42,12 @@ type GrandCentralDispatcher struct {
|
||||||
_ int `property:"torStatus"`
|
_ int `property:"torStatus"`
|
||||||
_ string `property:"os"`
|
_ string `property:"os"`
|
||||||
_ bool `property:"firstTime"`
|
_ bool `property:"firstTime"`
|
||||||
|
// phasing out themeScale in three steps:
|
||||||
|
// 1 (current): switch labels to themeScaleNew
|
||||||
|
// 2: switch everything else to themeScaleNew
|
||||||
|
// 3: refactor: delete themeScale, rename themeScaleNew -> themeScale
|
||||||
_ float32 `property:"themeScale,auto,changed"`
|
_ float32 `property:"themeScale,auto,changed"`
|
||||||
|
_ int `property:"themeScaleNew,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"`
|
||||||
|
@ -159,6 +164,7 @@ func (this *GrandCentralDispatcher) init() {
|
||||||
this.GlobalSettings, firstTime = ReadGlobalSettings()
|
this.GlobalSettings, firstTime = ReadGlobalSettings()
|
||||||
this.SetFirstTime(firstTime)
|
this.SetFirstTime(firstTime)
|
||||||
this.SetThemeScale(this.GlobalSettings.Zoom)
|
this.SetThemeScale(this.GlobalSettings.Zoom)
|
||||||
|
this.SetThemeScaleNew(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)
|
||||||
|
@ -779,6 +785,11 @@ func (this *GrandCentralDispatcher) themeScaleChanged(newThemeScale float32) {
|
||||||
WriteGlobalSettings(this.GlobalSettings)
|
WriteGlobalSettings(this.GlobalSettings)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *GrandCentralDispatcher) themeScaleNewChanged(newScale int) {
|
||||||
|
this.GlobalSettings.Scale = newScale
|
||||||
|
WriteGlobalSettings(this.GlobalSettings)
|
||||||
|
}
|
||||||
|
|
||||||
// Turn on/off global experiments
|
// Turn on/off global experiments
|
||||||
func (this *GrandCentralDispatcher) experimentsEnabledChanged(enabled bool) {
|
func (this *GrandCentralDispatcher) experimentsEnabledChanged(enabled bool) {
|
||||||
this.GlobalSettings.ExperimentsEnabled = enabled
|
this.GlobalSettings.ExperimentsEnabled = enabled
|
||||||
|
|
|
@ -16,7 +16,8 @@ const GlobalSettingsFilename = "ui.globals"
|
||||||
const saltFile = "SALT"
|
const saltFile = "SALT"
|
||||||
|
|
||||||
type GlobalSettings struct {
|
type GlobalSettings struct {
|
||||||
Zoom float32
|
Zoom float32 // deprecated
|
||||||
|
Scale int // the new hotness
|
||||||
Locale string
|
Locale string
|
||||||
Theme string
|
Theme string
|
||||||
PreviousPid int64
|
PreviousPid int64
|
||||||
|
@ -27,6 +28,7 @@ type GlobalSettings struct {
|
||||||
|
|
||||||
var DefaultGlobalSettings = GlobalSettings{
|
var DefaultGlobalSettings = GlobalSettings{
|
||||||
Zoom: 1.9,
|
Zoom: 1.9,
|
||||||
|
Scale: 2,
|
||||||
Locale: "en",
|
Locale: "en",
|
||||||
Theme: "light",
|
Theme: "light",
|
||||||
PreviousPid: -1,
|
PreviousPid: -1,
|
||||||
|
@ -76,7 +78,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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,19 +122,19 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatOverlay</name>
|
<name>ChatOverlay</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="83"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="75"/>
|
||||||
<source>chat-history-default</source>
|
<source>chat-history-default</source>
|
||||||
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="85"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="77"/>
|
||||||
<source>chat-history-disabled</source>
|
<source>chat-history-disabled</source>
|
||||||
<extracomment>Message history is disabled.</extracomment>
|
<extracomment>Message history is disabled.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="87"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="79"/>
|
||||||
<source>chat-history-enabled</source>
|
<source>chat-history-enabled</source>
|
||||||
<extracomment>Message history is enabled.</extracomment>
|
<extracomment>Message history is enabled.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></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="239"/>
|
<location filename="../qml/widgets/ContactList.qml" line="240"/>
|
||||||
<source>blocked</source>
|
<source>blocked</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -285,18 +285,18 @@
|
||||||
<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="188"/>
|
||||||
<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="188"/>
|
||||||
<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="188"/>
|
||||||
<source>pending-label</source>
|
<source>pending-label</source>
|
||||||
<translation>Bestätigung ausstehend</translation>
|
<translation>Bestätigung ausstehend</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="33"/>
|
||||||
<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="49"/>
|
||||||
<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="75"/>
|
||||||
<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="115"/>
|
||||||
<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="143"/>
|
||||||
<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="60"/>
|
||||||
<source>unlock</source>
|
<source>unlock</source>
|
||||||
<extracomment>Unlock</extracomment>
|
<extracomment>Unlock</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -649,40 +649,47 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/panes/SettingsPane.qml" line="95"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="96"/>
|
||||||
|
<source>medium-text-label</source>
|
||||||
|
<extracomment>medium text</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/panes/SettingsPane.qml" line="101"/>
|
||||||
<source>large-text-label</source>
|
<source>large-text-label</source>
|
||||||
|
<extracomment>large text</extracomment>
|
||||||
<translation>Groß</translation>
|
<translation>Groß</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/panes/SettingsPane.qml" line="103"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
|
||||||
<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="112"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="173"/>
|
||||||
<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="113"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="174"/>
|
||||||
<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="132"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="193"/>
|
||||||
<source>experiments-enabled</source>
|
<source>experiments-enabled</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="162"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="224"/>
|
||||||
<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="169"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="232"/>
|
||||||
<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>
|
||||||
|
@ -693,8 +700,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="72"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="91"/>
|
||||||
<source>small-text-label</source>
|
<source>small-text-label</source>
|
||||||
|
<extracomment>small text</extracomment>
|
||||||
<translation>Klein</translation>
|
<translation>Klein</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -737,7 +745,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>main</name>
|
<name>main</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/main.qml" line="264"/>
|
<location filename="../qml/main.qml" line="265"/>
|
||||||
<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>
|
||||||
|
|
|
@ -135,24 +135,35 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatOverlay</name>
|
<name>ChatOverlay</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="83"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="75"/>
|
||||||
<source>chat-history-default</source>
|
<source>chat-history-default</source>
|
||||||
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
||||||
<translation>Your history with this peer is ephemeral and will not be saved. If you would like to save history, please go to settings and turn it on.</translation>
|
<translation>Your history with this peer is ephemeral and will not be saved. If you would like to save history, please go to settings and turn it on.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="85"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="77"/>
|
||||||
<source>chat-history-disabled</source>
|
<source>chat-history-disabled</source>
|
||||||
<extracomment>Message history is disabled.</extracomment>
|
<extracomment>Message history is disabled.</extracomment>
|
||||||
<translation>Message history is disabled.</translation>
|
<translation>Message history is disabled.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="87"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="79"/>
|
||||||
<source>chat-history-enabled</source>
|
<source>chat-history-enabled</source>
|
||||||
<extracomment>Message history is enabled.</extracomment>
|
<extracomment>Message history is enabled.</extracomment>
|
||||||
<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="239"/>
|
<location filename="../qml/widgets/ContactList.qml" line="240"/>
|
||||||
<source>blocked</source>
|
<source>blocked</source>
|
||||||
<translation>Blocked</translation>
|
<translation>Blocked</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -378,18 +389,18 @@ Right-click to reset.</translation>
|
||||||
<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="188"/>
|
||||||
<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="188"/>
|
||||||
<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="188"/>
|
||||||
<source>pending-label</source>
|
<source>pending-label</source>
|
||||||
<translation>Pending</translation>
|
<translation>Pending</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="33"/>
|
||||||
<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="49"/>
|
||||||
<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="75"/>
|
||||||
<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="115"/>
|
||||||
<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="143"/>
|
||||||
<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="60"/>
|
||||||
<source>unlock</source>
|
<source>unlock</source>
|
||||||
<extracomment>Unlock</extracomment>
|
<extracomment>Unlock</extracomment>
|
||||||
<translation>Unlock</translation>
|
<translation>Unlock</translation>
|
||||||
|
@ -777,34 +788,41 @@ Right-click to reset.</translation>
|
||||||
<translation>Zoom level</translation>
|
<translation>Zoom level</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/panes/SettingsPane.qml" line="95"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="96"/>
|
||||||
|
<source>medium-text-label</source>
|
||||||
|
<extracomment>medium text</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/panes/SettingsPane.qml" line="101"/>
|
||||||
<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="103"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
|
||||||
<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="112"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="173"/>
|
||||||
<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="113"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="174"/>
|
||||||
<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="132"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="193"/>
|
||||||
<source>experiments-enabled</source>
|
<source>experiments-enabled</source>
|
||||||
<extracomment>Theme</extracomment>
|
<extracomment>Theme</extracomment>
|
||||||
<translation>Experiments enabled</translation>
|
<translation>Experiments enabled</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/panes/SettingsPane.qml" line="162"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="224"/>
|
||||||
<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>
|
||||||
|
@ -815,7 +833,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="169"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="232"/>
|
||||||
<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>
|
||||||
|
@ -826,8 +844,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="72"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="91"/>
|
||||||
<source>small-text-label</source>
|
<source>small-text-label</source>
|
||||||
|
<extracomment>small text</extracomment>
|
||||||
<translation>Small</translation>
|
<translation>Small</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -878,7 +897,7 @@ Right-click to reset.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>main</name>
|
<name>main</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/main.qml" line="264"/>
|
<location filename="../qml/main.qml" line="265"/>
|
||||||
<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>
|
||||||
|
|
|
@ -122,19 +122,19 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatOverlay</name>
|
<name>ChatOverlay</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="83"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="75"/>
|
||||||
<source>chat-history-default</source>
|
<source>chat-history-default</source>
|
||||||
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="85"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="77"/>
|
||||||
<source>chat-history-disabled</source>
|
<source>chat-history-disabled</source>
|
||||||
<extracomment>Message history is disabled.</extracomment>
|
<extracomment>Message history is disabled.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="87"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="79"/>
|
||||||
<source>chat-history-enabled</source>
|
<source>chat-history-enabled</source>
|
||||||
<extracomment>Message history is enabled.</extracomment>
|
<extracomment>Message history is enabled.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></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="239"/>
|
<location filename="../qml/widgets/ContactList.qml" line="240"/>
|
||||||
<source>blocked</source>
|
<source>blocked</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -285,18 +285,18 @@
|
||||||
<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="188"/>
|
||||||
<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'envoyer ce message</translation>
|
<translation>Impossible d'envoyer ce message</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/widgets/Message.qml" line="189"/>
|
<location filename="../qml/widgets/Message.qml" line="188"/>
|
||||||
<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="188"/>
|
||||||
<source>pending-label</source>
|
<source>pending-label</source>
|
||||||
<translation>En attente</translation>
|
<translation>En attente</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="33"/>
|
||||||
<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="49"/>
|
||||||
<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="75"/>
|
||||||
<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="115"/>
|
||||||
<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="143"/>
|
||||||
<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="60"/>
|
||||||
<source>unlock</source>
|
<source>unlock</source>
|
||||||
<extracomment>Unlock</extracomment>
|
<extracomment>Unlock</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -649,40 +649,47 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/panes/SettingsPane.qml" line="95"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="96"/>
|
||||||
|
<source>medium-text-label</source>
|
||||||
|
<extracomment>medium text</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/panes/SettingsPane.qml" line="101"/>
|
||||||
<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="103"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
|
||||||
<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="112"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="173"/>
|
||||||
<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="113"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="174"/>
|
||||||
<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="132"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="193"/>
|
||||||
<source>experiments-enabled</source>
|
<source>experiments-enabled</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="162"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="224"/>
|
||||||
<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="169"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="232"/>
|
||||||
<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>
|
||||||
|
@ -693,8 +700,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="72"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="91"/>
|
||||||
<source>small-text-label</source>
|
<source>small-text-label</source>
|
||||||
|
<extracomment>small text</extracomment>
|
||||||
<translation>Petit</translation>
|
<translation>Petit</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -737,7 +745,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>main</name>
|
<name>main</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/main.qml" line="264"/>
|
<location filename="../qml/main.qml" line="265"/>
|
||||||
<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>
|
||||||
|
|
|
@ -122,19 +122,19 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatOverlay</name>
|
<name>ChatOverlay</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="83"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="75"/>
|
||||||
<source>chat-history-default</source>
|
<source>chat-history-default</source>
|
||||||
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
<extracomment>This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="85"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="77"/>
|
||||||
<source>chat-history-disabled</source>
|
<source>chat-history-disabled</source>
|
||||||
<extracomment>Message history is disabled.</extracomment>
|
<extracomment>Message history is disabled.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/overlays/ChatOverlay.qml" line="87"/>
|
<location filename="../qml/overlays/ChatOverlay.qml" line="79"/>
|
||||||
<source>chat-history-enabled</source>
|
<source>chat-history-enabled</source>
|
||||||
<extracomment>Message history is enabled.</extracomment>
|
<extracomment>Message history is enabled.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></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="239"/>
|
<location filename="../qml/widgets/ContactList.qml" line="240"/>
|
||||||
<source>blocked</source>
|
<source>blocked</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -285,18 +285,18 @@
|
||||||
<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="188"/>
|
||||||
<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="188"/>
|
||||||
<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="188"/>
|
||||||
<source>pending-label</source>
|
<source>pending-label</source>
|
||||||
<translation>Pendente</translation>
|
<translation>Pendente</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="33"/>
|
||||||
<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="49"/>
|
||||||
<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="75"/>
|
||||||
<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="115"/>
|
||||||
<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="143"/>
|
||||||
<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="60"/>
|
||||||
<source>unlock</source>
|
<source>unlock</source>
|
||||||
<extracomment>Unlock</extracomment>
|
<extracomment>Unlock</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -649,40 +649,47 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/panes/SettingsPane.qml" line="95"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="96"/>
|
||||||
|
<source>medium-text-label</source>
|
||||||
|
<extracomment>medium text</extracomment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../qml/panes/SettingsPane.qml" line="101"/>
|
||||||
<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="103"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="164"/>
|
||||||
<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="112"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="173"/>
|
||||||
<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="113"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="174"/>
|
||||||
<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="132"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="193"/>
|
||||||
<source>experiments-enabled</source>
|
<source>experiments-enabled</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="162"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="224"/>
|
||||||
<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="169"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="232"/>
|
||||||
<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>
|
||||||
|
@ -693,8 +700,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="72"/>
|
<location filename="../qml/panes/SettingsPane.qml" line="91"/>
|
||||||
<source>small-text-label</source>
|
<source>small-text-label</source>
|
||||||
|
<extracomment>small text</extracomment>
|
||||||
<translation>Pequeno</translation>
|
<translation>Pequeno</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -737,7 +745,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>main</name>
|
<name>main</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/main.qml" line="264"/>
|
<location filename="../qml/main.qml" line="265"/>
|
||||||
<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>
|
||||||
|
|
50
qml/main.qml
50
qml/main.qml
|
@ -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"
|
||||||
}
|
}
|
||||||
|
@ -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,10 +189,10 @@ 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
|
||||||
|
@ -230,7 +233,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
|
||||||
|
@ -243,16 +249,27 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PeerSettingsPane { anchors.fill: parent }
|
PeerSettingsPane {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
|
||||||
GroupSettingsPane{ anchors.fill: parent }
|
GroupSettingsPane{
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
|
||||||
AddPeerGroupPane {
|
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 +284,6 @@ ApplicationWindow {
|
||||||
addPeerGroupPaneInstance.reset()
|
addPeerGroupPaneInstance.reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onWidthChanged: {toolbar.titleWidth = width}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -384,19 +399,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 48d9d1d11f4efe612419ea66371c4b147f74667d
|
Subproject commit 6b285e4bbc2a673fceb1c0ffb0065d1dae9c5f8b
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import "../opaque/theme"
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
width:parent.width
|
width: parent.width
|
||||||
id: listpanel
|
id: listpanel
|
||||||
property bool online: false
|
property bool online: false
|
||||||
|
|
||||||
|
@ -25,9 +25,7 @@ ColumnLayout {
|
||||||
Opaque.IconTextField {
|
Opaque.IconTextField {
|
||||||
id: filter
|
id: filter
|
||||||
visible:listpanel.online
|
visible:listpanel.online
|
||||||
anchors.left: parent.left
|
width: parent.width - 2 * Theme.paddingStandard
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.margins: 10
|
|
||||||
|
|
||||||
//: ex: "Find..."
|
//: ex: "Find..."
|
||||||
placeholderText: qsTr("search-list")
|
placeholderText: qsTr("search-list")
|
||||||
|
@ -54,14 +52,14 @@ ColumnLayout {
|
||||||
height: 150
|
height: 150
|
||||||
width: 150
|
width: 150
|
||||||
}
|
}
|
||||||
Label {
|
// Label {
|
||||||
visible:!listpanel.online
|
// visible:!listpanel.online
|
||||||
color: Theme.mainTextColor
|
// color: Theme.mainTextColor
|
||||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
// Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||||
elide: Text.ElideRight
|
// elide: Text.ElideRight
|
||||||
font.pixelSize: 18 * gcd.themeScale
|
// font.pixelSize: 18 * gcd.themeScale
|
||||||
text: qsTr("peer-not-online")
|
// text: qsTr("peer-not-online")
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -212,9 +210,7 @@ ColumnLayout {
|
||||||
button_text: qsTr("add-list-item-btn")
|
button_text: qsTr("add-list-item-btn")
|
||||||
dropShadowColor: Theme.dropShadowPaneColor
|
dropShadowColor: Theme.dropShadowPaneColor
|
||||||
property int nextMessageID: 1
|
property int nextMessageID: 1
|
||||||
anchors.left: parent.left
|
width: parent.width - 2 * Theme.paddingStandard
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.margins: 10
|
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (newlistitem.text != "") {
|
if (newlistitem.text != "") {
|
||||||
|
|
|
@ -26,7 +26,6 @@ Rectangle {
|
||||||
groupNameCreate.text = ""
|
groupNameCreate.text = ""
|
||||||
|
|
||||||
groupAddr.text = ""
|
groupAddr.text = ""
|
||||||
groupNameJoin.text = ""
|
|
||||||
|
|
||||||
onionLabel.text = gcd.selectedProfile
|
onionLabel.text = gcd.selectedProfile
|
||||||
}
|
}
|
||||||
|
@ -37,14 +36,14 @@ Rectangle {
|
||||||
leftPadding: 20 * gcd.themeScale
|
leftPadding: 20 * gcd.themeScale
|
||||||
rightPadding: 20 * gcd.themeScale
|
rightPadding: 20 * gcd.themeScale
|
||||||
|
|
||||||
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
|
||||||
|
@ -147,7 +146,7 @@ Rectangle {
|
||||||
Column {
|
Column {
|
||||||
visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment")
|
visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment")
|
||||||
width: parent.width / 2
|
width: parent.width / 2
|
||||||
Opaque.ScalingLabel {
|
Opaque.Label {
|
||||||
//: Server
|
//: Server
|
||||||
text: qsTr("server")
|
text: qsTr("server")
|
||||||
}
|
}
|
||||||
|
@ -156,7 +155,7 @@ Rectangle {
|
||||||
Column {
|
Column {
|
||||||
visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment")
|
visible: gcd.experimentsEnabled && Utils.checkMap(gcd.experiments, "tapir-groups-experiment")
|
||||||
width: parent.width / 2
|
width: parent.width / 2
|
||||||
Opaque.ScalingLabel {
|
Opaque.Label {
|
||||||
//: Invitation
|
//: Invitation
|
||||||
text: qsTr("invitation")
|
text: qsTr("invitation")
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,7 @@ Opaque.SettingsList { // groupSettingsPane
|
||||||
}
|
}
|
||||||
|
|
||||||
Opaque.Setting {
|
Opaque.Setting {
|
||||||
property color backgroundColor: parent.color
|
property color backgroundColor: "red"//parent.color
|
||||||
inline: true
|
inline: true
|
||||||
label: qsTr("server-info")
|
label: qsTr("server-info")
|
||||||
field: Column {
|
field: Column {
|
||||||
|
@ -86,7 +85,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 +103,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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,23 @@ ColumnLayout {
|
||||||
|
|
||||||
|
|
||||||
ChatOverlay { //0
|
ChatOverlay { //0
|
||||||
Layout.maximumHeight: overlayStack.height
|
// Layout.maximumHeight: overlayStack.height
|
||||||
Layout.maximumWidth: overlayStack.width
|
// Layout.maximumWidth: overlayStack.width
|
||||||
}
|
}
|
||||||
|
|
||||||
ListOverlay{ //1
|
ListOverlay{ //1
|
||||||
Layout.maximumHeight: overlayStack.height
|
// Layout.maximumHeight: overlayStack.height
|
||||||
Layout.maximumWidth: overlayStack.width
|
// Layout.maximumWidth: overlayStack.width
|
||||||
}
|
}
|
||||||
|
|
||||||
BulletinOverlay{ //2
|
BulletinOverlay{ //2
|
||||||
Layout.maximumHeight: overlayStack.height
|
// Layout.maximumHeight: overlayStack.height
|
||||||
Layout.maximumWidth: overlayStack.width
|
// Layout.maximumWidth: overlayStack.width
|
||||||
}
|
}
|
||||||
|
|
||||||
MembershipOverlay { //3
|
MembershipOverlay { //3
|
||||||
Layout.maximumHeight: overlayStack.height
|
// Layout.maximumHeight: overlayStack.height
|
||||||
Layout.maximumWidth: overlayStack.width
|
// Layout.maximumWidth: overlayStack.width
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,8 +78,8 @@ 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 (root.authorization == Const.auth_blocked) {
|
||||||
root.authorization = Const.auth_unknown
|
root.authorization = Const.auth_unknown
|
||||||
gcd.setPeerAuthorization(txtOnion.text, Const.auth_unknown)
|
gcd.setPeerAuthorization(txtOnion.text, Const.auth_unknown)
|
||||||
|
|
|
@ -103,9 +103,9 @@ Opaque.Flickable {
|
||||||
width: 400 * gcd.themeScale
|
width: 400 * gcd.themeScale
|
||||||
spacing: 10 * gcd.themeScale
|
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")
|
||||||
|
@ -122,9 +122,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,18 +135,18 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,10 +158,10 @@ Opaque.Flickable {
|
||||||
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")
|
||||||
|
@ -200,10 +199,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
|
||||||
|
@ -342,10 +341,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 +352,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 +365,7 @@ Opaque.Flickable {
|
||||||
|
|
||||||
|
|
||||||
Opaque.Button { // ADD or SAVE button
|
Opaque.Button { // ADD or SAVE button
|
||||||
height: Theme.primaryTextSize * 1.5
|
//height: Theme.primaryTextSize * 1.5
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
|
|
||||||
|
@ -418,7 +417,7 @@ Opaque.Flickable {
|
||||||
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,9 +425,9 @@ 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: 20 * gcd.themeScale
|
||||||
|
|
|
@ -22,30 +22,28 @@ 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
|
//width: 700 * gcd.themeScale
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
|
|
||||||
Opaque.UnderlineTextField {
|
Opaque.UnderlineTextField {
|
||||||
id: txtPassword
|
id: txtPassword
|
||||||
//anchors.horizontalCenter: parent.horizontalCenter
|
//anchors.horizontalCenter: parent.horizontalCenter
|
||||||
//Layout.fillWidth: true
|
//Layout.fillWidth: true
|
||||||
Layout.maximumWidth: 450 * gcd.themeScale
|
//Layout.maximumWidth: 450 * gcd.themeScale
|
||||||
Layout.minimumWidth: 450 * gcd.themeScale
|
//Layout.minimumWidth: 450 * gcd.themeScale
|
||||||
|
|
||||||
Layout.rightMargin: 40
|
Layout.rightMargin: 40
|
||||||
Layout.leftMargin: 40
|
Layout.leftMargin: 40
|
||||||
|
@ -56,8 +54,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 +66,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Opaque.ScalingLabel {
|
Opaque.Label {
|
||||||
id: error
|
id: error
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
color: Theme.textfieldErrorColor
|
color: Theme.textfieldErrorColor
|
||||||
|
@ -106,11 +102,10 @@ 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: 25 * gcd.themeScale
|
||||||
bottomPadding: 10 * gcd.themeScale
|
bottomPadding: 10 * gcd.themeScale
|
||||||
|
@ -135,14 +130,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")
|
||||||
|
|
|
@ -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 = !serverAddEditPane.server_available
|
||||||
if (serverAddEditPane.server_available) {
|
if (serverAddEditPane.server_available) {
|
||||||
gcd.startServer(serverAddEditPane.server_name)
|
gcd.startServer(serverAddEditPane.server_name)
|
||||||
} else {
|
} else {
|
||||||
|
@ -75,9 +75,9 @@ Opaque.SettingsList { // Add Profile Pane
|
||||||
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 = !serverAddEditPane.autostart_server
|
||||||
gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server)
|
gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,11 @@ 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);
|
// console.log("Servers: " + key_names);
|
||||||
for (let i=0; i<key_names.length;i++) {
|
// for (let i=0; i<key_names.length;i++) {
|
||||||
// TODO: Actually do something with these keys
|
// // TODO: Actually do something with these keys
|
||||||
console.log("FOUND SERVER KEY " + key_names[i] + " " + keys[i]);
|
// console.log("FOUND SERVER KEY " + key_names[i] + " " + keys[i]);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
||||||
|
@ -64,37 +66,43 @@ 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.themeScaleNew
|
||||||
live: false
|
|
||||||
snapMode: Slider.SnapAlways
|
snapMode: Slider.SnapAlways
|
||||||
stepSize: 0.25
|
stepSize: 1
|
||||||
|
|
||||||
onValueChanged: {
|
onValueChanged: {
|
||||||
gcd.themeScale = zoomSlider.value
|
windowItem.width = windowItem.width
|
||||||
|
gcd.themeScale = 1.0
|
||||||
|
gcd.themeScaleNew = 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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,50 +133,117 @@ 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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Opaque.ScalingLabel {
|
Opaque.Label {
|
||||||
id: loadingLabel
|
id: loadingLabel
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
anchors.top: splashImage.bottom
|
anchors.top: splashImage.bottom
|
||||||
|
@ -46,8 +46,7 @@ Item {
|
||||||
//: Loading tor...
|
//: Loading tor...
|
||||||
text: qsTr("loading-tor")
|
text: qsTr("loading-tor")
|
||||||
|
|
||||||
size: Theme.secondaryTextSize
|
size: Theme.textSmallPt
|
||||||
color: Theme.mainTextColor
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
|
|
|
@ -14,18 +14,10 @@ ColumnLayout {
|
||||||
property alias dualPane: myprof.dualPane
|
property alias dualPane: myprof.dualPane
|
||||||
property real logscale: 4 * Math.log10(gcd.themeScale + 1)
|
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 +37,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 != "") {
|
||||||
|
@ -234,19 +221,19 @@ ColumnLayout {
|
||||||
bottomPadding: 8 * logscale
|
bottomPadding: 8 * logscale
|
||||||
spacing: 5 * logscale
|
spacing: 5 * logscale
|
||||||
|
|
||||||
Opaque.ScalingLabel {
|
Opaque.Label {
|
||||||
id: blockLbl
|
id: blockLbl
|
||||||
|
|
||||||
text: qsTr("blocked")
|
text: qsTr("blocked")
|
||||||
size: Theme.chatMetaTextSize
|
size: Theme.textSmallPt
|
||||||
color: Theme.portraitBlockedTextColor
|
color: Theme.portraitBlockedTextColor
|
||||||
}
|
}
|
||||||
|
|
||||||
Opaque.ScalingLabel {
|
Opaque.Label {
|
||||||
id: blockBtn
|
id: blockBtn
|
||||||
|
|
||||||
text: blockedToggle.showing ? "▲" : "▼"
|
text: blockedToggle.showing ? "▲" : "▼"
|
||||||
size: Theme.chatMetaTextSize
|
size: Theme.textSmallPt
|
||||||
color: Theme.portraitBlockedTextColor
|
color: Theme.portraitBlockedTextColor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,7 @@ Opaque.PortraitRow {
|
||||||
height: 18 * gcd.themeScale
|
height: 18 * gcd.themeScale
|
||||||
width: 18 * gcd.themeScale
|
width: 18 * gcd.themeScale
|
||||||
|
|
||||||
onClicked: { console.log("approve"); gcd.setPeerAuthorization(handle, Const.auth_blocked)}
|
onClicked: gcd.setPeerAuthorization(handle, Const.auth_blocked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,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
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,7 +111,7 @@ Rectangle {
|
||||||
color: parent.color
|
color: parent.color
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Opaque.Label {
|
||||||
id: handle
|
id: handle
|
||||||
visible: !fromMe && !calendarEvent
|
visible: !fromMe && !calendarEvent
|
||||||
|
|
||||||
|
@ -119,13 +120,12 @@ Rectangle {
|
||||||
color: Theme.messageFromOtherTextColor
|
color: Theme.messageFromOtherTextColor
|
||||||
|
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
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: Theme.paddingSmall
|
||||||
topPadding: 10 * gcd.themeScale
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
|
@ -149,11 +149,11 @@ 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
|
leftPadding: Theme.paddingStandard
|
||||||
font.pixelSize: gcd.themeScale * Theme.chatSize
|
font.pointSize: Theme.textSmallPt
|
||||||
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 +166,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
|
||||||
|
|
|
@ -75,7 +75,7 @@ ColumnLayout {
|
||||||
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"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
@ -129,8 +121,6 @@ ColumnLayout {
|
||||||
|
|
||||||
onClicked: function(handle) { profileAddEditPane.reset(); parentStack.pane = parentStack.addEditProfilePane }
|
onClicked: function(handle) { profileAddEditPane.reset(); parentStack.pane = parentStack.addEditProfilePane }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,7 +104,7 @@ RowLayout {
|
||||||
hilightBackgroundColor: Theme.backgroundHilightElementColor
|
hilightBackgroundColor: Theme.backgroundHilightElementColor
|
||||||
iconColor: Theme.altTextColor
|
iconColor: Theme.altTextColor
|
||||||
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
//anchors.verticalCenter: parent.verticalCenter
|
||||||
// Layout.alignment: Qt.AlignVCenter
|
// Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,9 +114,5 @@ RowLayout {
|
||||||
|
|
||||||
onClicked: editClicked(handle, displayName, tag, image)
|
onClicked: editClicked(handle, displayName, tag, image)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
@ -72,9 +64,9 @@ ColumnLayout {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
onResetServerList: function() {
|
// onResetServerList: function() {
|
||||||
serversModel.clear()
|
// serversModel.clear()
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
ListModel { // Profile OBJECTS ARE STORED HERE ...
|
ListModel { // Profile OBJECTS ARE STORED HERE ...
|
||||||
|
|
Reference in New Issue