mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-28 12:40:12 +00:00
[Qt] Simplify firmware libraries searching
This commit is contained in:
parent
5681801b85
commit
85199e200b
@ -280,50 +280,28 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> xSettings, const
|
|||||||
auto l_OnSearchBoxTextChanged = [=](QString text)
|
auto l_OnSearchBoxTextChanged = [=](QString text)
|
||||||
{
|
{
|
||||||
QString searchTerm = text.toLower();
|
QString searchTerm = text.toLower();
|
||||||
QList<QListWidgetItem*> checked_Libs;
|
QList<QListWidgetItem*> list;
|
||||||
QList<QListWidgetItem*> unchecked_Libs;
|
|
||||||
|
|
||||||
// create sublists. we need clones to preserve checkstates
|
// create list. we need clones to preserve checkstates
|
||||||
for (int i = 0; i < ui->lleList->count(); ++i)
|
for (int i = 0; i < ui->lleList->count(); i++)
|
||||||
{
|
{
|
||||||
if (ui->lleList->item(i)->checkState() == Qt::Checked)
|
list.append(ui->lleList->item(i)->clone());
|
||||||
{
|
|
||||||
checked_Libs.append(ui->lleList->item(i)->clone());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
unchecked_Libs.append(ui->lleList->item(i)->clone());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// sort sublists
|
// sort list
|
||||||
auto qLessThan = [](QListWidgetItem *i1, QListWidgetItem *i2) { return i1->text() < i2->text(); };
|
qSort(list.begin(), list.end(), [](QListWidgetItem *i1, QListWidgetItem *i2) {
|
||||||
qSort(checked_Libs.begin(), checked_Libs.end(), qLessThan);
|
return (i1->checkState() != i2->checkState()) ? (i1->checkState() > i2->checkState()) : (i1->text() < i2->text());
|
||||||
qSort(unchecked_Libs.begin(), unchecked_Libs.end(), qLessThan);
|
});
|
||||||
|
|
||||||
// refill library list
|
// refill library list
|
||||||
ui->lleList->clear();
|
ui->lleList->clear();
|
||||||
|
|
||||||
for (const auto& lib : checked_Libs)
|
for (int i = 0; i < list.count(); i++)
|
||||||
{
|
{
|
||||||
ui->lleList->addItem(lib);
|
ui->lleList->addItem(list.at(i));
|
||||||
}
|
|
||||||
for (const auto& lib : unchecked_Libs)
|
|
||||||
{
|
|
||||||
ui->lleList->addItem(lib);
|
|
||||||
}
|
|
||||||
|
|
||||||
// only show items filtered for search text
|
// only show items filtered for search text
|
||||||
for (int i = 0; i < ui->lleList->count(); i++)
|
ui->lleList->setRowHidden(i, !list.at(i)->text().contains(searchTerm));
|
||||||
{
|
|
||||||
if (ui->lleList->item(i)->text().contains(searchTerm))
|
|
||||||
{
|
|
||||||
ui->lleList->setRowHidden(i, false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ui->lleList->setRowHidden(i, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user