[mythtv] MythUI porting

Stuart Morgan stuart at tase.co.uk
Fri Aug 8 13:11:30 UTC 2008


On Friday 08 August 2008 05:28:09 Nigel Pearson wrote:
> 1) Everything uses a MythScreenStack, but there are
> no screen stacks until a MythThemeBase is created.
>
> Any reason why the MythMainWindow constructor
> shouldn't do this?
> (with a default theme if necessary)

I can't see why not but I'm not sure why it's necessary either? Themebase is 
created immediately following MythMainWindow in mythfrontend/mythtv-setup 
anyway. If the schema check etc were moved a few lines down, to occur after 
the themebase load then there would be no problem. If it's simply a matter of 
tidying up the code into a more logical structure, then that's fine I guess.

Requiring a schema update should not block access to settings, so we can still 
use the chosen theme. The schema update stuff should preferably use the 
generic dialogs - MythDialogBox, MythConfirmationDialog, MythProgressDialog 
etc

I've already toyed with ideas for the language prompt i.e. making it a fully 
themable screen so we can do fun stuff like this:
http://www.miffteevee.co.uk/imagebin/language_selection2.png

> 3) The new stuff is asynchronous and event (er, SIGNAL)
> driven, but I do miss simple synchronous Dialog/Popups
> (e.g.  DialogCode value = MythPopupBox::blah(...))
>
> Can we have an easy way to block until the user clicks?

You aren't the first person to ask. I've discussed this a few times with Isaac 
and just now with Daniel, the concensus is that nothing in the UI thread 
should be blocking.

I've done what I can to offer choice and flexibility to the dialogs, 
mythdialogbox in particular so that it might suit a wide variety or 
situations. This means you can pick between events or signals, each has it's 
strengths and weaknesses; You can store just about anything with a result, so 
it might be an object pointer, a string or int corresponding to the selected 
entry.

Blocking in the UI thread prevents things like animations from working and 
probably worse. For all the extra work this creates that may mean threading 
off actions like searching the filesystem.

> 4) A few of our themes are missing some needed elements?
> e.g. playback-video:
>
> Is there a list of essential/optional elements?
>
> If not, a Wiki page, text file or Perl checking script
> might be useful?

Not yet, I plan to a wiki page listing every optional and required element on 
each screen along with a description of what each does. With mythui I plan to 
make much more optional and add additional optional elements, so this will be 
a big job and probably be split over several wiki pages. 

I'd appreciate all help in getting this started.
-- 
Stuart Morgan


More information about the mythtv-dev mailing list