ran quality.sh #363
|
@ -17,28 +17,28 @@ W.Overlay {
|
|||
//horizontalPadding: 15 * gcd.themeScale
|
||||
|
||||
Connections {
|
||||
target: mm
|
||||
target: mm
|
||||
onRowsInserted: {
|
||||
if (messagesListView.atYEnd) thymer.running = true
|
||||
if (messagesListView.atYEnd) thymer.running = true
|
||||
|
||||
//todo: this won't fire for non-active convos
|
||||
windowItem.alert(0)
|
||||
if (gcd.os == "android" && windowItem.activeFocusItem == null) {
|
||||
androidCwtchActivity.notification = "New Content"
|
||||
}
|
||||
}
|
||||
//todo: this won't fire for non-active convos
|
||||
windowItem.alert(0)
|
||||
if (gcd.os == "android" && windowItem.activeFocusItem == null) {
|
||||
androidCwtchActivity.notification = "New Content"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// onRowsInserted is firing after the model is updated but before the delegate is inflated
|
||||
// causing positionViewAtEnd() to scroll to "just above the last message"
|
||||
// so we use this timer to delay scrolling by a few milliseconds
|
||||
// onRowsInserted is firing after the model is updated but before the delegate is inflated
|
||||
// causing positionViewAtEnd() to scroll to "just above the last message"
|
||||
// so we use this timer to delay scrolling by a few milliseconds
|
||||
Timer {
|
||||
id: thymer
|
||||
interval: 30
|
||||
onTriggered: {
|
||||
thymer.running = false
|
||||
messagesListView.positionViewAtEnd()
|
||||
}
|
||||
id: thymer
|
||||
interval: 30
|
||||
onTriggered: {
|
||||
thymer.running = false
|
||||
messagesListView.positionViewAtEnd()
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: ListView {
|
||||
|
@ -76,47 +76,47 @@ W.Overlay {
|
|||
width: messagesListView.width
|
||||
}
|
||||
|
||||
Component {
|
||||
id: sectionHeading
|
||||
Rectangle {// ⟵ outer rect because anchors._Margin isnt supported here
|
||||
// with qt 5.15+ this↓ can be changed to...
|
||||
// required property string section
|
||||
property string txt: section
|
||||
color: Theme.backgroundMainColor
|
||||
width: parent.width
|
||||
height: texmet.height + 6 + 12 * gcd.themeScale
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
Component {
|
||||
id: sectionHeading
|
||||
Rectangle {// ⟵ outer rect because anchors._Margin isnt supported here
|
||||
// with qt 5.15+ this↓ can be changed to...
|
||||
// required property string section
|
||||
property string txt: section
|
||||
color: Theme.backgroundMainColor
|
||||
width: parent.width
|
||||
height: texmet.height + 6 + 12 * gcd.themeScale
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
|
||||
Rectangle {
|
||||
opacity: 1
|
||||
width: texmet.width + radius * 4 + 6
|
||||
height: texmet.height + 6
|
||||
color: Theme.messageFromOtherBackgroundColor
|
||||
radius: texmet.height / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
Rectangle {
|
||||
opacity: 1
|
||||
width: texmet.width + radius * 4 + 6
|
||||
height: texmet.height + 6
|
||||
color: Theme.messageFromOtherBackgroundColor
|
||||
radius: texmet.height / 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
|
||||
Text {
|
||||
id: txtDate
|
||||
// ... and this can be changed to
|
||||
// text: parent.parent.section
|
||||
text: parent.parent.txt
|
||||
font.pixelSize: Theme.chatSize * gcd.themeScale
|
||||
color: Theme.messageFromOtherTextColor
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
Text {
|
||||
id: txtDate
|
||||
// ... and this can be changed to
|
||||
// text: parent.parent.section
|
||||
text: parent.parent.txt
|
||||
font.pixelSize: Theme.chatSize * gcd.themeScale
|
||||
color: Theme.messageFromOtherTextColor
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
TextMetrics {
|
||||
id: texmet
|
||||
text: txtDate.text
|
||||
font.pixelSize: Theme.chatSize * gcd.themeScale
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
TextMetrics {
|
||||
id: texmet
|
||||
text: txtDate.text
|
||||
font.pixelSize: Theme.chatSize * gcd.themeScale
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: gcd
|
||||
|
@ -124,7 +124,7 @@ W.Overlay {
|
|||
onClearMessages: function() {
|
||||
messagesListView.model = null
|
||||
messagesListView.model = mm
|
||||
messagesListView.positionViewAtEnd()
|
||||
messagesListView.positionViewAtEnd()
|
||||
thymer.running = true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,80 +34,80 @@ Opaque.SettingsList { // Add Profile Pane
|
|||
serverAddEditPane.server_messages = server_messages;
|
||||
}
|
||||
|
||||
settings: Column {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: 700
|
||||
|
||||
Opaque.ScalingLabel {
|
||||
text: server_name
|
||||
size: 16
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
label: qsTr("server-availability")
|
||||
|
||||
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
|
||||
isToggled: serverAddEditPane.server_available
|
||||
onToggled: function() {
|
||||
serverAddEditPane.server_available = !serverAddEditPane.server_available
|
||||
if (serverAddEditPane.server_available) {
|
||||
gcd.startServer(serverAddEditPane.server_name)
|
||||
} else {
|
||||
gcd.stopServer(serverAddEditPane.server_name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
label: qsTr("server-autostart")
|
||||
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
|
||||
isToggled: serverAddEditPane.autostart_server
|
||||
onToggled: function() {
|
||||
serverAddEditPane.autostart_server = !serverAddEditPane.autostart_server
|
||||
gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
inline: false
|
||||
label: qsTr("server-num-messages")
|
||||
|
||||
field: Opaque.TextField {
|
||||
id: numMessages
|
||||
readOnly: true
|
||||
text: serverAddEditPane.server_messages;
|
||||
}
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
inline: false
|
||||
label: qsTr("server-key-bundle")
|
||||
|
||||
field: Opaque.ButtonTextField {
|
||||
id: txtServerBundle
|
||||
readOnly: true
|
||||
text: serverAddEditPane.server_bundle;
|
||||
button_text: qsTr("copy-btn")
|
||||
dropShadowColor: Theme.dropShadowPaneColor
|
||||
onClicked: {
|
||||
//: notification: copied to clipboard
|
||||
gcd.popup(qsTr("copied-to-clipboard-notification"))
|
||||
txtServerBundle.selectAll()
|
||||
txtServerBundle.copy()
|
||||
}
|
||||
}
|
||||
}
|
||||
settings: Column {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: 700
|
||||
|
||||
Opaque.ScalingLabel {
|
||||
text: server_name
|
||||
size: 16
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
label: qsTr("server-availability")
|
||||
|
||||
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
|
||||
isToggled: serverAddEditPane.server_available
|
||||
onToggled: function() {
|
||||
serverAddEditPane.server_available = !serverAddEditPane.server_available
|
||||
if (serverAddEditPane.server_available) {
|
||||
gcd.startServer(serverAddEditPane.server_name)
|
||||
} else {
|
||||
gcd.stopServer(serverAddEditPane.server_name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
label: qsTr("server-autostart")
|
||||
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
|
||||
isToggled: serverAddEditPane.autostart_server
|
||||
onToggled: function() {
|
||||
serverAddEditPane.autostart_server = !serverAddEditPane.autostart_server
|
||||
gcd.autostartServer(serverAddEditPane.server_name, serverAddEditPane.autostart_server)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
inline: false
|
||||
label: qsTr("server-num-messages")
|
||||
|
||||
field: Opaque.TextField {
|
||||
id: numMessages
|
||||
readOnly: true
|
||||
text: serverAddEditPane.server_messages;
|
||||
}
|
||||
}
|
||||
|
||||
Opaque.Setting {
|
||||
inline: false
|
||||
label: qsTr("server-key-bundle")
|
||||
|
||||
field: Opaque.ButtonTextField {
|
||||
id: txtServerBundle
|
||||
readOnly: true
|
||||
text: serverAddEditPane.server_bundle;
|
||||
button_text: qsTr("copy-btn")
|
||||
dropShadowColor: Theme.dropShadowPaneColor
|
||||
onClicked: {
|
||||
//: notification: copied to clipboard
|
||||
gcd.popup(qsTr("copied-to-clipboard-notification"))
|
||||
txtServerBundle.selectAll()
|
||||
txtServerBundle.copy()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Connections {
|
||||
target: gcd
|
||||
|
|
|
@ -122,34 +122,34 @@ Opaque.SettingsList { // settingsPane
|
|||
|
||||
// Experimental Gating
|
||||
|
||||
Opaque.Setting {
|
||||
Opaque.Setting {
|
||||
//: Theme
|
||||
label: qsTr("experiments-enabled")
|
||||
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
id: experimentsEnabledToggle
|
||||
isToggled: gcd.experimentsEnabled
|
||||
onToggled: function() {
|
||||
console.log("experiments enabled: " + gcd.experimentsEnabled + " " + experimentsEnabledToggle.isToggled) ;
|
||||
if (gcd.experimentsEnabled == false) {
|
||||
gcd.experimentsEnabled = true;
|
||||
} else {
|
||||
gcd.experimentsEnabled = false;
|
||||
}
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
id: experimentsEnabledToggle
|
||||
isToggled: gcd.experimentsEnabled
|
||||
onToggled: function() {
|
||||
console.log("experiments enabled: " + gcd.experimentsEnabled + " " + experimentsEnabledToggle.isToggled) ;
|
||||
if (gcd.experimentsEnabled == false) {
|
||||
gcd.experimentsEnabled = true;
|
||||
} else {
|
||||
gcd.experimentsEnabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Widgets.ExperimentToggle {
|
||||
name: "servers_enabled"
|
||||
experiment_id: "tapir-servers-experiment"
|
||||
}
|
||||
Widgets.ExperimentToggle {
|
||||
name: "servers_enabled"
|
||||
experiment_id: "tapir-servers-experiment"
|
||||
}
|
||||
|
||||
Widgets.ExperimentToggle {
|
||||
name: "groups_enabled"
|
||||
experiment_id: "tapir-groups-experiment"
|
||||
}
|
||||
Widgets.ExperimentToggle {
|
||||
name: "groups_enabled"
|
||||
experiment_id: "tapir-groups-experiment"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -4,21 +4,21 @@ import "../opaque/theme"
|
|||
import "../utils.js" as Utils
|
||||
|
||||
Opaque.Setting {
|
||||
//: Theme
|
||||
id: experiment
|
||||
property string name;
|
||||
property string experiment_id;
|
||||
visible: gcd.experimentsEnabled
|
||||
label: qsTr(name)
|
||||
//: Theme
|
||||
id: experiment
|
||||
property string name;
|
||||
property string experiment_id;
|
||||
visible: gcd.experimentsEnabled
|
||||
label: qsTr(name)
|
||||
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
id: expToggle
|
||||
isToggled: Utils.checkMap(gcd.experiments, experiment.experiment_id)
|
||||
onToggled: function() {
|
||||
field: Opaque.ToggleSwitch {
|
||||
anchors.right: parent.right
|
||||
id: expToggle
|
||||
isToggled: Utils.checkMap(gcd.experiments, experiment.experiment_id)
|
||||
onToggled: function() {
|
||||
let experimentsMap = Utils.buildMap(gcd.experiments);
|
||||
experimentsMap[experiment.experiment_id] = expToggle.isToggled ? false : true;
|
||||
gcd.experiments = experimentsMap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ ColumnLayout {
|
|||
target: gcd
|
||||
|
||||
onLoaded: function() {
|
||||
gcd.requestServers();
|
||||
gcd.requestServers();
|
||||
}
|
||||
|
||||
onAddServer: function(handle, displayName, image, status, autostart, bundle, messages, key_types, keys) {
|
||||
|
|
Reference in New Issue