Skip to content

Commit

Permalink
Fix #315599 - MuseScore 3.6 crashes when rearranging instrument posit…
Browse files Browse the repository at this point in the history
…ions and changing Ordering

Add the customized score order always to the filter if the new order is a customized order.
Also the never used method ScoreOrderListModel::setCustomizedOrder removed.
  • Loading branch information
njvdberg authored and vpereverzev committed Jan 18, 2021
1 parent 9f68f34 commit d7dd654
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 13 deletions.
12 changes: 2 additions & 10 deletions mscore/instrwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,15 +93,6 @@ void ScoreOrderListModel::rebuildData()
endResetModel();
}

//---------------------------------------------------------
// setCustomizedOrder
//---------------------------------------------------------

void ScoreOrderListModel::setCustomizedOrder(ScoreOrder* order)
{
_customizedOrder = (order && order->isCustomized()) ? order : nullptr;
}

//---------------------------------------------------------
// ScoreOrderFilterProxyModel
//---------------------------------------------------------
Expand All @@ -118,6 +109,7 @@ ScoreOrderFilterProxyModel::ScoreOrderFilterProxyModel(ScoreOrderList* data, QOb
void ScoreOrderFilterProxyModel::setCustomizedOrder(ScoreOrder* order)
{
_customizedOrder = (order && order->isCustomized()) ? order : nullptr;
invalidateFilter();
}

//---------------------------------------------------------
Expand Down Expand Up @@ -1239,8 +1231,8 @@ void InstrumentsWidget::updateScoreOrder()
if (!custom) {
custom = order->clone();
scoreOrders.addScoreOrder(custom);
_filter->setCustomizedOrder(custom);
}
_filter->setCustomizedOrder(custom);
setScoreOrder(custom);
}
}
Expand Down
3 changes: 0 additions & 3 deletions mscore/instrwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,13 @@ enum { PART_LIST_ITEM = QTreeWidgetItem::UserType, STAFF_LIST_ITEM };
class ScoreOrderListModel : public QAbstractListModel {
private:
ScoreOrderList* _scoreOrders;
ScoreOrder* _customizedOrder { nullptr };

public:
ScoreOrderListModel(ScoreOrderList* data, QObject* parent=nullptr);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
void rebuildData();

void setCustomizedOrder(ScoreOrder* order);
};

//---------------------------------------------------------
Expand Down

0 comments on commit d7dd654

Please sign in to comment.