Danke, funktioniert.
[live] Weiterentwicklung 3.5.*
-
-
Unlängst ist mir aufgefallen, dass die Icons im Seitenmenü der Fernbedienung und des Web-Streamings – im Gegensatz zur Programmübersicht oder den Aufzeichnungen – nicht sauber zentriert sind:
The content cannot be displayed because you do not have authorisation to view this content. The content cannot be displayed because you do not have authorisation to view this content. Der folgende Patch:
-
The content cannot be displayed because you do not have authorisation to view this content.
… korrigiert dies:
The content cannot be displayed because you do not have authorisation to view this content. The content cannot be displayed because you do not have authorisation to view this content. … und fixt auch einen Copy&Paste-Fehler von Patch 38b, der im Web-Streaming dazu geführt hat, dass bei Auswahl einer Senders dessen Programmübersicht aufgerufen wurde, anstatt den Sender fürs Streaming umzuschalten.
Zudem habe ich die Menüleiste fürs Web-Streaming stilistisch der Menüleiste der Programmübersicht angepasst:
The content cannot be displayed because you do not have authorisation to view this content. Den Gedanken, die auf beiden Seiten jeweils getrennt implementierte Komponente channels_selection in pageelems.ecpp zu konsolidieren, habe ich wieder verworfen. Eine solche Konsolidierung würde ziemlich viele zusätzliche Parameter erfordern. Außerdem wäre es wohl etwas seltsam, die fürs Seitenmenü genutzte Komponente stark parametrisiert aus pageelems.ecpp zu beziehen.
Noch eine Frage an MarkusE: Beim Fix für 38b habe ich versucht, eine "hybride" Lösung zu finden, die notfalls auch ohne ECMAScript funktionieren sollte. Denn in dev-conventions.txt findet sich folgender Absatz:
QuoteAlthough all modern browsers support ECMAScript, users may opt to have
scripting disabled. We thus need to make sure all functions Live wants
to provide are accessible through links.Ich habe deshalb den Versuch unternommen, Live ohne ECMAScript benutzen zu wollen. Doch ohne ECMAScript funktioniert leider so gut wie nichts mehr, nicht einmal ein Programmwechsel per Auswahlbox aus dem Seitenmenü heraus; nur die Vor/Zurück-Links sind noch nutzbar. Macht es insofern überhaupt Sinn, diese Forderung weiter aufrecht zu erhalten?
-
-
Kann man im Browser ECMAScript de-aktivieren, aber javascript aktiviert lassen?
Könnte man ECMAScript für live aktiveren, aber für andere Internet-Seiten de-aktivieren? Falls ja, dann würde ich sagen, ECMAScript ist Voraussetzung für live. Wenn jemand dann ECMAScript für live de-aktiviert, dann funktioniert live eben nicht. Das wäre für mich OK. Wenn jemand IE verwendet, dann funktioniert live ja auch nicht ...
-
Letztlich habe ich jegliches Scripting abgeschaltet. Wenn Live dann streikt, ist das für mich kein Problem, wollte aber deine Meinung hierzu wissen.
Sinnvollerweise sollten wir dann aber dev-conventions.txt dementsprechend korrigieren.
-
Sinnvollerweise sollten wir dann aber dev-conventions.txt dementsprechend korrigieren.
Ich habe mal dev-conventions.txt upgedatet. Javascript ist Voraussetzung für live.
-
Kann man im Browser ECMAScript de-aktivieren, aber javascript aktiviert lassen?
ECMAscript und Javasscript ist doch das gleiche. Da damals "Java" in aller Munde war wurde es "Javascript" getauft (obwohl es mit Java nix zu tun hat), aber der Standard heißt ECMAscript.
-
#662 ist im git. Bitte testen.
Außerdem im git:
- Create timer, (de-)activate timer & searchtimer without refresh. Except refresh is needed to update timer conflicts
- Und einige Korrekturen
-
Was mir zufällig aufgefallen ist:
Codetemplate <size_t N> inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target, cSv text, bool tooltip = false, const char* lf = nullptr) {Der Parameter tooltip hat innerhalb der Funktion keine Referenz, ist im Grunde genommen also überflüssig. Sollte man ihn deshalb nicht besser entfernen?
Ich konnte in der Historie auch nicht nachvollziehen, warum er überhaupt eingeführt wurde, da er noch niemals im Code der Funktion in Erscheinung getreten ist. Folgender Patch:
Diff
Display Morediff --git a/epg_events.cpp b/epg_events.cpp index 04e385b..fac77da 100644 --- a/epg_events.cpp +++ b/epg_events.cpp @@ -506,7 +506,7 @@ bool appendEpgItem(cToSvConcat<0> &epg_item, RecordingsItemRec *&recItem, const AppendHtmlEscapedAndCorrectNonUTF8(epg_item, Event->ShortText() ); epg_item.append("\",\""); // [13] : Description - AppendTextTruncateOnWord(epg_item, Event->Description(), LiveSetup().GetMaxTooltipChars(), true); + AppendTextTruncateOnWord(epg_item, Event->Description(), LiveSetup().GetMaxTooltipChars()); epg_item.append("\",\""); // [14] : Day, time & duration of event epg_item.appendDateTime(tr("%I:%M %p"), Event->StartTime() ); diff --git a/recman.cpp b/recman.cpp index cd6086d..072f852 100644 --- a/recman.cpp +++ b/recman.cpp @@ -2010,7 +2010,7 @@ void RecordingsItemRec::AppendAsJSArray(cToSvConcat<0> &target) const { } target.append("\", \""); // [16] Description - AppendTextTruncateOnWord(target, Description(), LiveSetup().GetMaxTooltipChars(), true); + AppendTextTruncateOnWord(target, Description(), LiveSetup().GetMaxTooltipChars()); // [17] recording length deviation target.append("\","); target.concat(DurationDeviation()); diff --git a/tools.h b/tools.h index d5b293e..1fcd687 100644 --- a/tools.h +++ b/tools.h @@ -85,7 +85,7 @@ namespace vdrlive { extern const std::collate<char>& g_collate_char; template <size_t N> -inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target, cSv text, bool tooltip = false, const char* lf = nullptr) { +inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target, cSv text, const char* lf = nullptr) { if (!lf) lf = "<br/>"; size_t i = 0; // number of not yet appended chars const char* notAppended = text.data(); // position of the first character which is not yet appended @@ -189,20 +189,15 @@ inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target return target; } -template <size_t N> -inline cToSvConcat<N>& AppendHtmlEscapedAndCorrectNonUTF8(cToSvConcat<N>& target, cSv text, const char* lf) { - return AppendHtmlEscapedAndCorrectNonUTF8(target, text, false, lf); -} - cSv StringWordTruncate(cSv text, size_t maxLen, bool& truncated); inline cSv StringWordTruncate(cSv text, size_t maxLen) { bool dummy; return StringWordTruncate(text, maxLen, dummy); } template <size_t N> -inline cToSvConcat<N>& AppendTextTruncateOnWord(cToSvConcat<N>& target, cSv text, int max_len, bool tooltip = false) { +inline cToSvConcat<N>& AppendTextTruncateOnWord(cToSvConcat<N>& target, cSv text, int max_len) { // append text to target, but only up to max_len characters. If such truncation is required, truncate at ' ' \n, ... and similar // escape HTML characters, and correct invalid UTF8 bool truncated; - AppendHtmlEscapedAndCorrectNonUTF8(target, StringWordTruncate(text, max_len, truncated), tooltip); + AppendHtmlEscapedAndCorrectNonUTF8(target, StringWordTruncate(text, max_len, truncated)); if (truncated) target.append(" ..."); return target; }… lässt den Code nach wie vor fehlerfrei kompilieren:
Code
Display Moremake -j4 install CC epg_events.o CC epgsearch.o CC live.o CC livefeatures.o CC osd_status.o CC recman.o CC setup.o CC timerconflict.o CC timers.o CC tools.o CC users.o VERSION is 3.5.7 VERSION_SUFFIX = "_git_master_a182919_20260904094717+0200_patched" TNTNET_VERSION is 3.0, adding "-DTNTVERSION=30000" CXXTOOLS_VERSION is 3.0, adding "-DCXXTOOLVER=30000" GT po/live.pot Creating *.po Creating *.mo Installing *.mo LD libvdr-live.so Installing libvdr-live.so… und bei einem ersten schnellen Test sind mir bezüglich der Tooltips (natürlich) auch keine Unterschiede aufgefallen.
-
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!