reverted card search to initial behaviour

This commit is contained in:
Max-Wilhelm Bruker
2009-12-20 15:17:45 +01:00
parent ffe85962b8
commit 324be6b40c
3 changed files with 25 additions and 1 deletions

View File

@@ -69,3 +69,20 @@ CardDatabaseDisplayModel::CardDatabaseDisplayModel(QObject *parent)
setFilterCaseSensitivity(Qt::CaseInsensitive);
setSortCaseSensitivity(Qt::CaseInsensitive);
}
bool CardDatabaseDisplayModel::filterAcceptsRow(int sourceRow, const QModelIndex & /*sourceParent*/) const
{
CardInfo *info = static_cast<CardDatabaseModel *>(sourceModel())->getCard(sourceRow);
if (!cardNameBeginning.isEmpty())
if (!info->getName().startsWith(cardNameBeginning, Qt::CaseInsensitive))
return false;
return true;
}
void CardDatabaseDisplayModel::setCardNameBeginning(const QString &_beginning)
{
cardNameBeginning = _beginning;
invalidateFilter();
}

View File

@@ -15,6 +15,7 @@ public:
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
CardInfo *getCard(int index) const { return cardList[index]; }
private:
QList<CardInfo *> cardList;
CardDatabase *db;
@@ -22,8 +23,13 @@ private:
class CardDatabaseDisplayModel : public QSortFilterProxyModel {
Q_OBJECT
private:
QString cardNameBeginning;
public:
CardDatabaseDisplayModel(QObject *parent = 0);
void setCardNameBeginning(const QString &_beginning);
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
};
#endif

View File

@@ -31,6 +31,7 @@ WndDeckEditor::WndDeckEditor(QWidget *parent)
databaseModel = new CardDatabaseModel(db, this);
databaseDisplayModel = new CardDatabaseDisplayModel(this);
databaseDisplayModel->setSourceModel(databaseModel);
databaseDisplayModel->setFilterKeyColumn(0);
databaseDisplayModel->sort(0, Qt::AscendingOrder);
databaseView = new QTreeView();
databaseView->setModel(databaseDisplayModel);
@@ -197,7 +198,7 @@ void WndDeckEditor::updateCardInfoRight(const QModelIndex &current, const QModel
void WndDeckEditor::updateSearch(const QString &search)
{
databaseDisplayModel->setFilterFixedString(search);
databaseDisplayModel->setCardNameBeginning(search);
}
bool WndDeckEditor::confirmClose()