forked from mirror/openmw-tes3mp
Fixed filter reapplication on Description column change and on State
column change. Moved column index search to widget constructor, rewrite slot with respect to multiple columns data change.
This commit is contained in:
parent
33e12a99fa
commit
eae36f8005
2 changed files with 12 additions and 2 deletions
|
@ -5,6 +5,8 @@
|
|||
#include <QApplication>
|
||||
|
||||
#include "../../model/world/data.hpp"
|
||||
#include "../../model/world/idtablebase.hpp"
|
||||
#include "../../model/world/columns.hpp"
|
||||
|
||||
CSVFilter::EditWidget::EditWidget (CSMWorld::Data& data, QWidget *parent)
|
||||
: QLineEdit (parent), mParser (data), mIsEmpty(true)
|
||||
|
@ -12,7 +14,8 @@ CSVFilter::EditWidget::EditWidget (CSMWorld::Data& data, QWidget *parent)
|
|||
mPalette = palette();
|
||||
connect (this, SIGNAL (textChanged (const QString&)), this, SLOT (textChanged (const QString&)));
|
||||
|
||||
QAbstractItemModel *model = data.getTableModel (CSMWorld::UniversalId::Type_Filters);
|
||||
const CSMWorld::IdTableBase *model =
|
||||
static_cast<const CSMWorld::IdTableBase *> (data.getTableModel (CSMWorld::UniversalId::Type_Filters));
|
||||
|
||||
connect (model, SIGNAL (dataChanged (const QModelIndex &, const QModelIndex&)),
|
||||
this, SLOT (filterDataChanged (const QModelIndex &, const QModelIndex&)),
|
||||
|
@ -23,6 +26,9 @@ CSVFilter::EditWidget::EditWidget (CSMWorld::Data& data, QWidget *parent)
|
|||
connect (model, SIGNAL (rowsInserted (const QModelIndex&, int, int)),
|
||||
this, SLOT (filterRowsInserted (const QModelIndex&, int, int)),
|
||||
Qt::QueuedConnection);
|
||||
|
||||
mStateColumnIndex = model->findColumnIndex(CSMWorld::Columns::ColumnId_Modification);
|
||||
mDescColumnIndex = model->findColumnIndex(CSMWorld::Columns::ColumnId_Description);
|
||||
}
|
||||
|
||||
void CSVFilter::EditWidget::textChanged (const QString& text)
|
||||
|
@ -55,7 +61,9 @@ void CSVFilter::EditWidget::textChanged (const QString& text)
|
|||
void CSVFilter::EditWidget::filterDataChanged (const QModelIndex& topLeft,
|
||||
const QModelIndex& bottomRight)
|
||||
{
|
||||
textChanged (text());
|
||||
for (int i = topLeft.column(); i <= bottomRight.column(); ++i)
|
||||
if (i != mStateColumnIndex && i != mDescColumnIndex)
|
||||
textChanged (text());
|
||||
}
|
||||
|
||||
void CSVFilter::EditWidget::filterRowsRemoved (const QModelIndex& parent, int start, int end)
|
||||
|
|
|
@ -26,6 +26,8 @@ namespace CSVFilter
|
|||
CSMFilter::Parser mParser;
|
||||
QPalette mPalette;
|
||||
bool mIsEmpty;
|
||||
int mStateColumnIndex;
|
||||
int mDescColumnIndex;
|
||||
|
||||
public:
|
||||
|
||||
|
|
Loading…
Reference in a new issue