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

📄 eventview.cpp

📁 LINUX下的混音软件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
            if ((*it)->has(Controller::NUMBER)) {                data1Str = QString("%1  ").                           arg((*it)->get                               <Int>(Controller::NUMBER));            } else if ((*it)->has(Text::TextTypePropertyName)) {                data1Str = QString("%1  ").                           arg(strtoqstr((*it)->get                                         <String>                                         (Text::TextTypePropertyName)));            } else if ((*it)->has(Indication::                                  IndicationTypePropertyName)) {                data1Str = QString("%1  ").                           arg(strtoqstr((*it)->get                                         <String>                                         (Indication::                                          IndicationTypePropertyName)));            } else if ((*it)->has(::Rosegarden::Key::KeyPropertyName)) {                data1Str = QString("%1  ").                           arg(strtoqstr((*it)->get                                         <String>                                         (::Rosegarden::Key::KeyPropertyName)));            } else if ((*it)->has(Clef::ClefPropertyName)) {                data1Str = QString("%1  ").                           arg(strtoqstr((*it)->get                                         <String>                                         (Clef::ClefPropertyName)));            } else if ((*it)->has(PitchBend::MSB)) {                data1Str = QString("%1  ").                           arg((*it)->get                               <Int>(PitchBend::MSB));            } else if ((*it)->has(BaseProperties::BEAMED_GROUP_TYPE)) {                data1Str = QString("%1  ").                           arg(strtoqstr((*it)->get                                         <String>                                         (BaseProperties::BEAMED_GROUP_TYPE)));            }            if ((*it)->has(Controller::VALUE)) {                data2Str = QString("%1  ").                           arg((*it)->get                               <Int>(Controller::VALUE));            } else if ((*it)->has(Text::TextPropertyName)) {                data2Str = QString("%1  ").                           arg(strtoqstr((*it)->get                                         <String>                                         (Text::TextPropertyName)));                /*!!!                	    } else if ((*it)->has(Indication::                				  IndicationTypePropertyName)) {                		data2Str = QString("%1  ").                		    arg((*it)->get<Int>(Indication::                					IndicationDurationPropertyName));                */            } else if ((*it)->has(PitchBend::LSB)) {                data2Str = QString("%1  ").                           arg((*it)->get                               <Int>(PitchBend::LSB));            } else if ((*it)->has(BaseProperties::BEAMED_GROUP_ID)) {                data2Str = i18n("(group %1)  ").                           arg((*it)->get                               <Int>(BaseProperties::BEAMED_GROUP_ID));            }            if ((*it)->has(ProgramChange::PROGRAM)) {                data1Str = QString("%1  ").                           arg((*it)->get                               <Int>(ProgramChange::PROGRAM) + 1);            }            if ((*it)->has(ChannelPressure::PRESSURE)) {                data1Str = QString("%1  ").                           arg((*it)->get                               <Int>(ChannelPressure::PRESSURE));            }            if ((*it)->isa(KeyPressure::EventType) &&                    (*it)->has(KeyPressure::PITCH)) {                data1Str = QString("%1  ").                           arg((*it)->get                               <Int>(KeyPressure::PITCH));            }            if ((*it)->has(KeyPressure::PRESSURE)) {                data2Str = QString("%1  ").                           arg((*it)->get                               <Int>(KeyPressure::PRESSURE));            }            if ((*it)->getDuration() > 0 ||                    (*it)->isa(Note::EventType) ||                    (*it)->isa(Note::EventRestType)) {                durationStr = makeDurationString(eventTime,                                                 (*it)->getDuration(),                                                 timeMode);            }            QString timeStr = makeTimeString(eventTime, timeMode);            new EventViewItem(m_segments[i],                              *it,                              m_eventList,                              timeStr,                              durationStr,                              strtoqstr((*it)->getType()),                              pitchStr,                              velyStr,                              data1Str,                              data2Str);        }    }    if (m_eventList->childCount() == 0) {        if (m_segments.size())            new QListViewItem(m_eventList,                              i18n("<no events at this filter level>"));        else            new QListViewItem(m_eventList, i18n("<no events>"));        m_eventList->setSelectionMode(QListView::NoSelection);        stateChanged("have_selection", KXMLGUIClient::StateReverse);    } else {        m_eventList->setSelectionMode(QListView::Extended);        // If no selection then select the first event        if (m_listSelection.size() == 0)            m_listSelection.push_back(0);        stateChanged("have_selection", KXMLGUIClient::StateNoReverse);    }    // Set a selection from a range of indexes    //    std::vector<int>::iterator sIt = m_listSelection.begin();    int index = 0;    for (; sIt != m_listSelection.end(); ++sIt) {        index = *sIt;        while (index > 0 && !m_eventList->itemAtIndex(index))            index--;        m_eventList->setSelected(m_eventList->itemAtIndex(index), true);        m_eventList->setCurrentItem(m_eventList->itemAtIndex(index));        // ensure visible        m_eventList->ensureItemVisible(m_eventList->itemAtIndex(index));    }    m_listSelection.clear();    m_deletedEvents.clear();    return true;}voidEventView::makeInitialSelection(timeT time){    m_listSelection.clear();    EventViewItem *goodItem = 0;    int goodItemNo = 0;    int i = 0;    for (QListViewItem *child = m_eventList->firstChild();            child;            child = child->nextSibling()) {        EventViewItem * item = dynamic_cast<EventViewItem *>(child);        if (item) {            if (item->getEvent()->getAbsoluteTime() > time)                break;            goodItem = item;            goodItemNo = i;        }        ++i;    }    /*!!!        for (int i = 0; m_eventList->itemAtIndex(i); ++i) {         	EventViewItem *item = dynamic_cast<EventViewItem *>    	    (m_eventList->itemAtIndex(i));         	if (item) {    	    if (item->getEvent()->getAbsoluteTime() > time) break;    	    goodItem = item;    	    goodItemNo = i;    	}        }    */    if (goodItem) {        m_listSelection.push_back(goodItemNo);        m_eventList->setSelected(goodItem, true);        m_eventList->ensureItemVisible(goodItem);    }}QStringEventView::makeTimeString(timeT time, int timeMode){    switch (timeMode) {    case 0:  // musical time        {            int bar, beat, fraction, remainder;            getDocument()->getComposition().getMusicalTimeForAbsoluteTime            (time, bar, beat, fraction, remainder);            ++bar;            return QString("%1%2%3-%4%5-%6%7-%8%9   ")                   .arg(bar / 100)                   .arg((bar % 100) / 10)                   .arg(bar % 10)                   .arg(beat / 10)                   .arg(beat % 10)                   .arg(fraction / 10)                   .arg(fraction % 10)                   .arg(remainder / 10)                   .arg(remainder % 10);        }    case 1:  // real time        {            RealTime rt =                getDocument()->getComposition().getElapsedRealTime(time);            //	return QString("%1  ").arg(rt.toString().c_str());            return QString("%1  ").arg(rt.toText().c_str());        }    default:        return QString("%1  ").arg(time);    }}QStringEventView::makeDurationString(timeT time,                              timeT duration, int timeMode){    switch (timeMode) {    case 0:  // musical time        {            int bar, beat, fraction, remainder;            getDocument()->getComposition().getMusicalTimeForDuration            (time, duration, bar, beat, fraction, remainder);            return QString("%1%2%3-%4%5-%6%7-%8%9   ")                   .arg(bar / 100)                   .arg((bar % 100) / 10)                   .arg(bar % 10)                   .arg(beat / 10)                   .arg(beat % 10)                   .arg(fraction / 10)                   .arg(fraction % 10)                   .arg(remainder / 10)                   .arg(remainder % 10);        }    case 1:  // real time        {            RealTime rt =                getDocument()->getComposition().getRealTimeDifference                (time, time + duration);            //	return QString("%1  ").arg(rt.toString().c_str());            return QString("%1  ").arg(rt.toText().c_str());        }    default:        return QString("%1  ").arg(duration);    }}voidEventView::refreshSegment(Segment * /*segment*/,                          timeT /*startTime*/,                          timeT /*endTime*/){    RG_DEBUG << "EventView::refreshSegment" << endl;    applyLayout(0);}voidEventView::updateView(){    m_eventList->update();}voidEventView::slotEditTriggerName(){    bool ok = false;    QString newLabel = KLineEditDlg::getText(i18n("Segment label"), i18n("Label:"),                       strtoqstr(m_segments[0]->getLabel()),                       &ok, this);    if (ok) {        SegmentSelection selection;        selection.insert(m_segments[0]);        SegmentLabelCommand *cmd = new SegmentLabelCommand(selection, newLabel);        addCommandToHistory(cmd);        m_triggerName->setText(newLabel);    }}voidEventView::slotEditTriggerPitch(){    int id = m_segments[0]->getComposition()->getTriggerSegmentId(m_segments[0]);    TriggerSegmentRec *rec =        m_segments[0]->getComposition()->getTriggerSegmentRec(id);    PitchDialog *dlg = new PitchDialog(this, i18n("Base pitch"), rec->getBasePitch());    if (dlg->exec() == QDialog::Accepted) {        addCommandToHistory(new SetTriggerSegmentBasePitchCommand                            (&getDocument()->getComposition(), id, dlg->getPitch()));        m_triggerPitch->setText(QString("%1").arg(dlg->getPitch()));    }}voidEventView::slotEditTriggerVelocity(){    int id = m_segments[0]->getComposition()->getTriggerSegmentId(m_segments[0]);    TriggerSegmentRec *rec =        m_segments[0]->getComposition()->getTriggerSegmentRec(id);    TrivialVelocityDialog *dlg = new TrivialVelocityDialog                                 (this, i18n("Base velocity"), rec->getBaseVelocity());    if (dlg->exec() == QDialog::Accepted) {        addCommandToHistory(new SetTriggerSegmentBaseVelocityCommand                            (&getDocument()->getComposition(), id, dlg->getVelocity()));        m_triggerVelocity->setText(QString("%1").arg(dlg->getVelocity()));    }}voidEventView::slotTriggerTimeAdjustChanged(int option){    std::string adjust = BaseProperties::TRIGGER_SEGMENT_ADJUST_SQUISH;    switch (option) {    case 0:        adjust = BaseProperties::TRIGGER_SEGMENT_ADJUST_NONE;        break;    case 1:        adjust = BaseProperties::TRIGGER_SEGMENT_ADJUST_SYNC_START;        break;    case 2:        adjust = BaseProperties::TRIGGER_SEGMENT_ADJUST_SYNC_END;        break;    case 3:        adjust = BaseProperties::TRIGGER_SEGMENT_ADJUST_SQUISH;        break;    default:        break;    }    int id = m_segments[0]->getComposition()->getTriggerSegmentId(m_segments[0]);    TriggerSegmentRec *rec =        m_segments[0]->getComposition()->getTriggerSegmentRec(id);    addCommandToHistory(new SetTriggerSegmentDefaultTimeAdjustCommand                        (&getDocument()->getComposition(), id, adjust));}voidEventView::slotTriggerRetuneChanged(){    int id = m_segments[0]->getComposition()->getTriggerSegmentId(m_segments[0]);    TriggerSegmentRec *rec =        m_segments[0]->getComposition()->getTriggerSegmentRec(id);    addCommandToHistory(new SetTriggerSegmentDefaultRetuneCommand                        (&getDocument()->getComposition(), id, !rec->getDefaultRetune()));}voidEventView::slotEditCut(){    QPtrList<QListViewItem> selection = m_eventList->selectedItems();    if (selection.count() == 0)        return ;    RG_DEBUG << "EventView::slotEditCut - cutting "    << selection.count() << " items" << endl;    QPtrListIterator<QListViewItem> it(selection);    QListViewItem *listItem;    EventViewItem *item;    EventSelection *cutSelection = 0;    int itemIndex = -1;

⌨️ 快捷键说明

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