mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-06 05:23:56 -07:00
Always debounce modelDirty() with dirty() timer.
Took 29 minutes Took 3 minutes
This commit is contained in:
parent
78a8f9104d
commit
97d3843501
3 changed files with 11 additions and 16 deletions
|
|
@ -29,6 +29,11 @@ VisualDatabaseDisplayWidget::VisualDatabaseDisplayWidget(QWidget *parent,
|
||||||
: QWidget(parent), deckEditor(_deckEditor), databaseModel(database_model),
|
: QWidget(parent), deckEditor(_deckEditor), databaseModel(database_model),
|
||||||
databaseDisplayModel(database_display_model)
|
databaseDisplayModel(database_display_model)
|
||||||
{
|
{
|
||||||
|
debounceTimer = new QTimer(this);
|
||||||
|
debounceTimer->setSingleShot(true); // Ensure it only fires once after the timeout
|
||||||
|
|
||||||
|
connect(debounceTimer, &QTimer::timeout, this, &VisualDatabaseDisplayWidget::onSearchModelChanged);
|
||||||
|
|
||||||
cards = new QList<ExactCard>;
|
cards = new QList<ExactCard>;
|
||||||
connect(databaseDisplayModel, &CardDatabaseDisplayModel::modelDirty, this,
|
connect(databaseDisplayModel, &CardDatabaseDisplayModel::modelDirty, this,
|
||||||
&VisualDatabaseDisplayWidget::modelDirty);
|
&VisualDatabaseDisplayWidget::modelDirty);
|
||||||
|
|
@ -156,11 +161,6 @@ void VisualDatabaseDisplayWidget::initialize()
|
||||||
|
|
||||||
mainLayout->addWidget(cardSizeWidget);
|
mainLayout->addWidget(cardSizeWidget);
|
||||||
|
|
||||||
debounceTimer = new QTimer(this);
|
|
||||||
debounceTimer->setSingleShot(true); // Ensure it only fires once after the timeout
|
|
||||||
|
|
||||||
connect(debounceTimer, &QTimer::timeout, this, &VisualDatabaseDisplayWidget::onSearchModelChanged);
|
|
||||||
|
|
||||||
databaseDisplayModel->setFilterTree(filterModel->filterTree());
|
databaseDisplayModel->setFilterTree(filterModel->filterTree());
|
||||||
|
|
||||||
connect(filterModel, &FilterTreeModel::layoutChanged, this, &VisualDatabaseDisplayWidget::onSearchModelChanged);
|
connect(filterModel, &FilterTreeModel::layoutChanged, this, &VisualDatabaseDisplayWidget::onSearchModelChanged);
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,10 @@ CardDatabaseDisplayModel::CardDatabaseDisplayModel(QObject *parent)
|
||||||
setSortCaseSensitivity(Qt::CaseInsensitive);
|
setSortCaseSensitivity(Qt::CaseInsensitive);
|
||||||
|
|
||||||
dirtyTimer.setSingleShot(true);
|
dirtyTimer.setSingleShot(true);
|
||||||
connect(&dirtyTimer, &QTimer::timeout, this, &CardDatabaseDisplayModel::invalidate);
|
connect(&dirtyTimer, &QTimer::timeout, this, [this]() {
|
||||||
|
invalidate();
|
||||||
|
emit modelDirty();
|
||||||
|
});
|
||||||
|
|
||||||
loadedRowCount = 0;
|
loadedRowCount = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -19,13 +22,9 @@ void CardDatabaseDisplayModel::setSourceModel(QAbstractItemModel *model)
|
||||||
{
|
{
|
||||||
QSortFilterProxyModel::setSourceModel(model);
|
QSortFilterProxyModel::setSourceModel(model);
|
||||||
|
|
||||||
connect(model, &QAbstractItemModel::rowsInserted, this, [this]() {
|
connect(model, &QAbstractItemModel::rowsInserted, this, [this]() { dirty(); });
|
||||||
dirty();
|
|
||||||
});
|
|
||||||
|
|
||||||
connect(model, &QAbstractItemModel::rowsRemoved, this, [this]() {
|
connect(model, &QAbstractItemModel::rowsRemoved, this, [this]() { dirty(); });
|
||||||
dirty();
|
|
||||||
});
|
|
||||||
|
|
||||||
connect(model, &QAbstractItemModel::modelReset, this, [this]() {
|
connect(model, &QAbstractItemModel::modelReset, this, [this]() {
|
||||||
loadedRowCount = 0;
|
loadedRowCount = 0;
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,6 @@ public:
|
||||||
void setIsToken(FilterBool _isToken)
|
void setIsToken(FilterBool _isToken)
|
||||||
{
|
{
|
||||||
isToken = _isToken;
|
isToken = _isToken;
|
||||||
emit modelDirty();
|
|
||||||
dirty();
|
dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,20 +53,17 @@ public:
|
||||||
filterString = nullptr;
|
filterString = nullptr;
|
||||||
}
|
}
|
||||||
cardName = sanitizeCardName(_cardName, characterTranslation);
|
cardName = sanitizeCardName(_cardName, characterTranslation);
|
||||||
emit modelDirty();
|
|
||||||
dirty();
|
dirty();
|
||||||
}
|
}
|
||||||
void setStringFilter(const QString &_src)
|
void setStringFilter(const QString &_src)
|
||||||
{
|
{
|
||||||
delete filterString;
|
delete filterString;
|
||||||
filterString = new FilterString(_src);
|
filterString = new FilterString(_src);
|
||||||
emit modelDirty();
|
|
||||||
dirty();
|
dirty();
|
||||||
}
|
}
|
||||||
void setCardNameSet(const QSet<QString> &_cardNameSet)
|
void setCardNameSet(const QSet<QString> &_cardNameSet)
|
||||||
{
|
{
|
||||||
cardNameSet = _cardNameSet;
|
cardNameSet = _cardNameSet;
|
||||||
emit modelDirty();
|
|
||||||
dirty();
|
dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue