⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segmentparameterbox.cpp

📁 LINUX下的混音软件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        m_fadeOutLabel->setEnabled(false);        m_fadeOutSpin->setEnabled(false);        m_autoFadeLabel->hide();        m_autoFadeBox->hide();        m_fadeInLabel->hide();        m_fadeInSpin->hide();        m_fadeOutLabel->hide();        m_fadeOutSpin->hide();        m_autoFadeBox->setChecked(false);        m_fadeInSpin->setValue(0);        m_fadeOutSpin->setValue(0);    }*/}void SegmentParameterBox::slotRepeatPressed(){    if (m_segments.size() == 0)        return ;    bool state = false;    switch (m_repeatValue->state()) {    case QButton::Off:        state = true;        break;    case QButton::NoChange:    case QButton::On:    default:        state = false;        break;    }    // update the check box and all current Segments    m_repeatValue->setChecked(state);    addCommandToHistory(new SegmentCommandRepeat(m_segments, state));    //     std::vector<Segment*>::iterator it;    //     for (it = m_segments.begin(); it != m_segments.end(); it++)    //         (*it)->setRepeating(state);}voidSegmentParameterBox::slotQuantizeSelected(int qLevel){    bool off = (qLevel == m_quantizeValue->count() - 1);    SegmentChangeQuantizationCommand *command =        new SegmentChangeQuantizationCommand        (off ? 0 : m_standardQuantizations[qLevel]);    std::vector<Segment*>::iterator it;    for (it = m_segments.begin(); it != m_segments.end(); it++) {        command->addSegment(*it);    }    addCommandToHistory(command);}voidSegmentParameterBox::slotTransposeTextChanged(const QString &text){    if (text.isEmpty() || m_segments.size() == 0)        return ;    int transposeValue = text.toInt();    //     addCommandToHistory(new SegmentCommandChangeTransposeValue(m_segments,    //                                                                transposeValue));    std::vector<Segment*>::iterator it;    for (it = m_segments.begin(); it != m_segments.end(); it++) {        (*it)->setTranspose(transposeValue);    }    emit documentModified();}voidSegmentParameterBox::slotTransposeSelected(int value){    slotTransposeTextChanged(m_transposeValue->text(value));}voidSegmentParameterBox::slotDelayTimeChanged(timeT delayValue){    // by convention and as a nasty hack, we use negative timeT here    // to represent positive RealTime in ms    if (delayValue > 0) {        std::vector<Segment*>::iterator it;        for (it = m_segments.begin(); it != m_segments.end(); it++) {            (*it)->setDelay(delayValue);            (*it)->setRealTimeDelay(RealTime::zeroTime);        }    } else if (delayValue < 0) {        std::vector<Segment*>::iterator it;        for (it = m_segments.begin(); it != m_segments.end(); it++) {            (*it)->setDelay(0);            int sec = ( -delayValue) / 1000;            int nsec = (( -delayValue) - 1000 * sec) * 1000000;            (*it)->setRealTimeDelay(RealTime(sec, nsec));        }    } else {        std::vector<Segment*>::iterator it;        for (it = m_segments.begin(); it != m_segments.end(); it++) {            (*it)->setDelay(0);            (*it)->setRealTimeDelay(RealTime::zeroTime);        }    }    emit documentModified();}voidSegmentParameterBox::slotDelayTextChanged(const QString &text){    if (text.isEmpty() || m_segments.size() == 0)        return ;    slotDelayTimeChanged( -(text.toInt()));}voidSegmentParameterBox::slotDelaySelected(int value){    if (value < int(m_delays.size())) {        slotDelayTimeChanged(m_delays[value]);    } else {        slotDelayTimeChanged( -(m_realTimeDelays[value - m_delays.size()]));    }}voidSegmentParameterBox::slotColourSelected(int value){    if (value != m_addColourPos) {        unsigned int temp = 0;        ColourTable::ColourList::const_iterator pos;        for (pos = m_colourList.begin(); pos != m_colourList.end(); ++pos) {            if (pos->second == value) {                temp = pos->first;                break;            }        }        SegmentSelection segments;        std::vector<Segment*>::iterator it;        for (it = m_segments.begin(); it != m_segments.end(); ++it) {            segments.insert(*it);        }        SegmentColourCommand *command = new SegmentColourCommand(segments, temp);        addCommandToHistory(command);    } else {        ColourMap newMap = m_doc->getComposition().getSegmentColourMap();        QColor newColour;        bool ok = false;        QString newName = KLineEditDlg::getText(i18n("New Color Name"), i18n("Enter new name"),                                                i18n("New"), &ok);        if ((ok == true) && (!newName.isEmpty())) {            KColorDialog box(this, "", true);            int result = box.getColor(newColour);            if (result == KColorDialog::Accepted) {                Colour newRColour = GUIPalette::convertColour(newColour);                newMap.addItem(newRColour, qstrtostr(newName));                SegmentColourMapCommand *command = new SegmentColourMapCommand(m_doc, newMap);                addCommandToHistory(command);                slotDocColoursChanged();            }        }        // Else we don't do anything as they either didn't give a name·        //  or didn't give a colour    }}voidSegmentParameterBox::updateHighLow(){    // Key of C major and NoAccidental means any "black key" notes will be    // written as sharps.    Accidental accidental = Accidentals::NoAccidental;    Rosegarden::Key key = Rosegarden::Key("C major");    Pitch highest(m_highestPlayable, accidental);    Pitch lowest(m_lowestPlayable, accidental);    KConfig *config = kapp->config();    config->setGroup(GeneralOptionsConfigGroup);    int base = config->readNumEntry("midipitchoctave", -2);    //!!! FIXME this code is broken, and needs to be fixed after the fashion of    //the TPB, but I'm not bothering with that at this time, because they are    //going to be hidden for 1.3 anyway//    m_highButton->setText(QString("&High:   %1%2").arg(highest.getNoteName(key)).arg(highest.getOctave(base)));//    m_lowButton->setText(QString("&Low:   %1%2").arg(lowest.getNoteName(key)).arg(lowest.getOctave(base)));}voidSegmentParameterBox::slotHighestPressed(){    RG_DEBUG << "SegmentParameterBox::slotHighestPressed()" << endl;    PitchPickerDialog dialog(0, m_highestPlayable, i18n("Highest playable note"));    std::vector<Segment*>::iterator it;    if (dialog.exec() == QDialog::Accepted) {        m_highestPlayable = dialog.getPitch();        updateHighLow();        for (it = m_segments.begin(); it != m_segments.end(); it++) {            (*it)->setHighestPlayable(m_highestPlayable);        }        emit documentModified();    }}voidSegmentParameterBox::slotLowestPressed(){    RG_DEBUG << "SegmentParameterBox::slotLowestPressed()" << endl;    PitchPickerDialog dialog(0, m_lowestPlayable, i18n("Lowest playable note"));    std::vector<Segment*>::iterator it;    if (dialog.exec() == QDialog::Accepted) {        m_lowestPlayable = dialog.getPitch();        updateHighLow();        for (it = m_segments.begin(); it != m_segments.end(); it++) {            (*it)->setLowestPlayable(m_lowestPlayable);        }        emit documentModified();    }}MultiViewCommandHistory*SegmentParameterBox::getCommandHistory(){    return m_doc->getCommandHistory();}voidSegmentParameterBox::addCommandToHistory(KCommand *command){    m_doc->getCommandHistory()->addCommand(command);}voidSegmentParameterBox::slotEditSegmentLabel(){    QString editLabel;    if (m_segments.size() == 0)        return ;    else if (m_segments.size() == 1)        editLabel = i18n("Modify Segment label");    else        editLabel = i18n("Modify Segments label");    bool ok = false;    // Remove the asterisk if we're using it    //    QString label = m_label->text();    if (label == "*")        label = "";    QString newLabel = KLineEditDlg::getText(editLabel,                       i18n("Enter new label"),                       m_label->text(),                       &ok,                       this);    if (ok) {        SegmentSelection segments;        std::vector<Segment*>::iterator it;        for (it = m_segments.begin(); it != m_segments.end(); ++it)            segments.insert(*it);        SegmentLabelCommand *command = new                                       SegmentLabelCommand(segments, newLabel);        addCommandToHistory(command);	// fix #1776915, maybe?	update();    }}voidSegmentParameterBox::slotAudioFadeChanged(int value){    RG_DEBUG << "SegmentParameterBox::slotAudioFadeChanged - value = "    << value << endl;/*    if (m_segments.size() == 0)        return ;    bool state = false;    if (value == QButton::On)        state = true;    std::vector<Segment*>::iterator it;    for (it = m_segments.begin(); it != m_segments.end(); it++) {        (*it)->setAutoFade(state);    }*/}voidSegmentParameterBox::slotFadeInChanged(int value){    RG_DEBUG << "SegmentParameterBox::slotFadeInChanged - value = "    << value << endl;/*    if (m_segments.size() == 0)        return ;    if (value == 0 && m_fadeOutSpin->value() == 0)        slotAudioFadeChanged(QButton::Off);    else        slotAudioFadeChanged(QButton::On);    // Convert from ms    //    RealTime fadeInTime(value / 1000, (value % 1000) * 1000000);    std::vector<Segment*>::iterator it;    for (it = m_segments.begin(); it != m_segments.end(); it++) {        (*it)->setFadeInTime(fadeInTime);    }    emit documentModified();*/}voidSegmentParameterBox::slotFadeOutChanged(int value){    RG_DEBUG << "SegmentParameterBox::slotFadeOutChanged - value = "    << value << endl;/*    if (m_segments.size() == 0)        return ;    if (value == 0 && m_fadeInSpin->value() == 0)        slotAudioFadeChanged(QButton::Off);    else        slotAudioFadeChanged(QButton::On);    // Convert from ms    //    RealTime fadeOutTime(value / 1000000, (value % 1000) * 10000000);    std::vector<Segment*>::iterator it;    for (it = m_segments.begin(); it != m_segments.end(); it++) {        (*it)->setFadeOutTime(fadeOutTime);    }    emit documentModified();*/}voidSegmentParameterBox::showAdditionalControls(bool showThem){    //!!! disabled until after 1.3    /*    m_highButton->setShown(showThem);        m_lowButton->setShown(showThem);        m_rangeLabel->setShown(showThem); */}QStringSegmentParameterBox::getPreviousBox(RosegardenParameterArea::Arrangement arrangement) const{    if (arrangement == RosegardenParameterArea::CLASSIC_STYLE) {        return "";    } else {        return i18n("Instrument");    }}}#include "SegmentParameterBox.moc"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -