implement 'setup modes' (simple, intermediate, expert)
authorFelix Domke <tmbinc@elitedvb.net>
Wed, 29 Aug 2007 13:43:51 +0000 (13:43 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Wed, 29 Aug 2007 13:43:51 +0000 (13:43 +0000)
data/setup.xml
lib/python/Components/UsageConfig.py
lib/python/Screens/Setup.py

index 408927fd6be0aad129cd40111aad486ed2c2d0d8..f3854b525677b3f27bef7db430f22571487e6ce6 100644 (file)
@@ -1,38 +1,39 @@
 <setupxml>
                <setup key="rc" title="RC Menu">
-                       <item text="Repeat">config.inputDevices.repeat</item>
-                       <item text="Delay">config.inputDevices.delay</item>
-                       <item text="Keymap">config.rc.map</item>
+                       <item level="0" text="Repeat">config.inputDevices.repeat</item>
+                       <item level="0" text="Delay">config.inputDevices.delay</item>
+                       <item level="0" text="Keymap">config.rc.map</item>
                </setup>
                <setup key="timezone" title="Timezone">
-                       <item text="Timezone">config.timezone.val</item>
+                       <item level="0" text="Timezone">config.timezone.val</item>
                </setup>
                <setup key="avsetup" title="A/V Settings">
-                       <item text="Color Format">config.av.colorformat</item>
-                       <item text="Aspect Ratio">config.av.aspectratio</item>
-                       <item text="TV System">config.av.tvsystem</item>
-                       <item text="WSS on 4:3">config.av.wss</item>
-                       <item text="AC3 default">config.av.defaultac3</item>
-                       <item text="VCR Switch">config.av.vcrswitch</item>
+                       <item level="0" text="Color Format">config.av.colorformat</item>
+                       <item level="0" text="Aspect Ratio">config.av.aspectratio</item>
+                       <item level="0" text="TV System">config.av.tvsystem</item>
+                       <item level="1" text="WSS on 4:3">config.av.wss</item>
+                       <item level="0" text="AC3 default">config.av.defaultac3</item>
+                       <item level="0" text="VCR Switch">config.av.vcrswitch</item>
                </setup>
                <setup key="usage" title="Customize">
-                       <item text="Recordings always have priority">config.recording.asktozap</item>
-                       <item text="Margin before record (minutes)">config.recording.margin_before</item>
-                       <item text="Margin after record">config.recording.margin_after</item>
-                       <item text="Show positioner movement">config.usage.showdish</item>
-                       <item text="Enable multiple bouquets">config.usage.multibouquet</item>
-                       <item text="Change bouquets in quickzap">config.usage.quickzap_bouquet_change</item>
-                       <item text="Alternative radio mode">config.usage.e1like_radio_mode</item>
-                       <item text="Infobar timeout">config.usage.infobar_timeout</item>
-                       <item text="12V output">config.usage.output_12V</item>
-                       <item text="Show infobar on channel change">config.usage.show_infobar_on_zap</item>
-                       <item text="Show infobar on skip forward/backward">config.usage.show_infobar_on_skip</item>
-                       <item text="Show infobar on event change">config.usage.show_infobar_on_event_change</item>
-                       <item text="Custom skip time for 1/3 keys">config.usage.self_defined_seek</item>
-                       <item text="Behaviour of 0 key in PiP-mode">config.usage.pip_zero_button</item>
+                       <item level="0" text="Setup Mode">config.usage.setup_level</item>
+                       <item level="1" text="Recordings always have priority">config.recording.asktozap</item>
+                       <item level="0" text="Margin before record (minutes)">config.recording.margin_before</item>
+                       <item level="0" text="Margin after record">config.recording.margin_after</item>
+                       <item level="1" text="Show positioner movement">config.usage.showdish</item>
+                       <item level="1" text="Enable multiple bouquets">config.usage.multibouquet</item>
+                       <item level="1" text="Change bouquets in quickzap">config.usage.quickzap_bouquet_change</item>
+                       <item level="1" text="Alternative radio mode">config.usage.e1like_radio_mode</item>
+                       <item level="0" text="Infobar timeout">config.usage.infobar_timeout</item>
+                       <item level="1" text="12V output">config.usage.output_12V</item>
+                       <item level="2" text="Show infobar on channel change">config.usage.show_infobar_on_zap</item>
+                       <item level="2" text="Show infobar on skip forward/backward">config.usage.show_infobar_on_skip</item>
+                       <item level="2" text="Show infobar on event change">config.usage.show_infobar_on_event_change</item>
+                       <item level="2" text="Custom skip time for 1/3 keys">config.usage.self_defined_seek</item>
+                       <item level="2" text="Behaviour of 0 key in PiP-mode">config.usage.pip_zero_button</item>
                </setup>
                <setup key="harddisk" title="Harddisk setup">
-                       <item text="Harddisk standby after">config.usage.hdd_standby</item>
+                       <item level="0" text="Harddisk standby after">config.usage.hdd_standby</item>
                </setup>
                <setup key="network" title="Network setup">
                        <item text="Use DHCP">config.network.dhcp</item>
                        <item text="Activate network settings">config.network.activate</item>
                </setup>
                <setup key="RFmod" title="RF output">
-                       <item text="Modulator">config.rfmod.enable</item>
-                       <item text="Test mode">config.rfmod.test</item>
-                       <item text="Sound">config.rfmod.sound</item>
-                       <item text="Soundcarrier">config.rfmod.soundcarrier</item>
-                       <item text="Channel">config.rfmod.channel</item>
-                       <item text="Finetune">config.rfmod.finetune</item>
+                       <item level="0" text="Modulator">config.rfmod.enable</item>
+                       <item level="1" text="Test mode">config.rfmod.test</item>
+                       <item level="1" text="Sound">config.rfmod.sound</item>
+                       <item level="1" text="Soundcarrier">config.rfmod.soundcarrier</item>
+                       <item level="0" text="Channel">config.rfmod.channel</item>
+                       <item level="0" text="Finetune">config.rfmod.finetune</item>
                </setup>
                <setup key="keyboard" title="Keyboard Setup">
-                       <item text="Keyboard Map">config.keyboard.keymap</item>
+                       <item level="0" text="Keyboard Map">config.keyboard.keymap</item>
                </setup>
                <setup key="osd" title="OSD Settings">
                        <item text="Alpha">config.osd.alpha</item>
                        <item text="Contrast">config.osd.contrast</item>
                </setup>
                <setup key="lcd" title="Display Setup">
-                       <item text="Brightness">config.lcd.bright</item>
-                       <item text="Contrast">config.lcd.contrast</item>
-                       <item text="Standby">config.lcd.standby</item>
-                       <item text="Invert display">config.lcd.invert</item>
+                       <item level="0" text="Brightness">config.lcd.bright</item>
+                       <item level="0" text="Contrast">config.lcd.contrast</item>
+                       <item level="0" text="Standby">config.lcd.standby</item>
+                       <item level="1" text="Invert display">config.lcd.invert</item>
                </setup>
                <setup key="satconfig" title="Sat / Dish Setup">
                        <item text="Tuner Slot">config.sat.tunerslot</item>
index d122a4f7ef54869e9c996f1076caebebafa3b9d7..581e7cea6ac4b8f7c9fad98414e1209451b2531c 100644 (file)
@@ -29,6 +29,11 @@ def InitUsageConfig():
                ("standard", _("standard")), ("swap", _("swap PiP and main picture")),
                ("swapstop", _("move PiP to main picture")), ("stop", _("stop PiP")) ])
 
+       config.usage.setup_level = ConfigSelection(default = "intermediate", choices = [
+               ("simple", _("Simple")),
+               ("intermediate", _("Intermediate")),
+               ("expert", _("Expert")) ])
+
        def setHDDStandby(configElement):
                os.system("hdparm -S" + configElement.value + " /dev/ide/host0/bus0/target0/lun0/disc")
        config.usage.hdd_standby.addNotifier(setHDDStandby)
index f6fb09bdc90ceb270c9966a4058ceb79a9df8497..9c5c1e7dd72275df00d03f312b2b7ae10bd9e382 100644 (file)
@@ -113,6 +113,11 @@ class Setup(ConfigListScreen, Screen):
                        if x.nodeType != xml.dom.minidom.Element.nodeType:
                                continue
                        elif x.tagName == 'item':
+                               item_level = int(x.getAttribute("level") or "0")
+
+                               if item_level > config.usage.setup_level.index:
+                                       continue
+
                                item_text = _(x.getAttribute("text").encode("UTF-8") or "??")
                                b = eval(XMLTools.mergeText(x.childNodes));
                                if b == "":