z8 didn't show separators correctly
This commit is contained in:
parent
a427b3d619
commit
2c79aa1d77
2 changed files with 14 additions and 10 deletions
|
|
@ -58,7 +58,7 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
|
|||
return
|
||||
}
|
||||
val pTemplate = T[nextTIndex]
|
||||
val unitObject = TimeUnitObject(pTemplate, lastTUO)
|
||||
val unitObject = TimeUnitObject(pTemplate, lastTUO, N.size)
|
||||
if (lastTUO == null) {
|
||||
unitObject.setOldKey(sharedScreenModel.songKey.value)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.*
|
|||
import androidx.compose.foundation.lazy.grid.GridCells
|
||||
import androidx.compose.foundation.lazy.grid.LazyGridState
|
||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||
import androidx.compose.foundation.lazy.grid.items
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.LocalTextStyle
|
||||
|
|
@ -45,7 +44,7 @@ import androidx.compose.ui.text.withStyle
|
|||
|
||||
val FEUFAROO_TRIOLET_COLOR = Color.DarkGray
|
||||
val FEUFAROO_KEY_CHANGE_COLOR = Color.Blue
|
||||
class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
||||
class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?, countOfN: Int) {
|
||||
var mutableNoteVersion: Int by mutableStateOf(0)
|
||||
private var lyrics: MutableList<POneStanzaLyrics> = mutableListOf()
|
||||
var sep0: String = ""
|
||||
|
|
@ -59,10 +58,10 @@ class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
|||
companion object {
|
||||
var nbBlock: Int = 0
|
||||
var sep1: String = ""
|
||||
var _hasmarker: Boolean by mutableStateOf(false)
|
||||
var _hasMarker: Boolean by mutableStateOf(false)
|
||||
var nbStanzas: Int = 0
|
||||
fun hasMarker(yes: Boolean) {
|
||||
_hasmarker = yes
|
||||
_hasMarker = yes
|
||||
}
|
||||
var lastHairPinStart: Int = -1
|
||||
var lastHairPinSymbol: Char? = null
|
||||
|
|
@ -93,6 +92,11 @@ class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
|||
sep1 = pTemplate.separatorAfter
|
||||
nbStanzas = 0
|
||||
annotated = false
|
||||
if (pTemplate.template == "") {
|
||||
repeat(countOfN) {
|
||||
tuNotes.add(it, TUNote())
|
||||
}
|
||||
}
|
||||
}
|
||||
fun hasHairPin(): Char? {
|
||||
if (pTemplate.hasMarker($$"${<}")) {
|
||||
|
|
@ -235,7 +239,7 @@ fun TimeUnitComposable(
|
|||
modifier = Modifier
|
||||
.background(col)
|
||||
) {
|
||||
if (TimeUnitObject._hasmarker) {
|
||||
if (TimeUnitObject._hasMarker) {
|
||||
val lineHeight = 20.sp
|
||||
val density = LocalDensity.current
|
||||
val lineHeightDp : Dp = with(density) {
|
||||
|
|
@ -471,7 +475,7 @@ fun AutoResizingText(
|
|||
|
||||
// Un Text() invisible ou non affiché pour mesurer le texte sans le dessiner directement
|
||||
// Vous pouvez aussi utiliser textMeasurer.measure() directement
|
||||
// On rend le texte visible une fois la taille ajustée pour éviter les clignotements
|
||||
// On rend le texte visible une fois la taille ajustée pour éviter les clignotements.
|
||||
var readyToDraw by remember { mutableStateOf(false) }
|
||||
val textLinesCount = text.split("\n").size * maxLines
|
||||
|
||||
|
|
@ -481,11 +485,11 @@ fun AutoResizingText(
|
|||
style = textStyle.copy(fontSize = fontSize),
|
||||
maxLines = textLinesCount, // Très important pour qu'il ne déborde pas en hauteur
|
||||
overflow = TextOverflow.Clip, // Masque si ça déborde encore (ne devrait pas si le calcul est bon)
|
||||
// onTextLayout est appelé après que le texte ait été mesuré
|
||||
// onTextLayout est appelé après que le texte a été mesuré
|
||||
onTextLayout = { textLayoutResult: TextLayoutResult ->
|
||||
if (textLayoutResult.hasVisualOverflow && fontSize > minFontSize) {
|
||||
// Si le texte déborde en largeur, réduisez la taille de la police
|
||||
// Vous pouvez utiliser un pas plus fin ou une méthode de recherche binaire pour optimiser
|
||||
// Vous pouvez utiliser un pas plus fin ou une méthode de recherche binaire pour optimiser.
|
||||
fontSize *= 0.9f // Réduire de 10% à chaque fois
|
||||
} else {
|
||||
readyToDraw = true // La taille est stable ou min atteinte, on peut dessiner
|
||||
|
|
@ -550,7 +554,7 @@ fun LazyVerticalGridTUO(
|
|||
|
||||
horizontalArrangement = Arrangement.spacedBy(horizontalArrangementSpacing),
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||
contentPadding = PaddingValues(8.dp), // c'est juste le padding exterieur de toute la liste
|
||||
contentPadding = PaddingValues(8.dp), // c'est juste le padding extérieur de toute la liste
|
||||
state = lazyGridState
|
||||
) {
|
||||
itemsIndexed(items = tuoList.drop(1), key = { _, it -> it.numBlock }) { relativeIndex, oneTUO ->
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue