Esempio n. 1
0
    def __init__(self):
        assistant = gtk.Assistant()

        assistant.set_title("New odML-Document wizard")
        assistant.set_default_size(800, 500)
        assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        assistant.connect("apply", self.apply)
        assistant.connect("close", self.cancel)
        assistant.connect("cancel", self.cancel)

        # General information and URL to a terminology repository
        data_page = DataPage()
        data_page.deploy(assistant, "Document information")
        self.data_page = data_page

        # Page displaying terminology sections available for import
        # via the terminology URL in the DataPage.
        section_page = SectionPage()
        section_page.data = data_page
        section_page.deploy(assistant, "Repository section import")
        self.section_page = section_page

        # Wrap up page before the new document is created
        SummaryPage().deploy(assistant, "Complete")

        assistant.connect("prepare", self.prepare)
        assistant.show_all()
Esempio n. 2
0
    def __init__(self):
        assistant = gtk.Assistant()

        assistant.set_title("New odML-Document wizard")
        assistant.set_default_size(-1, 500)

        assistant.connect("apply", self.apply)
        assistant.connect("close", self.cancel)
        assistant.connect("cancel", self.cancel)

        IntroPage().deploy(assistant, "New Document Wizard")

        data_page = DataPage()
        data_page.deploy(assistant, "Setup generic information")
        self.data_page = data_page

        section_page = SectionPage()
        section_page.data = data_page
        section_page.deploy(
            assistant, "Select which sections to import from the repository")
        self.section_page = section_page

        SummaryPage().deploy(assistant, "Complete")

        assistant.connect('prepare', self.prepare)
        # third page loads the repository and offers which sections to import
        # initially
        assistant.show_all()
Esempio n. 3
0
 def __init__(self):
     self.assistant = gtk.Assistant()
     self.assistant.set_title(_('Knoppix Remasterscript'))
     self.assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS)
     self.assistant.set_icon_from_file(
         os.path.join(os.path.dirname(__file__), 'resources', 'icon.png'))
     self.assistant.connect('prepare', self._prepare_page)
     self._setup_page_welcome()
     self._setup_page_unpack()
     self._setup_page_remaster()
     self._pulse = None
Esempio n. 4
0
    def init_gui(self):
        self.assistant = gtk.Assistant()
        #self.assistant.set_forward_page_func(None, None)

        widget = self.page_wellcome()
        self.assistant.append_page(widget)
        self.assistant.set_page_title(widget, 'Bicéfalo')
        self.assistant.set_page_type(widget, gtk.ASSISTANT_PAGE_INTRO)
        self.assistant.set_page_complete(widget, True)

        widget = self.page_number_of_seats()
        self.assistant.append_page(widget)
        self.assistant.set_page_title(widget, 'Number of seats')
        self.assistant.set_page_complete(widget, True)

        self.monitores = MonitoresGUI()
        widget = self.monitores.init_gui_area()
        self.assistant.append_page(widget)
        self.assistant.set_page_title(widget, 'Screen')
        self.assistant.set_page_complete(widget, True)

        self.number_of_seats_entry.set_text(
            str(len(self.monitores.modes_combos)))

        self.mouse_keyboard = MouseKeyboard()
        widget = self.mouse_keyboard.init_gui_area(
            int(self.number_of_seats_entry.get_text()))
        self.assistant.append_page(widget)
        self.assistant.set_page_title(widget, 'Mouse and Keyboard')
        self.assistant.set_page_complete(widget, True)

        self.usbs = USBsGUI(int(self.number_of_seats_entry.get_text()))
        widget = self.usbs.init_gui_area()
        self.assistant.append_page(widget)
        self.assistant.set_page_title(widget, 'USB')
        self.assistant.set_page_complete(widget, True)

        widget = self.page_final()
        self.assistant.append_page(widget)
        self.assistant.set_page_title(widget, 'Summary')
        self.assistant.set_page_type(widget, gtk.ASSISTANT_PAGE_CONFIRM)
        self.assistant.set_page_complete(widget, True)
        self.final_widget = widget

        self.assistant.update_buttons_state()

        self.number_of_seats_entry.connect("changed",
                                           self.update_number_seats_callback)
        #self.assistant.connect("close", self.destroy)
        self.assistant.connect("cancel", self.destroy)
        self.assistant.connect("set-focus-child", self.summary_check_callback)
        self.assistant.connect("apply", self.apply_callback)

        return self.assistant
Esempio n. 5
0
    def __init__(self):
        self.assistant = gtk.Assistant()
        self.assistant.set_title(_('Knoppix Remasterscript'))
        self.assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.assistant.set_icon_from_file(
            os.path.join(os.path.dirname(__file__), 'resources', 'icon.png'))
        self.assistant.connect('prepare', self._prepare)

        self.script = Script(build, _steps)
        self.script.event('success').connect(self._success)

        self._setup_page_welcome()
        self._setup_page_summary()
        self._setup_page_build()
        self._setup_page_finished()
Esempio n. 6
0
    def __init__(self):
        subprocess.call('sudo /etc/init.d/flumotion restart', shell=True)
        subprocess.call('xset s off', shell=True)
        subprocess.call('xset -dpms', shell=True)

        # Stop the screensaver and screen blanking
        self.inhibitor = inhibitor.Inhibitor()
        self.inhibitor.inhibit(reason="Video streaming!")

        flumotion = FlumotionConnection()

        xml = PortableXML()
        self.xml = xml

        assistant = gtk.Assistant()
        self.assistant = assistant

        battery = BatteryPage(assistant, xml)
        network = NetworkPage(assistant, xml)
        presentation = PresentationPage(assistant, xml)
        camera = CameraPage(assistant, xml)

        audio_inroom = AudioInRoomPage(flumotion, assistant, xml)
        #audio_standalone = AudioStandAlonePage(flumotion, assistant, xml)

        #interaction = xml.get_page("interaction")
        #assistant.append_page(interaction)
        #assistant.set_page_title(interaction, "Interaction Setup")
        #assistant.set_page_type(interaction, gtk.ASSISTANT_PAGE_CONTENT)
        #assistant.set_page_complete(interaction, False)
        success = SuccessPage(flumotion, assistant, xml)

        # and the window
        assistant.show_all()
        assistant.connect("close", gtk.main_quit, "WM destroy")
        assistant.fullscreen()
Esempio n. 7
0
    def __init__(self):
        assistant = gtk.Assistant()

        assistant.set_title("New odML-Document wizard")
        assistant.set_default_size(800, 500)
        assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        assistant.connect("apply", self.apply)
        assistant.connect("close", self.cancel)
        assistant.connect("cancel", self.cancel)

        data_page = DataPage()
        data_page.deploy(assistant, "Document information")
        self.data_page = data_page

        section_page = SectionPage()
        section_page.data = data_page
        section_page.deploy(assistant, "Repository section import")
        self.section_page = section_page

        SummaryPage().deploy(assistant, "Complete")

        assistant.connect('prepare', self.prepare)
        # third page loads the repository and offers which sections to import initially
        assistant.show_all()
    def __init__(self, apply_callback):
        """ Initialize assistant window """
        self.apply_callback = apply_callback

        #
        # init project datas
        #
        self.project_data = dict()

        self.assistant = gtk.Assistant()
        self.assistant.connect('delete-event', self.on_quit)
        self.assistant.connect('destroy-event', self.on_quit)

        self.assistant.connect('apply', self.on_apply)
        self.assistant.connect('cancel', self.on_cancel)
        self.assistant.connect('close', self.on_close)
        self.assistant.connect('prepare', self.on_prepare)

        self.assistant.set_property('title', _('Luciole project assistant'))

        # assistant logo with no text
        image = LIMG.Image('images/luciole_logo.png', True, 2, False)

        #
        # configure page 1
        #
        self.p1 = Page_intro(self.assistant, self.project_data)
        self.assistant.append_page(self.p1)
        self.assistant.set_page_title(self.p1, _(' Select a project path '))
        self.assistant.set_page_type(self.p1, gtk.ASSISTANT_PAGE_INTRO)
        self.assistant.set_page_side_image(self.p1, image.pixbuf_thumb)

        #
        # configure page 2
        #
        self.p2 = Page_matos(self.assistant, self.project_data)
        self.assistant.append_page(self.p2)
        self.assistant.set_page_title(self.p2, _(' Select hardware '))
        self.assistant.set_page_type(self.p2, gtk.ASSISTANT_PAGE_CONTENT)
        self.assistant.set_page_complete(self.p2, True)
        self.assistant.set_page_side_image(self.p1, image.pixbuf_thumb)

        #
        # configure page 3
        #
        self.p3 = Page_webcam(self.assistant, self.project_data)
        self.assistant.append_page(self.p3)
        self.assistant.set_page_title(self.p3, _(' Webcam detection '))
        #self.assistant.set_page_type( self.p3,  gtk.ASSISTANT_PAGE_PROGRESS)
        self.assistant.set_page_type(self.p3, gtk.ASSISTANT_PAGE_CONTENT)
        self.assistant.set_page_side_image(self.p1, image.pixbuf_thumb)

        #
        # configure page 4
        #
        self.p4 = Page_summary(self.assistant, self.project_data)
        self.assistant.append_page(self.p4)
        self.assistant.set_page_title(self.p4, _(' Project overview '))
        self.assistant.set_page_type(self.p4, gtk.ASSISTANT_PAGE_CONFIRM)
        self.assistant.set_page_complete(self.p4, True)
        self.assistant.set_page_side_image(self.p1, image.pixbuf_thumb)

        # page_func setup : used to manage the page sequences.
        self.assistant.set_forward_page_func(self.page_func)

        self.assistant.show_all()
Esempio n. 9
0
        def add_toolbar_button_assistant():
            def cb_close(assistant):
                assi.destroy()
                return False

            def cb_name_entry_key_press(entry, event):
                assi.set_page_complete(entry.get_parent(),
                                       len(entry.get_text()) > 0)

            def cb_func_entry_key_press(entry, event):
                assi.set_page_complete(entry.get_parent(),
                                       len(entry.get_text()) > 0)

            def cb_entry_key_press(entry, event):
                assi.set_page_complete(entry.get_parent(),
                                       len(entry.get_text()) > 0)

            def cb_apply(assistant):
                name_str = name_entry.get_text()
                func_str = func_entry.get_text()
                save_qm = radiobutton_yes.get_active()
                icon_iter = icon_combobox.get_active_iter()
                icon = None
                if (icon_iter):
                    icon, icon_stock, icon_filename = icon_model.get(
                        icon_iter, 0, 1, 2)
                    if (icon_stock):
                        icon = icon_stock

                coot_toolbar_button(name_str, func_str, icon)
                if (save_qm):
                    save_toolbar_to_init_file(name_str, func_str, icon)

            assi = gtk.Assistant()
            assi.set_title("Toolbutton Assistant")

            assi.connect('delete_event', cb_close)
            assi.connect('close', cb_close)
            assi.connect('cancel', cb_close)
            assi.connect('apply', cb_apply)

            # Construct page 0 (enter the button name)
            vbox = gtk.VBox(False, 5)
            vbox.set_border_width(5)
            vbox.show()
            assi.append_page(vbox)
            assi.set_page_title(vbox, 'Create a new Coot toolbutton')
            assi.set_page_type(vbox, gtk.ASSISTANT_PAGE_CONTENT)

            label = gtk.Label(
                "Please enter the name for the new toolbutton...")
            label.set_line_wrap(True)
            label.show()
            vbox.pack_start(label, True, True, 0)

            name_entry = gtk.Entry()
            name_entry.connect("key-press-event", cb_name_entry_key_press)
            name_entry.show()
            vbox.pack_end(name_entry)
            # check if name exists!!!!

            # Construct page 1 (enter the function)
            vbox = gtk.VBox(False, 5)
            vbox.set_border_width(5)
            vbox.show()
            assi.append_page(vbox)
            assi.set_page_title(vbox, 'Set the function')
            assi.set_page_type(vbox, gtk.ASSISTANT_PAGE_CONTENT)

            label = gtk.Label(
                "Please enter the python function... (e.g. refine_active_residue())"
            )
            label.set_line_wrap(True)
            label.show()
            vbox.pack_start(label, True, True, 0)

            func_entry = gtk.Entry()
            func_entry.connect("key-press-event", cb_func_entry_key_press)
            func_entry.show()
            vbox.pack_start(func_entry, True, True, 0)
            # add advanced option? FIXME (for callable func and args!?)
            #adv_button = gtk.Button("Advanced options...")
            #adv_button.show()
            #vbox.pack_start(adv_button, False, False, 0)

            # Construct page 2 (save?)
            vbox = gtk.VBox(False, 5)
            vbox.set_border_width(5)
            vbox.show()
            assi.append_page(vbox)
            assi.set_page_title(vbox, 'Save to preferences?')
            assi.set_page_type(vbox, gtk.ASSISTANT_PAGE_CONTENT)

            label = gtk.Label(
                "Do you want to save the button in your preferences?")
            label.set_line_wrap(True)
            label.show()
            vbox.pack_start(label, True, True, 0)

            radiobutton_yes = gtk.RadioButton(None, "Yes")
            radiobutton_no = gtk.RadioButton(radiobutton_yes, "No")
            radiobutton_yes.set_active(True)
            radiobutton_yes.show()
            radiobutton_no.show()
            vbox.pack_start(radiobutton_yes, True, True, 0)
            vbox.pack_start(radiobutton_no, True, True, 0)
            assi.set_page_complete(radiobutton_yes.get_parent(), True)

            # Construct page 3 (select icon)
            vbox = gtk.VBox(False, 5)
            vbox.set_border_width(5)
            vbox.show()
            assi.append_page(vbox)
            assi.set_page_title(vbox, 'Select an icon')
            assi.set_page_type(vbox, gtk.ASSISTANT_PAGE_CONTENT)

            label = gtk.Label("Please select an icon or leave as it is...")
            label.set_line_wrap(True)
            label.show()
            vbox.pack_start(label, True, True, 0)

            hbox = gtk.HBox(False, 5)
            icon_model = make_icons_model()
            icon_combobox = icon_selection_combobox(icon_model)
            icon_combobox.show()
            hbox.show()
            hbox.pack_start(icon_combobox, True, False, 2)
            vbox.pack_end(hbox)
            assi.set_page_complete(label.get_parent(), True)

            # Final page
            # As this is the last page needs to be of page_type
            # gtk.ASSISTANT_PAGE_CONFIRM or gtk.ASSISTANT_PAGE_SUMMARY
            label = gtk.Label('Thanks for using the toolbutton assistent!')
            label.set_line_wrap(True)
            label.show()
            assi.append_page(label)
            assi.set_page_title(label, 'Finish')
            assi.set_page_complete(label, True)
            assi.set_page_type(label, gtk.ASSISTANT_PAGE_CONFIRM)

            assi.show()
Esempio n. 10
0
    def __init__(self):
        self.capturing = False
        assistant = gtk.Assistant()
        self.assistant = assistant

        f = open('/proc/asound/cards', 'r')
        cards = {}
        for c in f.read().split('\n'):
            try:
                dev = int(c.lstrip().split(' ')[0])
                name = c.split(']: ')[1]
                cards[dev] = name
            except:
                pass
        f.close()

        output = subprocess.Popen(['xrandr', '-q'],
                                  stdin=subprocess.PIPE,
                                  stdout=subprocess.PIPE).communicate()[0]
        resolutions = []
        for line in output.split('\n'):
            try:
                if line.startswith('Screen'):
                    res = line.split(',')[1].strip().split(' ')
                    resolutions += ["%sx%s+0+0" % (res[1], res[3])]
                elif line.find(' connected ') > 0:
                    resolutions += [line.split(' ')[2]]
            except:
                pass

        assistant.connect("close", self.button_pressed, "Close")
        assistant.connect("cancel", self.button_pressed, "Cancel")

        vbox = gtk.VBox()
        vbox.set_border_width(5)
        page = assistant.append_page(vbox)
        assistant.set_page_title(vbox, "Page 1: Intro")
        assistant.set_page_type(vbox, gtk.ASSISTANT_PAGE_INTRO)
        label = gtk.Label('Screen recording for Opencast Matterhorn…')
        label.set_line_wrap(True)
        vbox.pack_start(label, True, True, 0)
        assistant.set_page_complete(vbox, True)

        table = gtk.Table(5, 2)
        table.set_col_spacings(3)
        assistant.append_page(table)
        assistant.set_page_title(table, "Page 2: Select options")
        assistant.set_page_type(vbox, gtk.ASSISTANT_PAGE_CONTENT)
        # Device selection
        label = gtk.Label("Select device for audio input:")
        self.cardchooser = gtk.combo_box_new_text()
        for d, n in cards.items():
            self.cardchooser.append_text(str(d) + ': ' + n)
        self.cardchooser.append_text('pulse')
        self.cardchooser.set_active(0)
        table.attach(label, 0, 1, 0, 1)
        table.attach(self.cardchooser, 1, 2, 0, 1)
        # Rregion
        label = gtk.Label("Region to capture:")
        #self.regionentry = gtk.Entry()
        #self.regionentry.set_text( "1920x1200+0+0" )
        self.regionentry = gtk.Combo()
        self.regionentry.set_popdown_strings(resolutions)
        table.attach(label, 0, 1, 1, 2)
        table.attach(self.regionentry, 1, 2, 1, 2)
        # Output file
        label = gtk.Label("select output file:")
        #self.filechooserbutton = gtk.FileChooserButton("Select A File", None)
        self.filechooserbutton = gtk.Entry()
        table.attach(label, 0, 1, 2, 3)
        table.attach(self.filechooserbutton, 1, 2, 2, 3)
        # Audio codec
        label = gtk.Label("Select audio codec:")
        self.acodecchooser = gtk.combo_box_new_text()
        for codec in ['flac', 'libmp3lame', 'libvorbis', 'vorbis', 'aac']:
            self.acodecchooser.append_text(codec)
        self.acodecchooser.set_active(0)
        table.attach(label, 0, 1, 3, 4)
        table.attach(self.acodecchooser, 1, 2, 3, 4)
        # Video codec
        label = gtk.Label("Select video codec:")
        self.vcodecchooser = gtk.combo_box_new_text()
        for codec in [
                'mpeg2video', 'libtheora', 'theora', 'vp8', 'libx264',
                'libxvid', 'ljpeg', 'flv'
        ]:
            self.vcodecchooser.append_text(codec)
        self.vcodecchooser.set_active(0)
        table.attach(label, 0, 1, 4, 5)
        table.attach(self.vcodecchooser, 1, 2, 4, 5)
        # page complete
        assistant.set_page_complete(table, True)

        vbox = gtk.VBox()
        vbox.set_border_width(5)
        assistant.append_page(vbox)
        assistant.set_page_title(vbox, "Page 3: Start capturing")
        assistant.set_page_type(vbox, gtk.ASSISTANT_PAGE_PROGRESS)
        self.capturebutton = gtk.Button('Start capturing…')
        vbox.pack_start(self.capturebutton, False, False, 0)
        self.capturebutton.connect('clicked', self.capture)

        vbox = gtk.VBox()
        vbox.set_border_width(5)
        assistant.append_page(vbox)
        assistant.set_page_title(vbox, "Page 4: The Finale")
        assistant.set_page_type(vbox, gtk.ASSISTANT_PAGE_SUMMARY)
        label = gtk.Label("TODO: Upload to Opencast Matterhorn…")
        label.set_line_wrap(True)
        vbox.pack_start(label, True, True, 0)
        assistant.set_page_complete(vbox, True)

        assistant.show_all()
Esempio n. 11
0
    def __init__(self, setup_profiles):
        self.setup_profiles = setup_profiles
        self.assistant = gtk.Assistant()
        self.assistant.connect('delete_event', self.delete)
        self.assistant.connect('close', self.close)

        ## Construct Page 0
        vbox_0 = gtk.VBox(False, 5)
        vbox_0.set_border_width(5)
        vbox_0.show()

        profile_name = gtk.Entry(max=0)
        profile_name.show()
        profile_name.connect('changed', self.check_profile_name)
        vbox_0.pack_start(profile_name, True, True, 0)

        self.assistant.append_page(vbox_0)
        self.assistant.set_page_title(vbox_0, 'Profile Name')
        self.assistant.set_page_type(vbox_0, gtk.ASSISTANT_PAGE_CONTENT)

        ## Construct Page 1
        vbox_1 = gtk.VBox(False, 5)
        vbox_1.set_border_width(5)
        vbox_1.show()

        spring_binary_location = gtk.Entry(max=0)
        spring_binary_location.show()
        spring_binary_location.connect('changed', self.check_spring_binary)
        vbox_1.pack_start(spring_binary_location, True, True, 0)

        self.assistant.append_page(vbox_1)
        self.assistant.set_page_title(vbox_1, 'Spring Excuteable Location')
        self.assistant.set_page_type(vbox_1, gtk.ASSISTANT_PAGE_CONTENT)

        ## Construct Page 2
        vbox_2 = gtk.VBox(False, 5)
        vbox_2.set_border_width(5)
        vbox_2.show()

        spring_datadir_location = gtk.Entry(max=0)
        spring_datadir_location.show()
        spring_datadir_location.connect('changed', self.check_spring_datadir)
        vbox_2.pack_start(spring_datadir_location, True, True, 0)

        self.assistant.append_page(vbox_2)
        self.assistant.set_page_title(vbox_2, 'Spring Datadir Location')
        self.assistant.set_page_type(vbox_2, gtk.ASSISTANT_PAGE_CONTENT)

        ## Contstruct Page 3

        vbox_3 = gtk.VBox(False, 5)
        vbox_3.set_border_width(5)
        vbox_3.show()

        label = gtk.Label(
            "UnityLobby is still under development & multiplayer is not yet in working condition."
        )
        label.show()
        vbox_3.pack_start(label, True, True, 0)

        self.assistant.append_page(vbox_3)
        self.assistant.set_page_title(vbox_3, "Author's Notes")
        self.assistant.set_page_type(vbox_3, gtk.ASSISTANT_PAGE_SUMMARY)
        self.assistant.show()
Esempio n. 12
0
    def create_ui(self):
        self.widget = gtk.Assistant()
        self.widget.connect("prepare", self.assistant_prepared)
        self.widget.connect("cancel", self.cancel_button_clicked)
        self.widget.connect("close", self.close_button_clicked)
        self.widget.connect("apply", self.apply_button_clicked)

        # # Introduction #
        box = gtk.HBox()
        self.widget.append_page(box)
        self.widget.set_page_type(box, gtk.ASSISTANT_PAGE_INTRO)
        self.widget.set_page_title(box, "Introduction")
        content = (
            'This wizard will guide you through the process of '
            'calibrating the device load feedback measurement circuit. '
            'This feedback circuit is used to measure the impedance '
            'between the actuated area and ground.  This impedance is '
            'related to the volume of liquid between the actuated area'
            '\n\nSee '
            r'<a href="http://microfluidics.utoronto.ca/trac/dropbot/wiki/Control board calibration#device-load-impedance-calibration">'
            'here</a> for more details.')
        label = gtk.Label(content)
        label.set_use_markup(True)
        label.set_line_wrap(True)
        image = gtk.Image()
        img_path = pkg_resources.resource_filename(
            'dmf_control_board_firmware', 'gui/impedance_feedback_intro.png')
        image.set_from_file(str(img_path))
        box.pack_start(label, True, False, padding=15)
        box.pack_start(image, True, True, padding=5)
        self.widget.set_page_complete(box, True)

        # # Connect hardware #
        box = gtk.HBox()
        self.widget.append_page(box)
        self.widget.set_page_type(box, gtk.ASSISTANT_PAGE_CONTENT)
        self.widget.set_page_title(box, "Connect hardware")
        label = gtk.Label(
            ' - Connect DropBot "<tt>Out to Amp</tt>" to amplifier input.\n'
            ' - Connect amplifier output to DropBot "<tt>In from Amp</tt>".\n'
            ' - Connect DropBot "<tt>0-39</tt>" to test board.')
        image = gtk.Image()
        img_path = pkg_resources.resource_filename(
            'dmf_control_board_firmware', 'gui/impedance_feedback_setup.png')
        image.set_from_file(str(img_path))
        label.set_line_wrap(True)
        label.set_use_markup(True)
        box.pack_start(label, True, False, padding=15)
        box.pack_start(image, True, True, padding=5)
        self.widget.set_page_complete(box, True)

        # # Select frequencies #
        form = Form.of(
            Integer.named('start_frequency').using(
                default=self.control_board.min_waveform_frequency,
                optional=True,
                validators=[
                    ValueAtLeast(
                        minimum=self.control_board.min_waveform_frequency),
                    ValueAtMost(
                        maximum=self.control_board.max_waveform_frequency)
                ]),
            Integer.named('end_frequency').using(
                default=self.control_board.max_waveform_frequency,
                optional=True,
                validators=[
                    ValueAtLeast(
                        minimum=self.control_board.min_waveform_frequency),
                    ValueAtMost(
                        maximum=self.control_board.max_waveform_frequency)
                ]),
            Integer.named('number_of_steps').using(default=10,
                                                   optional=True,
                                                   validators=[
                                                       ValueAtLeast(minimum=2),
                                                   ]),
            Integer.named('RMS_voltage').using(
                default=min(100, self.control_board.max_waveform_voltage),
                optional=True,
                validators=[
                    ValueAtLeast(minimum=10),
                    ValueAtMost(
                        maximum=self.control_board.max_waveform_voltage)
                ]))
        box = gtk.HBox()
        self.form_view = create_form_view(form)
        box.pack_start(self.form_view.widget, fill=False, padding=40)
        self.widget.append_page(box)
        self.widget.set_page_type(box, gtk.ASSISTANT_PAGE_CONTENT)
        self.widget.set_page_title(box, "Select calibration frequencies")
        self.widget.set_page_complete(box, True)

        ## # Record measurements #
        box1 = gtk.VBox()
        self.widget.append_page(box1)
        self.widget.set_page_type(box1, gtk.ASSISTANT_PAGE_PROGRESS)
        self.widget.set_page_title(box1, "Record measurements")
        self.measurements_label = gtk.Label('Ready.')
        self.measurements_label.set_line_wrap(True)
        self.measure_progress = gtk.ProgressBar()
        box1.pack_start(self.measurements_label, True, True, 0)
        box1.pack_start(self.measure_progress,
                        expand=False,
                        fill=False,
                        padding=15)
        self.box1 = box1

        # # Confirm fitted parameters #
        box = gtk.VBox()
        self.widget.append_page(box)
        self.widget.set_page_type(box, gtk.ASSISTANT_PAGE_CONFIRM)
        self.widget.set_page_title(box, "Confirm fitted parameters")
        self.figure = Figure(dpi=72)
        self.canvas = FigureCanvasGTK(self.figure)
        toolbar = NavigationToolbar(self.canvas, self.widget)
        #self.axis = figure.add_subplot(111)
        box.pack_start(self.canvas)
        box.pack_start(toolbar, False, False)
        self.widget.set_page_complete(box, True)

        ## # Summary #
        box = gtk.VBox()
        self.widget.append_page(box)
        self.widget.set_page_type(box, gtk.ASSISTANT_PAGE_SUMMARY)
        self.widget.set_page_title(box, "Summary")
        label = gtk.Label('Calibration of device load feedback circuit is '
                          'complete.  The impedance between actuated device '
                          'area and ground should now be measured accurately '
                          'by the control board.')
        label.set_line_wrap(True)
        box.pack_start(label, True, True, 0)
        self.widget.set_page_complete(box, True)
Esempio n. 13
0
    def __init__(self):
        self.asst = gtk.Assistant()
        self.asst.set_title(_('Debian Live Magic'))
        self.asst.set_default_size(640, 480)
        self.asst.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
        self.asst.set_position(gtk.WIN_POS_CENTER)

        self.asst.connect('apply', self.controller.on_wizard_apply)
        self.asst.connect('cancel', self.controller.on_wizard_cancel)

        def add_about_button():
            label = gtk.Label(_('About'))
            label.show()

            image = gtk.Image()
            image.set_from_stock(gtk.STOCK_ABOUT, gtk.ICON_SIZE_BUTTON)
            image.show()

            vbox = gtk.HBox(spacing=4)
            vbox.add(label)
            vbox.add(image)
            vbox.show()

            btn = gtk.Button()
            btn.add(vbox)
            btn.connect('clicked', self.controller.on_about_request)
            btn.show()

            self.asst.add_action_widget(btn)

        add_about_button()

        # Load paages from Glade resource file.
        notebook = self['notebook_wizard']
        page_types = [gtk.ASSISTANT_PAGE_INTRO] + \
            [gtk.ASSISTANT_PAGE_CONTENT] * (notebook.get_n_pages() - 2) + \
            [gtk.ASSISTANT_PAGE_CONFIRM]

        hide_distribution = False
        try:
            f = open('/etc/debian_version')
            if f.read(3) == "5.0":
                hide_distribution = True
            f.close()
        except:
            pass

        for i in range(notebook.get_n_pages()):
            if i == 2 and hide_distribution:
                # Hide distribution when running Lenny as stable.
                continue

            if i == 5 and self.controller.get_host_architecture() != 'amd64':
                # Only show architecture page if using amd64
                continue

            page = notebook.get_nth_page(i)
            page.unparent()
            self.asst.append_page(page)
            self.asst.set_page_complete(page, True)
            self.asst.set_page_type(page, page_types[i])

            self.asst.set_page_title(page, notebook.get_tab_label_text(page))

        c = self['combobox_mirror']
        c.prepend_text(get_mirror())
        c.set_active(0)

        c = self['combo_net_root_filesystem']
        c.append_text('NFS')
        c.append_text('CIFS')
        c.set_active(0)

        c = self['combo_locale']
        c.set_active(0)
        match = os.environ.get('LANG', 'en_US.UTF-8')
        found = False
        for idx, locale in enumerate(self.controller.get_locales()):
            c.append_text(locale)

            if found:
                continue

            if locale.replace('-', '_') == match.replace('-', '_'):
                c.set_active(idx)
                found = True
            elif match.startswith(locale):
                c.set_active(idx)

        c = self['combo_keyboard']
        match = None

        try:
            kv = KeyVar('/etc/default',
                        'console-setup', {},
                        filename='/etc/default/console-setup')
            match = kv.get('XKBLAYOUT')
        except IOError:
            pass

        pat = re.compile(r'\s*Option\s*"XkbLayout"\s*"([^"]+)"')
        try:
            xorgconf = file('/etc/X11/xorg.conf')
            for line in xorgconf:
                m = pat.match(line)
                if m:
                    match = m.group(1)
        except IOError:
            pass

        if match is None:
            match = "us"
        elif match == 'gb':
            match = 'uk'

        for idx, layout in enumerate(self.controller.get_keyboard_layouts()):
            code, name = layout
            c.append_text('%s (%s)' % (name, code.upper()))
            if code == match:
                c.set_active(idx)

        server = '192.168.1.1'
        path = '/srv/debian-live'
        try:
            kv = KeyVar('/etc/default',
                        'live-helper', {},
                        filename='/etc/default/live-helper')
            server = kv.get('LH_NET_ROOT_SERVER', server)
            path = kv.get('LH_NET_ROOT_PATH', path)
        except IOError:
            pass
        self['entry_net_root_server'].set_text(server)
        self['entry_net_root_path'].set_text(path)

        f = self['filechooser_build_directory']
        f.set_uri(self.controller.get_homedir())