an attempt at bringing back the delete buttons
This commit is contained in:
parent
353596d65d
commit
ebcf0dca68
2 changed files with 18 additions and 6 deletions
|
@ -20,6 +20,7 @@ template $UiPlayQueue: Adw.NavigationPage {
|
||||||
|
|
||||||
ColumnViewColumn {
|
ColumnViewColumn {
|
||||||
factory: SignalListItemFactory {
|
factory: SignalListItemFactory {
|
||||||
|
setup => $on_delete_cell_setup ();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ class Ui.PlayQueueStore : Object, ListModel, Gtk.SelectionModel {
|
||||||
if (this.playing_index < position+removed) {
|
if (this.playing_index < position+removed) {
|
||||||
this.playing_index = position;
|
this.playing_index = position;
|
||||||
if (this.playing_index < this.inner.get_n_items ()) {
|
if (this.playing_index < this.inner.get_n_items ()) {
|
||||||
|
emit_signal = true;
|
||||||
this.begin_playback ((Song) this.inner.get_item (this.playing_index));
|
this.begin_playback ((Song) this.inner.get_item (this.playing_index));
|
||||||
this.prepare_next ((Song?) this.inner.get_item (this.playing_index+1));
|
this.prepare_next ((Song?) this.inner.get_item (this.playing_index+1));
|
||||||
} else {
|
} else {
|
||||||
|
@ -27,7 +28,7 @@ class Ui.PlayQueueStore : Object, ListModel, Gtk.SelectionModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.items_changed (position, removed, added);
|
this.items_changed (position, removed, added);
|
||||||
if (this.playing_index < this.inner.get_n_items ()) {
|
if (emit_signal) {
|
||||||
this.selection_changed (this.playing_index, 1);
|
this.selection_changed (this.playing_index, 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -128,11 +129,6 @@ public class Ui.PlayQueue : Adw.NavigationPage {
|
||||||
|
|
||||||
construct {
|
construct {
|
||||||
this.view.model = this.store;
|
this.view.model = this.store;
|
||||||
}
|
|
||||||
|
|
||||||
[GtkCallback] public void clear () {
|
|
||||||
this.store.inner.remove_all ();
|
|
||||||
this.can_clear_all = false;
|
|
||||||
|
|
||||||
this.store.begin_playback.connect ((song) => this.begin_playback (song));
|
this.store.begin_playback.connect ((song) => this.begin_playback (song));
|
||||||
this.store.prepare_next.connect ((next_song) => this.prepare_next (next_song));
|
this.store.prepare_next.connect ((next_song) => this.prepare_next (next_song));
|
||||||
|
@ -140,6 +136,11 @@ public class Ui.PlayQueue : Adw.NavigationPage {
|
||||||
this.store.stop_playback.connect (() => this.stop_playback ());
|
this.store.stop_playback.connect (() => this.stop_playback ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[GtkCallback] public void clear () {
|
||||||
|
this.store.inner.remove_all ();
|
||||||
|
this.can_clear_all = false;
|
||||||
|
}
|
||||||
|
|
||||||
public void queue (Song song) {
|
public void queue (Song song) {
|
||||||
this.store.inner.append (song);
|
this.store.inner.append (song);
|
||||||
}
|
}
|
||||||
|
@ -165,4 +166,14 @@ public class Ui.PlayQueue : Adw.NavigationPage {
|
||||||
this.store.select_item (this.store.playing_index-1, true);
|
this.store.select_item (this.store.playing_index-1, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[GtkCallback] private void on_delete_cell_setup (Object object) {
|
||||||
|
var cell = (Gtk.ColumnViewCell) object;
|
||||||
|
var button = new Gtk.Button.from_icon_name ("edit-delete");
|
||||||
|
button.add_css_class ("flat");
|
||||||
|
button.clicked.connect (() => {
|
||||||
|
this.store.inner.remove (cell.position);
|
||||||
|
});
|
||||||
|
cell.child = button;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue