Implement adding new custom push rules
This commit is contained in:
parent
5b296ed6be
commit
f466fe9f08
|
@ -3,7 +3,6 @@
|
|||
- combo box custom item
|
||||
- explain pattern
|
||||
- fix spinbox buttons
|
||||
- way to add new rule
|
||||
- quick room & sender rule changes
|
||||
- config & keybind for global rule disabling
|
||||
- quick settings
|
||||
|
|
|
@ -1822,8 +1822,8 @@ class MatrixClient(nio.AsyncClient):
|
|||
if None not in key:
|
||||
old = self.models[self.user_id, "pushrules"].get(key)
|
||||
|
||||
kind_change = old_kind is not None and old_kind != kind
|
||||
rule_id_change = old_rule_id is not None and old_rule_id != rule_id
|
||||
kind_change = old and old_kind and old_kind != kind
|
||||
rule_id_change = old and old_rule_id and old_rule_id != rule_id
|
||||
explicit_move = move_before_rule_id or move_after_rule_id
|
||||
|
||||
if old and not kind_change and not explicit_move:
|
||||
|
@ -1841,7 +1841,7 @@ class MatrixClient(nio.AsyncClient):
|
|||
rule_id = rule_id,
|
||||
before = move_before_rule_id,
|
||||
after = move_after_rule_id,
|
||||
actions = actions,
|
||||
actions = actions or [],
|
||||
conditions = conditions,
|
||||
pattern = pattern,
|
||||
)
|
||||
|
|
|
@ -68,8 +68,10 @@ HListView {
|
|||
}
|
||||
|
||||
section.property: "kind"
|
||||
section.delegate: HLabel {
|
||||
section.delegate: HRowLayout {
|
||||
width: root.width
|
||||
|
||||
HLabel {
|
||||
padding: theme.spacing
|
||||
font.pixelSize: theme.fontSize.big
|
||||
text:
|
||||
|
@ -78,6 +80,38 @@ HListView {
|
|||
section === "room" ? qsTr("Room rules") :
|
||||
section === "sender" ? qsTr("Sender rules") :
|
||||
qsTr("Low priority general rules")
|
||||
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
PositiveButton {
|
||||
readonly property var newRule: ({
|
||||
id: '[section, ""]',
|
||||
kind: section,
|
||||
rule_id: "",
|
||||
order: 0,
|
||||
default: false,
|
||||
enabled: true,
|
||||
conditions: "[]",
|
||||
pattern: "",
|
||||
actions: "[]",
|
||||
notify: false,
|
||||
highlight: false,
|
||||
bubble: false,
|
||||
sound: false,
|
||||
urgency_hint: false,
|
||||
})
|
||||
|
||||
backgroundColor: "transparent"
|
||||
icon.name: "pushrule-add"
|
||||
iconItem.small: true
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: false
|
||||
onClicked: window.makePopup(
|
||||
"Popups/PushRuleSettingsPopup/PushRuleSettingsPopup.qml",
|
||||
{userId: root.userId, rule: newRule, ruleExists: false},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
delegate: NotificationRuleDelegate {
|
||||
|
|
|
@ -15,6 +15,7 @@ HFlickableColumnPopup {
|
|||
property string userId
|
||||
// A rule item from ModelStore.get(userId, "pushrules")
|
||||
property var rule
|
||||
property bool ruleExists: true
|
||||
|
||||
readonly property bool generalChecked:
|
||||
overrideRadio.checked || underrideRadio.checked
|
||||
|
@ -184,6 +185,7 @@ HFlickableColumnPopup {
|
|||
)
|
||||
|
||||
readonly property bool isCurrent:
|
||||
root.ruleExists &&
|
||||
model.length &&
|
||||
currentIndex === currentPosition &&
|
||||
root.rule.kind === root.checkedKind
|
||||
|
@ -226,6 +228,7 @@ HFlickableColumnPopup {
|
|||
|
||||
label.textFormat: HLabel.StyledText
|
||||
text:
|
||||
root.ruleExists &&
|
||||
model.index === positionCombo.currentPosition &&
|
||||
root.rule.kind === root.checkedKind ?
|
||||
qsTr("Current") :
|
||||
|
|
3
src/icons/thin/pushrule-add.svg
Normal file
3
src/icons/thin/pushrule-add.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 150 B |
Loading…
Reference in New Issue
Block a user