- restaurades les paletes amb la ordenacio original
- afegida opció de reordenar les paletes automaticament per luminositat o paregut a la paleta d'spectrum
This commit is contained in:
@@ -333,12 +333,12 @@ static auto cmd_driver(const std::vector<std::string>& args) -> std::string {
|
||||
return "Driver: " + driver_lower + " (restart)";
|
||||
}
|
||||
|
||||
// PALETTE NEXT/PREV/<name>
|
||||
// PALETTE NEXT/PREV/SORT/DEFAULT/<name>
|
||||
static auto cmd_palette(const std::vector<std::string>& args) -> std::string {
|
||||
const auto palName = []() -> std::string {
|
||||
return Screen::get()->getPalettePrettyName();
|
||||
};
|
||||
if (args.empty()) { return "usage: palette [next|prev|<name>]"; }
|
||||
if (args.empty()) { return "usage: palette [next|prev|sort [original|luminance|spectrum]|default|<name>]"; }
|
||||
if (args[0] == "NEXT") {
|
||||
Screen::get()->nextPalette();
|
||||
return "Palette: " + palName();
|
||||
@@ -347,6 +347,26 @@ static auto cmd_palette(const std::vector<std::string>& args) -> std::string {
|
||||
Screen::get()->previousPalette();
|
||||
return "Palette: " + palName();
|
||||
}
|
||||
if (args[0] == "DEFAULT") {
|
||||
Screen::get()->setPaletteByName(Defaults::Video::PALETTE_NAME);
|
||||
return "Palette: " + palName();
|
||||
}
|
||||
if (args[0] == "SORT") {
|
||||
if (args.size() == 1) {
|
||||
Screen::get()->nextPaletteSortMode();
|
||||
return "Palette sort: " + Screen::get()->getPaletteSortModeName();
|
||||
}
|
||||
if (args[1] == "ORIGINAL") {
|
||||
Screen::get()->setPaletteSortMode(PaletteSortMode::ORIGINAL);
|
||||
} else if (args[1] == "LUMINANCE") {
|
||||
Screen::get()->setPaletteSortMode(PaletteSortMode::LUMINANCE);
|
||||
} else if (args[1] == "SPECTRUM") {
|
||||
Screen::get()->setPaletteSortMode(PaletteSortMode::SPECTRUM);
|
||||
} else {
|
||||
return "Unknown sort mode. Use: original, luminance, spectrum";
|
||||
}
|
||||
return "Palette sort: " + Screen::get()->getPaletteSortModeName();
|
||||
}
|
||||
if (!Screen::get()->setPaletteByName(args[0])) {
|
||||
std::string arg_lower = args[0];
|
||||
std::ranges::transform(arg_lower, arg_lower.begin(), ::tolower);
|
||||
@@ -815,7 +835,7 @@ void CommandRegistry::registerHandlers() {
|
||||
// Proveedores de completions dinámicas
|
||||
// PALETTE: NEXT, PREV + nombres de paletas disponibles (UPPERCASE)
|
||||
dynamic_providers_["PALETTE"] = []() -> std::vector<std::string> {
|
||||
std::vector<std::string> result = {"NEXT", "PREV"};
|
||||
std::vector<std::string> result = {"NEXT", "PREV", "SORT", "DEFAULT"};
|
||||
if (Screen::get() != nullptr) {
|
||||
for (const auto& name : Screen::get()->getPaletteNames()) {
|
||||
result.push_back(toUpper(name));
|
||||
|
||||
Reference in New Issue
Block a user