Fixed crash in PortStatsFilterDialog while removing selected rows

This commit is contained in:
Srivats P. 2010-04-16 20:11:08 +05:30
parent 35f4a8bafb
commit 7b9c1f92a0

View File

@ -80,52 +80,48 @@ QList<uint> PortStatsFilterDialog::getItemList(bool* ok,
void PortStatsFilterDialog::on_tbSelectIn_clicked()
{
QStandardItem *item;
while (lvUnselected->selectionModel()->selectedIndexes().size())
QList<int> rows;
foreach(QModelIndex idx, lvUnselected->selectionModel()->selectedIndexes())
rows.append(idx.row());
qSort(rows.begin(), rows.end(), qGreater<int>());
int count = mSelected.rowCount();
foreach(int row, rows)
{
item = mUnselected.takeItem(lvUnselected->selectionModel()->
selectedIndexes().at(0).row());
if (mUnselected.removeRow(lvUnselected->selectionModel()->
selectedIndexes().at(0).row()))
mSelected.appendRow(item);
QList<QStandardItem*> items = mUnselected.takeRow(row);
mSelected.insertRow(count, items);
}
}
void PortStatsFilterDialog::on_tbSelectOut_clicked()
{
QStandardItem *item;
QList<int> rows;
while (lvSelected->selectionModel()->selectedIndexes().size())
foreach(QModelIndex idx, lvSelected->selectionModel()->selectedIndexes())
rows.append(idx.row());
qSort(rows.begin(), rows.end(), qGreater<int>());
foreach(int row, rows)
{
item = mSelected.takeItem(lvSelected->selectionModel()->
selectedIndexes().at(0).row());
if (mSelected.removeRow(lvSelected->selectionModel()->
selectedIndexes().at(0).row()))
{
mUnselected.appendRow(item);
mUnselected.sort(0);
}
QList<QStandardItem*> items = mSelected.takeRow(row);
mUnselected.appendRow(items);
}
mUnselected.sort(0);
}
void PortStatsFilterDialog::on_lvUnselected_doubleClicked(const QModelIndex &index)
{
QStandardItem *item;
item = mUnselected.takeItem(index.row());
if (mUnselected.removeRow(index.row()))
mSelected.appendRow(item);
QList<QStandardItem*> items = mUnselected.takeRow(index.row());
mSelected.appendRow(items);
}
void PortStatsFilterDialog::on_lvSelected_doubleClicked(const QModelIndex &index)
{
QStandardItem *item;
item = mSelected.takeItem(index.row());
if (mSelected.removeRow(index.row()))
{
mUnselected.appendRow(item);
mUnselected.sort(0);
}
QList<QStandardItem*> items = mSelected.takeRow(index.row());
mUnselected.appendRow(items);
mUnselected.sort(0);
}