def do_activate(self): self.load_css() self.settings = Gio.Settings("org.gnome.rhythmbox.plugins.looper") # old value will be needed when removing/adding(moving) GUI self.gui_position = self.POSITIONS[self.settings['position']] self.shell = self.object self.shell_player = self.shell.props.shell_player self.player = self.shell_player.props.player self.db = self.shell.props.db self.appshell = ApplicationShell(self.shell) self.main_box = Gtk.Box() self.main_box.set_orientation(Gtk.Orientation.VERTICAL) self.controls_box = Gtk.Box() self.controls_box.set_orientation(Gtk.Orientation.VERTICAL) self._create_main_action() self.controls = Controls(self) controls_frame = Gtk.Frame() controls_frame.add(self.controls) controls_frame.set_property('margin-left', 2) controls_frame.set_property('margin-right', 2) self.rbpitch = RbPitch(self) rbpitch_frame = Gtk.Frame() rbpitch_frame.add(self.rbpitch) rbpitch_frame.set_property('margin-left', 2) rbpitch_frame.set_property('margin-right', 2) self.controls_box.pack_start(rbpitch_frame, True, True, 5) self.controls_box.pack_start(controls_frame, True, True, 5) self.loops_box = Gtk.Grid() self.loops_box.set_row_spacing(2) self.loops_box.set_column_spacing(2) self.loops_box.set_column_homogeneous(True) self.loops_box.set_row_homogeneous(True) self.loops_box.set_border_width(0) self.rb_slider = self.find_rb_slider() self.main_box.pack_start(self.controls_box, True, True, 10) self.main_box.pack_start( Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL), True, True, 0) self.main_box.pack_start(self.loops_box, True, True, 10) # position = self.POSITIONS[self.settings['position']] self.shell.add_widget(self.main_box, self.gui_position, True, False) self.rbpitch.tempo.slider.set_value(self.rbpitch.tempo_val) self.rbpitch.pitch.slider.set_value(self.rbpitch.pitch_val) self.rbpitch.rate.slider.set_value(self.rbpitch.rate_val) self.save_crossfade_settings() self.settings_changed_sigid = self.settings.connect( 'changed', self.on_settings_changed) self.song_changed_sigid = self.shell_player.connect( "playing-song-changed", self.on_playing_song_changed) # a song COULD be playing, so refresh sliders self.refresh_widgets() self.refresh_status_label() if self.settings['always-show']: self.refresh_rb_position_slider() self.main_box.show_all() self.loops = {} self.load_loops_file() self.loops_box.hide()