Add the Edit Channel dialog

Recovers the official client's CreateChannelDialog layout so the widget
set, labels and tab order match: name/icon/password/topic/description
above Standard, Audio, Permissions and Advanced tabs.

Core gains ChannelSettings (diffed against the original so channeledit
only carries changed properties) and ChannelAdmin (channelinfo/edit,
channel permissions, the server icon store). TeamspeakConnection now
owns the event executor so it can drain queued notify events before
reading a command's result, which channelpermlist needs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 15:11:49 +00:00
parent b29f518d59
commit d8a56566d4
19 changed files with 2138 additions and 3 deletions

View File

@@ -0,0 +1,27 @@
package com.ts3client.ui;
import javax.swing.JSpinner;
import java.awt.Dimension;
/** Shared shaping for the numeric spinners the channel editor is full of. */
final class Spinners {
/** Width that fits a five-digit power without swallowing the rest of a form row. */
private static final int WIDTH = 80;
private Spinners() {
}
/**
* Keeps a spinner to a sensible width and drops the grouping separator: these hold
* permission powers and client counts, which TeamSpeak shows as plain numbers.
*/
static JSpinner compact(JSpinner spinner) {
JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, "#");
spinner.setEditor(editor);
Dimension size = new Dimension(WIDTH, spinner.getPreferredSize().height);
spinner.setPreferredSize(size);
spinner.setMaximumSize(size);
return spinner;
}
}