D28152: KWinRules KCM Redesign

Nathaniel Graham noreply at phabricator.kde.org
Sat Apr 18 19:05:12 BST 2020


ngraham added inline comments.

INLINE COMMENTS

> OptionsComboBox.qml:61
> +        }
> +        return i18np("1 selected", "%1 selected", selectionCount);
> +    }

Use `%1` instead of the hardcoded number 1 for the singular case (there are languages where e.g. the number 21 uses the singular form)

> OptionsComboBox.qml:68
> +
> +        LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
> +        LayoutMirroring.childrenInherit: true

Is this necessary to manually assign? I thought `LayoutMirroring.enabled` got set automatically?

> OptionsComboBox.qml:108
> +
> +        Component.onCompleted: {
> +            optionsCombo.popup.width = Math.max(implicitWidth, optionsCombo.width, optionsCombo.popup.width);

Can you add a TODO or FIXME comment indicating that this works around https://bugs.kde.org/show_bug.cgi?id=403153?

> OptionsComboBox.qml:113
> +        onFocusChanged: {
> +            if (!focus) popup.close();
> +        }

Add braces, either on the same line, or in the more conventional multi-line style

> RuleItemDelegate.qml:58
> +            horizontalAlignment: Text.AlignLeft
> +            elide: Text.ElideRight
> +        }

elision only works when a label's maximum width is defined; you probably want to set that somehow, or make it not elide

> RulesEditor.qml:84
> +            id: delaySpin
> +            Layout.minimumWidth: Kirigami.Units.gridUnit * 6
> +            from: 0

In English at least, this minimum width isn't high enough to avoid the spinbox getting wider when going from 1 to 2.

> RulesEditor.qml:89
> +                return (value == 0) ? i18n("Instantly")
> +                                    : i18np("After 1 second", "After %1 seconds", value)
> +            }

Same deal for the singular case here; use `%1` instead of `1`

> RulesEditor.qml:137
> +
> +            delegate: Kirigami.AbstractListItem {
> +                id: propertyDelegate

always manually set width to the list view's width on delegates (e.g. `width: overlayModel.width`)

> RulesEditor.qml:148
> +                        Layout.preferredWidth: Kirigami.Units.iconSizes.smallMedium
> +                        Layout.leftMargin: Kirigami.Units.smallSpacing
> +                    }

due to a Qt bug, left and right margins are not reversed in RTL mode. So whenever you set one of those, yo need to explicitly handle the RTL case like this:

  Layout.leftMargin: !LayoutMirroring.enabled? Kirigami.Units.smallSpacing : 0
  Layout.rightMargin: LayoutMirroring.enabled? Kirigami.Units.smallSpacing : 0

(same for all other instances of using left and right margins on an item in a layout)

> RulesEditor.qml:173
> +                    }
> +                    QQC2.ToolButton {
> +                        icon.name: (model.enabled) ? "dialog-ok-apply" : "list-add-symbolic"

Needs to be vertically centered, or else this happens: F8245478: Screenshot_20200418_111722.png <https://phabricator.kde.org/F8245478>

(probably do the same for other items in this rowlayout as right now their being vertically centered is by chance rather than done explicitly)

> RulesEditor.qml:175
> +                        icon.name: (model.enabled) ? "dialog-ok-apply" : "list-add-symbolic"
> +                        opacity: propertyDelegate.hovered ? 1 : 0
> +                        onClicked: propertyDelegate.clicked()

Is there a reason to use `opacity` rather than `visible` here?

> RulesEditor.qml:194
> +            if (sheetOpen) {
> +                searchField.focus = true; // FIXME: It doesn't set the focus to the search field
> +            } else {

This doesn't do what you think it does.

`searchField.focus` doesn't mean, "focus the search field", it means "allow the search field to *become* focused. The property is terribly mis-named. :(

You probably want to set `focus: true` on the search field itself, and do `searchField.forceActiveFocus()` here.

Then again I would imagine that the search field internally has `focus: true` set so setting it again here may be unnecessary.

> iasensio wrote in RulesEditor.qml:93-96
> The spinbox is not editable, I would just copy the default implementation.
> It's also required in this case?

That's correct; it's not required unless the spinbox is editable.

> RulesList.qml:169
> +                        case Qt.Key_Enter:
> +                        case Qt.Key_Return:
> +                            ruleBookItem.focus = true;

Could we handle the tab key here too?

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D28152

To: iasensio, #plasma, #kwin, #vdg
Cc: ngraham, davidedmundson, hchain, broulik, zzag, kwin, dmenig, manueljlin, Orage, cacarry, LeGast00n, The-Feren-OS-Dev, cblack, konkinartem, ian, jguidon, Ghost6, jraleigh, zachus, fbampaloukas, squeakypancakes, alexde, IohannesPetros, GB_2, mkulinski, trickyricky26, ragreen, jackyalcine, iodelay, crozbo, ndavis, bwowk, ZrenBot, firef, alexeymin, skadinna, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, aaronhoneycutt, abetts, sebas, apol, ahiemstra, mbohlender, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwin/attachments/20200418/fa6154c9/attachment-0001.html>


More information about the kwin mailing list