ARCode: Add sort by enabled state

This commit is contained in:
Sepalani 2023-04-26 12:53:29 +04:00
parent 81ec90be9c
commit 2635595737
2 changed files with 25 additions and 0 deletions

View File

@ -3,6 +3,7 @@
#include "DolphinQt/Config/ARCodeWidget.h"
#include <algorithm>
#include <utility>
#include <QCursor>
@ -113,6 +114,8 @@ void ARCodeWidget::OnContextMenuRequested()
QMenu menu;
menu.addAction(tr("Sort Alphabetically"), this, &ARCodeWidget::SortAlphabetically);
menu.addAction(tr("Show Enabled Codes First"), this, &ARCodeWidget::SortEnabledCodesFirst);
menu.addAction(tr("Show Disabled Codes First"), this, &ARCodeWidget::SortDisabledCodesFirst);
menu.exec(QCursor::pos());
}
@ -123,6 +126,26 @@ void ARCodeWidget::SortAlphabetically()
OnListReordered();
}
void ARCodeWidget::SortEnabledCodesFirst()
{
std::stable_sort(m_ar_codes.begin(), m_ar_codes.end(), [](const auto& a, const auto& b) {
return a.enabled && a.enabled != b.enabled;
});
UpdateList();
SaveCodes();
}
void ARCodeWidget::SortDisabledCodesFirst()
{
std::stable_sort(m_ar_codes.begin(), m_ar_codes.end(), [](const auto& a, const auto& b) {
return !a.enabled && a.enabled != b.enabled;
});
UpdateList();
SaveCodes();
}
void ARCodeWidget::OnListReordered()
{
// Reorder codes based on the indices of table item

View File

@ -43,6 +43,8 @@ private:
void UpdateList();
void SaveCodes();
void SortAlphabetically();
void SortEnabledCodesFirst();
void SortDisabledCodesFirst();
void OnCodeAddClicked();
void OnCodeEditClicked();