Drag and drop clients and channels in the server tree
Clients can be dragged into a channel and channels re-parented or reordered, with an insertion line (or a row outline, for "into this channel") showing where the drop lands. Channel positions come from channel_order, which is the id of the channel above rather than an index, so siblings are now ordered by walking that chain and the neighbour links are repaired locally on create, move and delete -- the server only announces the channel that changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -292,6 +292,21 @@ final class ServerTab implements ConnectionListener, ServerTreePanel.Actions {
|
||||
if (conn.isConnected()) conn.joinChannel(channelId, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveClientToChannel(ClientEntry client, ChannelNode target) {
|
||||
if (!conn.isConnected()) return;
|
||||
if (client.id == conn.getSelfClientId()) {
|
||||
conn.joinChannel(target.id, null);
|
||||
} else {
|
||||
conn.moveClient(client.id, target.id, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveChannel(ChannelNode channel, int newParentId, int orderPredecessorId) {
|
||||
if (conn.isConnected()) conn.moveChannel(channel.id, newParentId, orderPredecessorId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openPrivateChat(ClientEntry client) {
|
||||
chatPanel.openPrivateChat(client.id, client.nickname);
|
||||
|
||||
Reference in New Issue
Block a user