Zeilenumbruch in Item Details

Begonnen von RickLip, 12. Februar 2010, 16:45:10

Vorheriges Thema - Nächstes Thema

RickLip

Hallo,

meine Frage ist dieses Mal recht simpel: Kann man in die "Item Details" einen Zeilenumbruch "einprogrammieren"? (Darstellung ohne Zeilenumbruch)

Ich könnte mir vorstellen, dass man da was mit $iflonger(s1,s2,then,else) machen könnte, allerdings ist mein Code zur Anzeige der "Item Details" recht umfangreich und unübersichtlich geworden, so dass mir eine einfachere Lösung ganz recht wäre.

$set_font(%default_font_face%,$add(%default_font_size%,4),)
[%title%]$crlf()
$if(meta_test[%movement01%]=1,     I     [%movement01%]$if(meta_test[%movement02%]=1,$crlf()     II    [%movement02%]$if(meta_test[%movement03%]=1,$crlf()     III   [%movement03%]$if(meta_test[%movement04%]=1,$crlf()     IV   [%movement04%]$if(meta_test[%movement05%]=1,$crlf()     V    [%movement05%]$if(meta_test[%notag%]=1,$crlf()[%notag%],$crlf() by [%artist%]),$crlf() by [%artist%]),$crlf() by [%artist%]),$crlf() by [%artist%]),$crlf() by [%artist%]), by [%artist%])

//^ display title, search for movement-tags and returns them
//^ displays "by artist"

$if(meta_test[%cover%]=1,$crlf() [%cover%])
$if(meta_test[%remix%]=1,$crlf() Remix: [%remix%])

//^ search for cover-tag and returns value if available
//^ then same with remix-tag

$crlf() Year: [%date%]

//^ displays date-tag

$if(meta_test[%vox%]=1,$crlf() Vocals: [%vox%])
$if(meta_test[%bg_vox%]=1,$crlf() Backing Vocals: [%bg_vox%])
$if(meta_test[%comment%]=1,$crlf() Notes: [%comment%])

//^ displays vox- and comment-tags if available

tedgo

#1
Rechtsklick aufs Item Details Panel --> "Word wrapping" aktivieren

RickLip

Erstmal könnte ich mir echt eine klatschen, da ich mich schon ne ganze Zeit gefragt hab, was das ist - meistens bewirkt es ja keinen sichtlichen Unterschied. Leider löst es mein Problem nicht oder lässt genauer gesagt eine Schlamperei zum Vorschein treten:


Vor alle anderen Anzeigen habe ich ein (zwei?) Leerzeichen gesetzt, damit sie nicht so nah auf den Rand aufrutschen. Bleiben jetzt zwei Lösungsmöglichkeiten:
a) es gibt eine Einstellung, mit der man die Entfernung zwischen Rand und Text definieren kann, so dass ich meine Leerzeichen löschen kann
b) ich schlage den harten Weg ein (vgl. erster Post)
c) ?  ???

tedgo

Da fällt mir jetzt im Moment auch nichts ein.

Aber ein Hinweis (hab das jetzt selbst noch mal ausprobiert):
Deine seltsamen Strings sind falsch!

$if(meta_test[%cover%]=1,$crlf() [%cover%])
ist Käse...

entweder: $ifequal(%cover%,1,$crlf() %cover%,)
(wenn man eine Zahl im Tag abfragt)
oder: [$crlf() %cover%]
(wenn etwas nur bei Vorhandensein eines Tags ausgeführt werden soll)

Dass dein String trotzdem funktioniert liegt an der zufälligen - aber falschen - Verwendung der eckigen Klammern in deiner meta_test-Funktion.

RickLip

Nachdem ich den Code jetzt entsprechend korrigiert und vereinfacht habe, ist es ein Leichteres, ihn nun wieder schwieriger zu gestalten. :D Ich habe ihn nun so bearbeitet, dass er immerhin nichts ausgibt, wenn der len2-Wert größer als 42 ist. Eine andere Option als das schlichte Wegblenden ist für mich als Frischfleisch ein Ding der Unmöglichkeit. Ideal wäre natürlich ein Code, der einfach ab dem letzten Leerzeichen drei Punkte (...) einfügt, allerdings auch nur unter der Bedingung, dass hinter dem letzten Leerzeichen nochmal drei len2-Werte "ausgeblendet" werden. Dann wüsste man wenigstens: "Aha, da ist noch was!" und könnte sich in den Tags schlau machen ... oder man nimmt mal eine echte CD in die Hand.  :liebe:

$set_font(%default_font_face%,$add(%default_font_size%,4),)
$ifgreater($len2( [%title%]),42,, [%title%])
$ifgreater($len2(     I    %movement01%),42,,[$crlf()     I    %movement01%])
$ifgreater($len2(     II   %movement02%),42,,[$crlf()     II   %movement02%])
$ifgreater($len2(     III  %movement03%),42,,[$crlf()     III  %movement03%])
$ifgreater($len2(     IV  %movement04%),42,,[$crlf()     IV  %movement04%])
$ifgreater($len2(     V   %movement05%),42,,[$crlf()     V   %movement05%])
$ifgreater($len2( Remix: [%remix%]),42,,[ Remix: %remix%])
$ifgreater($len2( by %artist%),42,,$crlf() by %artist%)
$ifgreater($len2( [%cover%]),42,,[$crlf() %cover%])
[$crlf() Year: %date%]
$ifgreater($len2( Vocals: [%vox%]),42,,[$crlf() Vocals: %vox%])
$ifgreater($len2( Backing Vocals: [%bg_vox%]),42,,[$crlf() Backing Vocals: %bg_vox%])
$ifgreater($len2( Notes: [%comment%]),42,,[$crlf() Notes: %comment%])

tedgo

#5
Zitat von: RickLip in 12. Februar 2010, 21:18:23
... Ideal wäre natürlich ein Code, der einfach ab dem letzten Leerzeichen drei Punkte (...) einfügt...
Das gibt es meines Wissens im Item Details Panel nicht.
Dazu müsstest du schon einen Panel Stack Splitter oder WSH Panel mod benutzen.

Aber wie wäre es, wenn du statt "Word wrapping" lieber "Allow horizontal scrolling" aktivierst?
Dann hast du auch keine "Pünktchen" und keinen Zeilenumbruch, dafür aber eine Bildlaufleiste.

RickLip

Da hätte ich mich jetzt wieder ziemlich von vorne einarbeiten müssen (hatte den Panel Stack Splitter eben auf dem Rechner und hab ihn nach einem kurzen Akt der Unwissenheit wieder entfernt) und deshalb habe ich jetzt einen meiner Meinung nach gesunden Mittelweg zwischen Aufwand und Ergebnis eingeschlagen:


Allow Horizontal Scrolling erzeuge logischerweise eine Scollleiste, die natürlich auch als Begrenzung des Components fungierte. Dadurch ging natürlich die Illusion drauf, dass mein foobar nur in zwei Teile aufgeteilt sei ... und damit bin ich eigentlich recht zufrieden. :)

Dennoch danke. Mir wurde auch in einem anderem Thread WSH Panel Mod nahe gelegt. Werde mich da mal die nächsten Tage ein wenig schlau machen und wenn ich weiter komme, kann ich ja auch das mit der Taganzeige überdenken.