def __init__(self, done_firsttime_callback, title=None): if title == None: title = _("%(appname)s Setup", {"appname": app.config.get(prefs.SHORT_APP_NAME)}) x, y = widgetset.get_first_time_dialog_coordinates(WIDTH, HEIGHT) widgetset.DialogWindow.__init__(self, title, widgetset.Rect(x, y, WIDTH, HEIGHT)) # the directory panel 3 searches for files in self.search_directory = None self.finder = None self.cancelled = False self.gathered_media_files = None self.import_media_player_stuff = False self.progress_bar = None self.progress_label = None self.search_cancel_button = None self.search_prev_button = None self.search_next_button = None self._done_firsttime_callback = done_firsttime_callback self.mp_name, self.mp_path = get_plat_media_player_name_path() self._has_media_player = (self.mp_name is not None and self.mp_path is not None) self._page_box = widgetset.VBox() self._pages = self.build_pages() self._page_index = -1 self.set_content_widget(widgetutil.pad(self._page_box, 20, 20, 20, 20)) self.on_close_handler = self.connect('will-close', self.on_close)
def __init__(self, done_firsttime_callback, title=None): if title == None: title = _("%(appname)s Setup", {"appname": app.config.get(prefs.SHORT_APP_NAME)}) x, y = widgetset.get_first_time_dialog_coordinates(WIDTH, HEIGHT) widgetset.DialogWindow.__init__( self, title, widgetset.Rect(x, y, WIDTH, HEIGHT)) # the directory panel 3 searches for files in self.search_directory = None self.finder = None self.cancelled = False self.gathered_media_files = None self.import_media_player_stuff = False self.progress_bar = None self.progress_label = None self.search_cancel_button = None self.search_prev_button = None self.search_next_button = None self._done_firsttime_callback = done_firsttime_callback self.mp_name, self.mp_path = get_plat_media_player_name_path() self._has_media_player = ( self.mp_name is not None and self.mp_path is not None) self._page_box = widgetset.VBox() self._pages = self.build_pages() self._page_index = -1 self.set_content_widget(widgetutil.pad(self._page_box, 20, 20, 20, 20)) self.on_close_handler = self.connect('will-close', self.on_close)
def build_third_page(self): vbox = widgetset.VBox(spacing=5) vbox.pack_start(_build_title(_("Finding Files"))) lab = widgetset.Label(_( "%(name)s can find all the media files on your computer to help " "you organize your collection.\n" "\n" "Would you like %(name)s to look for media files on your " "computer?", {'name': app.config.get(prefs.SHORT_APP_NAME)})) lab.set_size_request(400, -1) lab.set_wrap(True) vbox.pack_start(widgetutil.align_left(lab)) rbg = widgetset.RadioButtonGroup() no_rb = widgetset.RadioButton(_("No"), rbg) yes_rb = widgetset.RadioButton(_("Yes"), rbg) vbox.pack_start(widgetutil.align_left(no_rb)) vbox.pack_start(widgetutil.align_left(yes_rb, bottom_pad=5)) group_box = widgetset.VBox(spacing=5) rbg2 = widgetset.RadioButtonGroup() restrict_rb = widgetset.RadioButton( _("Restrict to all my personal files."), rbg2) search_rb = widgetset.RadioButton(_("Search custom folders:"), rbg2) group_box.pack_start(widgetutil.align_left(restrict_rb, left_pad=30)) group_box.pack_start(widgetutil.align_left(search_rb, left_pad=30)) # XXX: we can think about providing a list of media players installed # and search through those, but righ tnow the code doesn't handle # a list of search directories to search. (name, path) = get_plat_media_player_name_path() if path: import_rb = widgetset.RadioButton( _("Import from %(player)s as watched folder" % \ dict(player=name)), rbg2) self.search_directory = path group_box.pack_start(widgetutil.align_left(import_rb, left_pad=30)) else: # can't import - import_rb doesn't exist. import_rb = None search_entry = widgetset.TextEntry() search_entry.set_width(20) change_button = widgetset.Button(_("Change")) hbox = widgetutil.build_hbox((search_entry, change_button)) group_box.pack_start(widgetutil.align_left(hbox, left_pad=30)) def handle_change_clicked(widget): dir_ = dialogs.ask_for_directory( _("Choose directory to search for media files"), initial_directory=_get_user_media_directory(), transient_for=self) if dir_: search_entry.set_text(filename_to_unicode(dir_)) self.search_directory = dir_ else: self.search_directory = _get_user_media_directory() change_button.connect('clicked', handle_change_clicked) vbox.pack_start(group_box) vbox.pack_start(widgetset.Label(" "), expand=True) prev_button = widgetset.Button(_("< Previous")) prev_button.connect('clicked', lambda x: self.prev_page()) def handle_search_finish_clicked(widget): if widget.mode == "search": if rbg2.get_selected() == restrict_rb: self.search_directory = _get_user_media_directory() self.next_page() else: if rbg2.get_selected() == import_rb: # Add watched folder app.watched_folder_manager.add(self.search_directory) self.on_close() search_button = widgetset.Button(_("Search")) search_button.connect('clicked', handle_search_finish_clicked) search_button.text_faces = {"search": _("Search"), "finish": _("Finish")} search_button.mode = "search" def switch_mode(mode): search_button.set_text(search_button.text_faces[mode]) search_button.mode = mode hbox = widgetutil.build_hbox((prev_button, search_button)) vbox.pack_start(widgetutil.align_right(hbox)) def handle_radio_button_clicked(widget): # Uggh this is a bit messy. if widget is no_rb: group_box.disable() search_entry.disable() change_button.disable() switch_mode("finish") elif widget is yes_rb: group_box.enable() if (rbg2.get_selected() is restrict_rb or rbg2.get_selected() is import_rb): search_entry.disable() change_button.disable() else: search_entry.enable() change_button.enable() if rbg2.get_selected() is import_rb: switch_mode("finish") else: switch_mode("search") elif widget is restrict_rb or widget is import_rb: search_entry.disable() change_button.disable() elif widget is search_rb: search_entry.enable() change_button.enable() if widget is restrict_rb or widget is search_rb: switch_mode("search") if widget is import_rb: switch_mode("finish") no_rb.connect('clicked', handle_radio_button_clicked) yes_rb.connect('clicked', handle_radio_button_clicked) restrict_rb.connect('clicked', handle_radio_button_clicked) search_rb.connect('clicked', handle_radio_button_clicked) if import_rb: import_rb.connect('clicked', handle_radio_button_clicked) handle_radio_button_clicked(restrict_rb) handle_radio_button_clicked(no_rb) return vbox