def get_segments(self):
        chunk = {k: v.isChecked() for k, v in self.chunk.items()}
        lock_to_staging = self.lock_to_staging.get_value()
        epoch_dur = self.epoch_param['dur'].get_value()
        epoch_overlap = self.epoch_param['overlap_val'].value()
        epoch_step = None
        epoch = None
        if chunk['epoch']:
            if lock_to_staging:
                epoch = 'locked'
            else:
                epoch = 'unlocked'
                if self.epoch_param['step'].isChecked():
                    epoch_step = self.epoch_param['step_val'].get_value()
                    if epoch_step <= 0:
                        epoch_step = 0.1
        self.chan = self.get_channels()
        if not self.chan:
            return
        chan_full = None
        evt_type = None
        if chunk['event']:
            if self.evt_chan_only.get_value():
                chan_full = [i + ' (' + self.idx_group.currentText() + ''
                           ')' for i in self.chan]
            evt_type = self.idx_evt_type.selectedItems()
            if not evt_type:
                return
            else:
                evt_type = [x.text() for x in evt_type]
        cycle = self.cycle = self.get_cycles()
        stage = self.idx_stage.selectedItems()
        if not stage:
            stage = self.stage = None
        else:
            stage = self.stage = [
                    x.text() for x in self.idx_stage.selectedItems()]
        cat = {k: v.get_value() for k, v in self.cat.items()}
        cat = (int(cat['cycle']), int(cat['stage']),
               int(cat['discontinuous']), int(cat['evt_type']))
        reject_event = self.reject_event.get_value()
        if reject_event == 'channel-specific':
            chan_full = [i + ' (' + self.idx_group.currentText() + ''
                           ')' for i in self.chan]
            reject_artf = True
        elif reject_event == 'from any channel':
            reject_artf = True
        else:
            reject_artf = False
        min_dur = self.min_dur.get_value()
        reject_epoch = self.reject_epoch.get_value()
        self.title = self.make_title(chan_full, cycle, stage, evt_type)
        segments = fetch(self.parent.info.dataset,
                         self.parent.notes.annot, cat=cat,
                         evt_type=evt_type, stage=stage, cycle=cycle,
                         chan_full=chan_full, epoch=epoch,
                         epoch_dur=epoch_dur, epoch_overlap=epoch_overlap,
                         epoch_step=epoch_step, reject_epoch=reject_epoch,
                         reject_artf=reject_artf, min_dur=min_dur)
        return segments