mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 14:28:12 +00:00
GSortingProxyModel: Sort case insensitively by default (#441)
This commit is contained in:
parent
b9223e4f04
commit
0faaa1e53a
2 changed files with 9 additions and 1 deletions
|
@ -87,7 +87,11 @@ void GSortingProxyModel::resort()
|
||||||
auto data2 = target().data(target().index(row2, m_key_column), GModel::Role::Sort);
|
auto data2 = target().data(target().index(row2, m_key_column), GModel::Role::Sort);
|
||||||
if (data1 == data2)
|
if (data1 == data2)
|
||||||
return 0;
|
return 0;
|
||||||
bool is_less_than = data1 < data2;
|
bool is_less_than;
|
||||||
|
if (data1.is_string() && data2.is_string() && !m_sorting_case_sensitive)
|
||||||
|
is_less_than = data1.as_string().to_lowercase() < data2.as_string().to_lowercase();
|
||||||
|
else
|
||||||
|
is_less_than = data1 < data2;
|
||||||
return m_sort_order == GSortOrder::Ascending ? is_less_than : !is_less_than;
|
return m_sort_order == GSortOrder::Ascending ? is_less_than : !is_less_than;
|
||||||
});
|
});
|
||||||
if (previously_selected_target_row != -1) {
|
if (previously_selected_target_row != -1) {
|
||||||
|
|
|
@ -29,8 +29,12 @@ private:
|
||||||
|
|
||||||
void resort();
|
void resort();
|
||||||
|
|
||||||
|
void set_sorting_case_sensitive(bool b) { m_sorting_case_sensitive = b; }
|
||||||
|
bool is_sorting_case_sensitive() { return m_sorting_case_sensitive; }
|
||||||
|
|
||||||
NonnullRefPtr<GModel> m_target;
|
NonnullRefPtr<GModel> m_target;
|
||||||
Vector<int> m_row_mappings;
|
Vector<int> m_row_mappings;
|
||||||
int m_key_column { -1 };
|
int m_key_column { -1 };
|
||||||
GSortOrder m_sort_order { GSortOrder::Ascending };
|
GSortOrder m_sort_order { GSortOrder::Ascending };
|
||||||
|
bool m_sorting_case_sensitive { false };
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue