tvbrowser.core.Settings

Hier haben Plugin-Entwickler die Möglichkeit, sich auszutauschen.
Antworten
Tomas
Junior Member
Beiträge: 49
Registriert: 01 Apr 2006, 18:52

tvbrowser.core.Settings

Beitrag von Tomas »

Hallo TVB-Entwickler,

in meinem Plugin (TMark) zeige ich eine Liste mit Programmen an, ähnlich wie das auch das Sendungsliste-Plugin macht. Ich hab mich da auch an dessen Code orientiert (bzw daher kopiert). Für die neue Darstellung der Liste habe ich einen neuen Renderer für util.ui.ProgramList geschrieben der auf util.ui.ProgramListCellRenderer bzw. ui.ProgramPanel basiert.

OK, jetzt das Problem: Die Darstellung soll die gleichen Farben usw. wie der TVB benutzen (wir wollen die Anwender doch nicht mehr als nötig verwirren, oder? :D ). Das ProgramPanel benutzt dafür tvbrowser.core.Settings. Komme ich auch irgendwie legal an diese Infos?

Grüße,
Tomas
ds10
Site Admin
Beiträge: 19119
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: tvbrowser.core.Settings

Beitrag von ds10 »

getPluginManager().getTvBrowserSettings().getColorForMarkingPriority(Program.getMarkPriority());
getPluginManager().getTvBrowserSettings().getProgramPanelOnAirLightColor();
getPluginManager().getTvBrowserSettings().getProgramPanelOnAirDarkColor();
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Tomas
Junior Member
Beiträge: 49
Registriert: 01 Apr 2006, 18:52

Re: tvbrowser.core.Settings

Beitrag von Tomas »

Hm, ja. Ich hätte vieleicht doch aufzählen sollen was das ProgramPanel im orginal alles benutzt. Mal sehn, also soweit ich das sehe sind da diverse Schrifteinstellungen, die Einstellung welche Details für die Sendung angezeigt werden, Rahmen für laufende Sendungen, Mouseover/Keybordfocus farben und ein paar Sachen die ich im Moment nicht zuordnen kann. Hm. Scheint aufwendiger zu sein als ich gehofft hatte...
ds10
Site Admin
Beiträge: 19119
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: tvbrowser.core.Settings

Beitrag von ds10 »

Alles was du bekommen kannst gibt es über getPluginManager().getTvBrowserSettings(), wenn aber sowieso alles gleich aussehen soll, kannst du doch gleich ProgramPanel benutzen.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Tomas
Junior Member
Beiträge: 49
Registriert: 01 Apr 2006, 18:52

Re: tvbrowser.core.Settings

Beitrag von Tomas »

Danke, auf diese Idee bin ich ja noch gar nicht gekommen *grins*
Nein also ganz gleich soll es eben ja nicht aussehen. An dem normalen ProgramPanel gibts ein paar Sachen die mich in diesem Fall stören:
- Der Kanal wird nicht angezeigt. Bei der Sendungsliste stehen Kanal und Datum ja über jedem Program. Das Datum hab ich anders gelöst, aber den Kanal möchte ich im ProgramPanel anzeigen.
- Die Breite des ProgramPanel ist an die Darstellung im TVB-Hauptfenster gekoppelt. Im Plugin ist die Spalte aber deutlich breiter.
- Ich möchte nicht nur die Beschreibung der Programme an/ausschalten können sondern auch die Icons der Markierer.

Tja, so wies aussieht hab ich wohl die Wahl zwichen einem Core-Hack oder alle Eigenschaften neu setzen zu lassen. Hm. Erschießen oder erhängen, schwere Wahl :( .

Trotzdem Danke für die schnelle Antwort.
Bananeweizen
Site Admin
Beiträge: 3353
Registriert: 09 Sep 2006, 22:45

Re: tvbrowser.core.Settings

Beitrag von Bananeweizen »

Die Breite kannst du ganz normal über setWidth verändern. Machen ja alle anderen Dialoge (Favoritenverwaltung etc.) auch.

An nicht öffentlich zugängliche Settings kommt man auch (wobei das schon in Richtung Hack geht), indem man einfach einmal ein Panel instanziiert und dann Farben oder andere Werte direkt aus dem Objekt wieder rausliest. :) Dann aber mit viel Exception-Handling, falls sich mal was ändert!
Tomas
Junior Member
Beiträge: 49
Registriert: 01 Apr 2006, 18:52

Re: tvbrowser.core.Settings

Beitrag von Tomas »

Hab mir so was ähnliches auch schon ausgedacht. Nicht ganz sauber, aber ich werds so basteln das es stabiel läuft selbst wenn der core komplett geändert wird. Ich werd es mit einer manuellen Einstellmöglichkeit in den Plugineigenschaften kombinierten, nur um sicher zu gehen.
Die Breite mit setWidth einzustellen hat nur einen begrenzten Effekt. Zwar wird das Panel breiter, nicht aber der Programmtext. Die ProgramPanel.calculateWidth() berechnet die Breite der Spalten (links Zeit, rechts Text) nicht auf Basis der verfügbaren Breite sondern mit Settings.propColumnWidth.
Egal, jetzt läufts ja.
Bananeweizen
Site Admin
Beiträge: 3353
Registriert: 09 Sep 2006, 22:45

Re: tvbrowser.core.Settings

Beitrag von Bananeweizen »

Tomas hat geschrieben:Die ProgramPanel.calculateWidth() berechnet die Breite der Spalten (links Zeit, rechts Text) nicht auf Basis der verfügbaren Breite sondern mit Settings.propColumnWidth.
Definitiv nicht. Es sei denn, du entwickelst nicht gegen den SVN trunk, sondern eine der alten releasten Versionen: http://fisheye3.atlassian.com/browse/tv ... 6005#l1308
Tomas
Junior Member
Beiträge: 49
Registriert: 01 Apr 2006, 18:52

Re: tvbrowser.core.Settings

Beitrag von Tomas »

Ok, erwischt :lol:
ich nutze das akuelle Release (2.7.4). Da das Plugin ja jetzt schon laufen soll ist es die sicherste Methode den jetzt beim Benutzer eingesetzten Code zu verwenden, oder nicht? Kann ja schlecht erwarten das sich die "normalen" Nutzer die svn Version laden und übersetzen...
Wie dem auch sei, die Breite ist ja nur eine meiner Abweichungen vom Standard. Ich glaube zB nicht das ich in einer abgeleiteten Klasse das Panel dazu bekomme das Titel-Icon zu verkürzen und rechts daneben noch ein weiters Icon mit dem Kanal einzublenden, oder? Und das ausblenden der Icons ist glaub ich auch nicht vorgesehen.
Antworten