mirror of
https://gitlab.gnome.org/julianschacher/top-bar-organizer.git
synced 2025-10-27 23:29:08 +00:00
Refactor: Let PrefsBoxOrderItemRow handle item association
Let `PrefsBoxOrderItemRow` handle the association of itself with an item itself. Doing so makes the code cleaner, since the association isn't done externally anymore.
This commit is contained in:
parent
bd69f816eb
commit
309e2c07b9
14
src/prefs.js
14
src/prefs.js
@ -99,19 +99,7 @@ var PrefsWidget = GObject.registerClass({
|
|||||||
// Add the items of the given configured box order as
|
// Add the items of the given configured box order as
|
||||||
// GtkListBoxRows.
|
// GtkListBoxRows.
|
||||||
for (const item of boxOrder) {
|
for (const item of boxOrder) {
|
||||||
const listBoxRow = new PrefsBoxOrderItemRow.PrefsBoxOrderItemRow({}, this._scrollManager);
|
const listBoxRow = new PrefsBoxOrderItemRow.PrefsBoxOrderItemRow({}, this._scrollManager, item);
|
||||||
|
|
||||||
listBoxRow.item = item;
|
|
||||||
if (item.startsWith("appindicator-kstatusnotifieritem-")) {
|
|
||||||
// Set `item_name_display_label` of the `listBoxRow` to
|
|
||||||
// something nicer, if the associated item is an
|
|
||||||
// AppIndicator/KStatusNotifierItem item.
|
|
||||||
listBoxRow.item_name_display_label.set_label(item.replace("appindicator-kstatusnotifieritem-", ""));
|
|
||||||
} else {
|
|
||||||
// Otherwise just set the `item_name_display_label` of the
|
|
||||||
// `listBoxRow` to `item`.
|
|
||||||
listBoxRow.item_name_display_label.set_label(item);
|
|
||||||
}
|
|
||||||
gtkListBox.append(listBoxRow);
|
gtkListBox.append(listBoxRow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,11 +29,13 @@ const Me = ExtensionUtils.getCurrentExtension();
|
|||||||
var PrefsBoxOrderItemRow = GObject.registerClass({
|
var PrefsBoxOrderItemRow = GObject.registerClass({
|
||||||
GTypeName: "PrefsBoxOrderItemRow",
|
GTypeName: "PrefsBoxOrderItemRow",
|
||||||
Template: Me.dir.get_child("prefs-box-order-item-row.ui").get_uri(),
|
Template: Me.dir.get_child("prefs-box-order-item-row.ui").get_uri(),
|
||||||
Children: ["item-name-display-label"]
|
InternalChildren: ["item-name-display-label"]
|
||||||
}, class PrefsBoxOrderItemRow extends Gtk.ListBoxRow {
|
}, class PrefsBoxOrderItemRow extends Gtk.ListBoxRow {
|
||||||
_init(params = {}, scrollManager) {
|
_init(params = {}, scrollManager, item) {
|
||||||
super._init(params);
|
super._init(params);
|
||||||
|
|
||||||
|
this._associateItem(item);
|
||||||
|
|
||||||
// Make `this` draggable by creating a drag source and adding it to
|
// Make `this` draggable by creating a drag source and adding it to
|
||||||
// `this`.
|
// `this`.
|
||||||
let dragSource = new Gtk.DragSource();
|
let dragSource = new Gtk.DragSource();
|
||||||
@ -108,4 +110,18 @@ var PrefsBoxOrderItemRow = GObject.registerClass({
|
|||||||
});
|
});
|
||||||
this.add_controller(dropTarget);
|
this.add_controller(dropTarget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Associate `this` with an item.
|
||||||
|
* @param {String} item
|
||||||
|
*/
|
||||||
|
_associateItem(item) {
|
||||||
|
this.item = item;
|
||||||
|
|
||||||
|
// Set `this._item_name_display_label` to something nicer, if the
|
||||||
|
// associated item is an AppIndicator/KStatusNotifierItem item.
|
||||||
|
if (item.startsWith("appindicator-kstatusnotifieritem-")) this._item_name_display_label.set_label(item.replace("appindicator-kstatusnotifieritem-", ""));
|
||||||
|
// Otherwise just set it to `item`.
|
||||||
|
else this._item_name_display_label.set_label(item);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user