Add more columns; multirow header; adjust horiz. scroll speed

This commit is contained in:
Andrey M. Tokarev 2014-07-12 12:59:51 +04:00
parent 7c3826eec9
commit bc0cd7939d
2 changed files with 115 additions and 2 deletions

View file

@ -217,7 +217,7 @@ void TracksModel::reset(const MidiOperations::Opers &opers,
{
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Is human"); }
"MIDI import operations", "Is human\nperformance"); }
bool isForAllTracksOnly() const { return true; }
QVariant value(int /*trackIndex*/) const
{
@ -407,6 +407,119 @@ void TracksModel::reset(const MidiOperations::Opers &opers,
};
_columns.push_back(std::unique_ptr<Column>(new StaffSplit(_trackOpers)));
//-----------------------------------------------------------------------
struct ClefChanges : Column {
ClefChanges(MidiOperations::Opers &opers) : Column(opers)
{
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Clef\nchanges"); }
QVariant value(int trackIndex) const
{
return _opers.changeClef.value(trackIndex);
}
void setValue(const QVariant &value, int trackIndex)
{
_opers.changeClef.setValue(trackIndex, value.toBool());
}
};
_columns.push_back(std::unique_ptr<Column>(new ClefChanges(_trackOpers)));
//-----------------------------------------------------------------------
struct Simplify : Column {
Simplify(MidiOperations::Opers &opers) : Column(opers)
{
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Simplify\ndurations"); }
QVariant value(int trackIndex) const
{
return _opers.simplifyDurations.value(trackIndex);
}
void setValue(const QVariant &value, int trackIndex)
{
_opers.simplifyDurations.setValue(trackIndex, value.toBool());
}
};
_columns.push_back(std::unique_ptr<Column>(new Simplify(_trackOpers)));
//-----------------------------------------------------------------------
struct ShowStaccato : Column {
ShowStaccato(MidiOperations::Opers &opers) : Column(opers)
{
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Show\nstaccato"); }
QVariant value(int trackIndex) const
{
return _opers.showStaccato.value(trackIndex);
}
void setValue(const QVariant &value, int trackIndex)
{
_opers.showStaccato.setValue(trackIndex, value.toBool());
}
};
_columns.push_back(std::unique_ptr<Column>(new ShowStaccato(_trackOpers)));
//-----------------------------------------------------------------------
struct DottedNotes : Column {
DottedNotes(MidiOperations::Opers &opers) : Column(opers)
{
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Dotted\nnotes"); }
QVariant value(int trackIndex) const
{
return _opers.useDots.value(trackIndex);
}
void setValue(const QVariant &value, int trackIndex)
{
_opers.useDots.setValue(trackIndex, value.toBool());
}
};
_columns.push_back(std::unique_ptr<Column>(new DottedNotes(_trackOpers)));
//-----------------------------------------------------------------------
struct PickupBar : Column {
PickupBar(MidiOperations::Opers &opers) : Column(opers)
{
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Recognize\npickup measure"); }
bool isForAllTracksOnly() const { return true; }
QVariant value(int /*trackIndex*/) const
{
return _opers.searchPickupMeasure;
}
void setValue(const QVariant &value, int /*trackIndex*/)
{
_opers.searchPickupMeasure = value.toBool();
}
};
_columns.push_back(std::unique_ptr<Column>(new PickupBar(_trackOpers)));
//-----------------------------------------------------------------------
struct Swing : Column {
Swing(MidiOperations::Opers &opers) : Column(opers)
{
_values.push_back(QCoreApplication::translate("MIDI import operations", "None (1:1)"));
_values.push_back(QCoreApplication::translate("MIDI import operations", "Swing (2:1)"));
_values.push_back(QCoreApplication::translate("MIDI import operations", "Shuffle (3:1)"));
}
QString headerName() const { return QCoreApplication::translate(
"MIDI import operations", "Detect swing"); }
int width() const { return 130; }
QVariant value(int trackIndex) const
{
return _values[(int)_opers.swing.value(trackIndex)];
}
void setValue(const QVariant &value, int trackIndex)
{
_opers.swing.setValue(trackIndex, (MidiOperations::Swing)value.toInt());
}
};
_columns.push_back(std::unique_ptr<Column>(new Swing(_trackOpers)));
endResetModel();
}

View file

@ -367,7 +367,7 @@ void TracksView::wheelEvent(QWheelEvent *event)
if ((event->modifiers() & Qt::ShiftModifier) || (event->modifiers() & Qt::ControlModifier)) {
const int degrees = event->delta() / 8;
const int steps = degrees / 15;
const int pixelsToScroll = steps * 60;
const int pixelsToScroll = steps * 30;
horizontalScrollBar()->setValue(horizontalScrollBar()->value() - pixelsToScroll);
}
else {