[BasicUI] All buttons forced on one line for a Player item (#2492)

Follow-up #2341
Partial revert to make two exceptions and restore old behaviour (buttons
on a unique line) for:
* Control buttons of a Player item
* Buttons in the settings page

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
pull/2521/head^2
lolodomo 2024-04-07 10:43:27 +02:00 committed by GitHub
parent 730ab97d7b
commit 93e6e97bc4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 2 deletions

View File

@ -22,6 +22,7 @@ import org.openhab.core.items.GroupItem;
import org.openhab.core.items.Item;
import org.openhab.core.items.ItemNotFoundException;
import org.openhab.core.library.items.NumberItem;
import org.openhab.core.library.items.PlayerItem;
import org.openhab.core.library.items.RollershutterItem;
import org.openhab.core.library.items.SwitchItem;
import org.openhab.core.library.types.OnOffType;
@ -79,6 +80,7 @@ public class SwitchRenderer extends AbstractWidgetRenderer {
String snippetName = null;
Item item = null;
int nbButtons = 0;
boolean multiline = false;
try {
item = itemUIRegistry.getItem(w.getItem());
if (s.getMappings().isEmpty()) {
@ -96,6 +98,7 @@ public class SwitchRenderer extends AbstractWidgetRenderer {
// Render with buttons only when a max of MAX_BUTTONS options are defined
snippetName = "buttons";
nbButtons = optsSize;
multiline = true;
} else {
snippetName = "switch";
}
@ -103,6 +106,7 @@ public class SwitchRenderer extends AbstractWidgetRenderer {
} else {
snippetName = "buttons";
nbButtons = s.getMappings().size();
multiline = !(item instanceof PlayerItem);
}
} catch (ItemNotFoundException e) {
logger.debug("Failed to retrieve item during widget rendering: {}", e.getMessage());
@ -121,6 +125,9 @@ public class SwitchRenderer extends AbstractWidgetRenderer {
snippet = snippet.replaceAll("%checked%", "");
}
} else {
snippet = snippet.replaceAll("%height_auto%", multiline ? "mdl-form__row--height-auto" : "");
snippet = snippet.replaceAll("%buttons_class%",
multiline ? "mdl-form__buttons-multiline" : "mdl-form__buttons");
StringBuilder buttons = new StringBuilder();
if (s.getMappings().isEmpty() && item != null) {
final CommandDescription commandDescription = item.getCommandDescription();

View File

@ -1,4 +1,4 @@
<div class="mdl-form__row mdl-form__row--height-auto mdl-cell mdl-cell--%cells%-col mdl-cell--%cells_tablet%-col-tablet %visibility_class%">
<div class="mdl-form__row %height_auto% mdl-cell mdl-cell--%cells%-col mdl-cell--%cells_tablet%-col-tablet %visibility_class%">
<span %iconstyle% class="mdl-form__icon">
%icon_snippet%
</span>
@ -9,7 +9,7 @@
%value%
</span>
<div
class="mdl-form__control mdl-form__buttons"
class="mdl-form__control %buttons_class%"
data-control-type="buttons"
data-item="%item%"
data-has-value="%has_value%"

View File

@ -489,6 +489,9 @@
width: 100%;
}
&__buttons {
padding-top: 2px;
}
&__buttons-multiline {
margin: 6px 0;
html.ui-layout-condensed & {
margin: 0;