Kodi Community Forum

Full Version: Ideas/suggestions for the new settings system
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
hi all again.

seeing as the buttonscroller for the homepage is basically done, i'm starting to code up some stuff for the new settings system.

the idea is that all the 20 or so settings screens will be replaced by 1 screen that handles everything. thus, only 1 settings.xml file will be needed, and the amount of information contained in that .xml file will hopefully only change very rarely.

the idea is that you as skinners will define some default buttons/controls etc. as well as backdrops and the like, and xbmc will take over and do all the layout work for you.

the plan is to have a buttonscroller on the left (or right, or bottom - wherever you as the skinner want it) which will list all the various settings categories (similar to the settings window at the moment, but in a simple list of buttons.)

then, there'll be a settings area which will be where xbmc renders the items for a particular category. it will grab the information from settings.xml to describe how each control should look, and will then lay everything out. this should be reasonably easy, as each group of settings can simply be displayed as a list (as they are already on most of the screens).

what i need to know, is what you'd like control over. obviously there are several settings screens (screen calibration, ui calibration in particular) that will need to stay as-is, but most of the other ones can be auto-layed out with very little difficulty.

now, i expect that we'll need the following:

1. a default checkmark button
2. a default spin control (and it's associated label buddy control)
3. a default button to use to do popup things such as where the virtual keyboard needs invoking (eg for weather lookups, ip fields etc.)
4. the space which xbmc can use to layout the controls.
5. the amount of space that xbmc should reserve between controls (ie a specified vertical gap).

i expect that we'll need to make the area in which xbmc uses to layout controls scrollable at least vertically, as it is feasible that we wish to have more settings in a category than will fit on an ntsc screen for instance.

i'm also interested in incorporating an "advanced settings" option (which will default to off) that effectively hides a lot of the fiddly things that 99.9% of users will never need. at the moment, xbmc has far too many options in my opinion, and so we should do our best to either scrap options completely, or hide ones that users are never going to actually use away.

how should this system work, however? should it be an option on the first settings pane (that effects all the other panes), or should it be a separate option somewhere other than a pane (eg below the button scroller or something?)

you guys are the asthetic people, and this is obviously going to break the mold of the skinning system quite substantially, so it's you guys that need to tell me what you're after, so i can make sure that we deliver as close to what you want as possible, while simplifying the whole skinning process, as well as the presentation to users.

let the comments commence Smile

cheers,
jonathan
Quote:the plan is to have a buttonscroller on the left (or right, or bottom - wherever you as the skinner want it) which will list all the various settings categories (similar to the settings window at the moment, but in a simple list of buttons.)
i'd like to see a context or sub menu for this part. settings categories are just a row of buttons that don't include any spin control or specific labels. context or submenu can be used for the buttons included today in settings.xml and settingsgeneral.xml, in a first step show a context menu with the "settings" buttons, then when i select "general" show a new context menu with the "settingsgeneral" options. after this when i come to my final selection switch off the context menu and show the appropriate setting window.
i'm also thinking about the possibility to have a special button combinations to let me go in the settings from every window, for example pushing black+white. i don't like to go back all the times to the home window.
Quote:how should this system work, however? should it be an option on the first settings pane (that effects all the other panes), or should it be a separate option somewhere other than a pane (eg below the button scroller or something?)
first one is fine for me, a checkmark in the first settings pane that effects the other panes.

ciaoooo.
thanks for the comments, kotix.

while i agree that as much space as possible on screen should be available to the settings, i think there is some benefit in leaving the categories on screen at the same time as the settings for the particular category you are currently in.

note that the general settings categories are likely going to be merged in with the other settings, or a better heirachy come up with. if we find we need too many categories to hold everything, then we might do a heirachial system (ie just 5 or so main categories, each with a set number of sub-categories).

each settings "pane" will be linkable from any other window via the context menu in those screens (see the current my pictures for instance Smile

on a related note, check out my new post on making the context menu more obvious.

cheers,
jonathan
Quote:i'm also interested in incorporating an "advanced settings" option (which will default to off) that effectively hides a lot of the fiddly things that 99.9% of users will never need. at the moment, xbmc has far too many options in my opinion, and so we should do our best to either scrap options completely, or hide ones that users are never going to actually use away.

how should this system work, however? should it be an option on the first settings pane (that effects all the other panes), or should it be a separate option somewhere other than a pane (eg below the button scroller or something?)

i like this idea a lot.
it would be great if there was a button above or below the scroller so you can toggle them on or off, but it would be difficult to navigate to (onup/ondown from a scroller?).
maybe it can be triggered by a button press and you can put instructions for it on the bottom of the screen?

a quick example..

Image

and it would change to "for standard options press black or title" when the advanced options are enabled?
good suggestion - i like it.

i'm starting to think we'll need a heirachy of categories for the settings. it might pay to have some sort of an expanding list view (similar to a treeview) whereby there's a set of major categories (along with the most changed options immediately accessible) and under these, there'd be a list of not-so frequently accessed items. not really sure if we'll need it or not - we'll see.

any + all ideas, as per usual, are appreciated Smile

cheers,
jonathan
> it might pay to have some sort of an expanding list view (similar to a treeview)
i agree.
but only for some advanced settings in every category.

it would also be nice to have some 'intelligent' hiding option.
hide options that can't be used.
if e.g. there is no network-cable pluged in, there is no need to show options for it (also audio etc.).
i don't know if all hardware components can be checked to hide the settings-options.
yeah - hardware checking is possible.

not sure about the network stuff explicitly - i'm not sure whether the xbox can detect a network presence or not (for instance if it's own network settings are screwed up, can it detect that a cable is present?)

audio + video stuff can be hidden (and will be) based on context.

however, even with all this, there is still a fair amount of settings etc. that can be played with. most of them, however, are not particularly important for most users, and thus i think we can safely hide them away (under advanced settings) by making some intelligent decisions about what defaults to use.

i guess the best thing to do is to simply list all the settings and try and categorize all of them into various types (necessary, advanced, and not needed).

once we have an idea of the number of settings we have now (and the number of things we'd want to change in the future) then we can start coming up with how best to display them.

i'll start going through the settings tonight and may start a new thread for input once i've got an idea on how it might all go.

i think the basic principles that we have here in this thread are good, and i'll start coding the back-end stuff so that the settings structure from within the code will allow fairly easy rearrangement of things.

if you have any suggestions on what you'd like control over from a graphical perspective, let me know. (eg do you mind if we just have vertical lists, or would you prefer them to be able to be on an angle (eg symbol skin for instance).

cheers,
jonathan
(jmarshall @ nov. 12 2004,11:59 Wrote:not sure about the network stuff explicitly - i'm not sure whether the xbox can detect a network presence or not (for instance if it's own network settings are screwed up, can it detect that a cable is present?)
we have two functions in cutil, isethernetconnected() and isnetworkup() maybe this is a way to go? Huh

greets

bobbin007
any news about the new settings system ?
indeed - i believe it is time for an update.

basically, proof of concept is complete (i have ported the old slideshow, programs + kai settings to the new system and they work well).

there will be 2 .xml files total.

settings.xml will contain as it does now - a bunch of links to the main categories (of which there will be 8 i think).

then there'll be an extra .xml file, likely called settingscategory.xml that contains the following:

1. any images to make up the background.

2. a label control for the text heading of the settings category we are in.

3. default controls for buttons, spin controls, checkmark controls.

4. image controls defining the button area on the left, and the controls area on the right. (using image controls just to get positioning/width/height information)

5. image controls defining the gaps between buttons on the left, and gaps between the controls on the right (once again, only using the positioning information).

from this, xbmc will render the settings screens itself.

i hope to have it all done in the next couple of weeks - it's a fairly slow process of transferring from the old system to the new one as there's a whole bunch of stuff to change from the code perspective.

cheers,
jonathan
just wanted to drop a line and say that the new settings system is great!! :kickass:

really really good job jmarshall :bowdown:
i second that Wink
(chokemaniac @ dec. 02 2004,20:08 Wrote:i second that Wink
ofcource a big thank you also chokemaniac Blush

looks great.
jonathan
your work and direction of xbmc is truly inspirational latley cheers for all the work........ any hints on what you have planned to work on. the last major updates from you have been great direction changes Smile

cheers from me.
Quote:02-12-2004: new settings system.  !!! breaks every skin known to man !!!

best changelog message ever. :d

nice work as always.
you rock.

i loved being able to do this. :p
Quote:cvs remove: scheduling `settingsaudiooptions.xml' for removal
cvs remove: scheduling `settingsautorun.xml' for removal
cvs remove: scheduling `settingscdripper.xml' for removal
cvs remove: scheduling `settingscache.xml' for removal
cvs remove: scheduling `settingscdg.xml' for removal
cvs remove: scheduling `settingsfilter.xml' for removal
cvs remove: scheduling `settingsgeneral.xml' for removal
cvs remove: scheduling `settingslcd.xml' for removal
cvs remove: scheduling `settingsmymusic.xml' for removal
cvs remove: scheduling `settingsmyvideo.xml' for removal
cvs remove: scheduling `settingsnetwork.xml' for removal
cvs remove: scheduling `settingsnetworkftp.xml' for removal
cvs remove: scheduling `settingsnetworkip.xml' for removal
cvs remove: scheduling `settingsnetworkkai.xml' for removal
cvs remove: scheduling `settingsnetworkproxy.xml' for removal
cvs remove: scheduling `settingsnetworktime.xml' for removal
cvs remove: scheduling `settingsnetworkweb.xml' for removal
cvs remove: scheduling `settingsosd.xml' for removal
cvs remove: scheduling `settingsprofile.xml' for removal
cvs remove: scheduling `settingsprograms.xml' for removal
cvs remove: scheduling `settingsscreensubtitles.xml' for removal
cvs remove: scheduling `settingsscreensaver.xml' for removal
cvs remove: scheduling `settingsskinlanguage.xml' for removal
cvs remove: scheduling `settingsslideshow.xml' for removal
cvs remove: scheduling `settingssystem.xml' for removal
cvs remove: scheduling `settingssysteminfo.xml' for removal
cvs remove: scheduling `settingsuserinterface.xml' for removal
cvs remove: use 'cvs commit' to remove these files permanently
Pages: 1 2