Kanalliste: Sendernamen mit Sonderzeichen abgeschnitten

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
morgoth
Einsteiger
Einsteiger
Beiträge: 123
Registriert: Montag 10. Februar 2003, 19:59

Kanalliste: Sendernamen mit Sonderzeichen abgeschnitten

Beitrag von morgoth »

Hallo,

mit dem Yadi-Snapshot vom 11.03.2006 ist mir aufgefallen, dass in der Kanalliste Sendernamen mit Sonderzeichen nur dann richtig angezeigt werden, wenn dazu gehörigen EPG-Daten zur laufenden Sendung vorhanden sind. Wenn dies nicht der Fall ist werden sie nur bis ausschließlich dem Sonderzeichen angezeigt.
Mit dem vorherigen Yadi-Snapshot vom 16.02.2006 wurden Sendernamen unabhängig von EPG-Daten richtig angezeigt.
Ich habe da die Änderungen in channellist.cpp ver. 1.175 vom 10.03.2006 in Verdacht.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Ich habe da die Änderungen in channellist.cpp ver. 1.175 vom 10.03.2006 in Verdacht.
Full ack, die Änderung ist dafür verantwortlich, ich weiss nur noch nicht warum EPG ja/nein einen Einfluß auf die Kodierung des Sendernamens (mut zum Genitiv :-)) hat.

Heute wirds mit dem Fix aber nix mehr
morgoth
Einsteiger
Einsteiger
Beiträge: 123
Registriert: Montag 10. Februar 2003, 19:59

Beitrag von morgoth »

Hi Houdini,

leider kann ich es nicht testen, aber könnte man die Zeile 965 in chanellist.cpp nicht wieder rückgängig machen?:

Code: Alles auswählen

  @@ -965,7 +962,7 @@
   		}
   		else
   			//name
  -			g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10, ypos+ fheight, width- numwidth- 20- 15, chan->name, color, 0, true); // UTF-8
  +			g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10, ypos+ fheight, width- numwidth- 20- 15, nameAndDescription, color, 0, true); // UTF-8
   	}
   }
Mir scheint die Variable nameAndDescription im Falle keiner EPG-Daten nicht richtig gesetzt zu sein. Da könnte man weiterhin chan->name benutzen, oder?
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Die Sache ist erheblich komplizierter aber hier unter anderem die Änderung:

Code: Alles auswählen

Index: channellist.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/channellist.cpp,v
retrieving revision 1.175
diff -u -r1.175 channellist.cpp
--- channellist.cpp	10 Mar 2006 22:22:04 -0000	1.175
+++ channellist.cpp	15 Mar 2006 22:23:10 -0000
@@ -938,12 +938,14 @@
 
 		char nameAndDescription[100];
 		if (this->historyMode)
-			snprintf(nameAndDescription, sizeof(nameAndDescription), ": %d %s · ", chan->number, ZapitTools::UTF8_to_Latin1(chan->name.c_str()).c_str());
+			snprintf(nameAndDescription, sizeof(nameAndDescription), ": %d %s", chan->number, ZapitTools::UTF8_to_Latin1(chan->name.c_str()).c_str());
 		else
-			snprintf(nameAndDescription, sizeof(nameAndDescription), "%s · ", ZapitTools::UTF8_to_Latin1(chan->name.c_str()).c_str());
+			snprintf(nameAndDescription, sizeof(nameAndDescription), "%s", ZapitTools::UTF8_to_Latin1(chan->name.c_str()).c_str());
 
 		if (!(chan->currentEvent.description.empty()))
 		{
+			// add " · " separator between name and description
+			strncat(nameAndDescription, " · ", sizeof(nameAndDescription) - (strlen(nameAndDescription) + 1));
 			unsigned int ch_name_len = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->getRenderWidth(nameAndDescription);
 			unsigned int ch_desc_len = g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST_DESCR]->getRenderWidth(chan->currentEvent.description);
 
@@ -962,7 +964,7 @@
 		}
 		else
 			//name
-			g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10, ypos+ fheight, width- numwidth- 20- 15, nameAndDescription, color, 0, true); // UTF-8
+			g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10, ypos+ fheight, width- numwidth- 20- 15, nameAndDescription, color);
 	}
 }
 
morgoth
Einsteiger
Einsteiger
Beiträge: 123
Registriert: Montag 10. Februar 2003, 19:59

Beitrag von morgoth »

Also, wenn ich das richtig interpretiere gab es wohl Probleme mit dem Trenner " · ". Sobald Yadi ein update rausbringt werde ich das testen. Danke schon mal für die Mühe und das immer kurz vor Mitternacht.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

nein es war ein mismatch von quellformat und Rendereraufruf

Code: Alles auswählen

-         g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10, ypos+ fheight, width- numwidth- 20- 15, nameAndDescription, color, 0, true); // UTF-8
+         g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 5+ numwidth+ 10, ypos+ fheight, width- numwidth- 20- 15, nameAndDescription, color);