mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-01 02:45:38 +00:00
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.
(cherry picked from commit eae36f8005
)
This commit is contained in:
parent
437cabf778
commit
91c4afe78c
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