From 30e33b9b8ef6eaaaaa3708b46f477f5552078b0f Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Thu, 13 Nov 2008 19:00:36 +0000 Subject: allow to sort networks list (from Pascal Terjan, #40177) --- lib/network/connection_manager.pm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'lib/network/connection_manager.pm') diff --git a/lib/network/connection_manager.pm b/lib/network/connection_manager.pm index 43df11f..5b77c5e 100644 --- a/lib/network/connection_manager.pm +++ b/lib/network/connection_manager.pm @@ -275,6 +275,29 @@ sub create_networks_list { 1; }); $cmanager->{gui}{networks_list}->set_has_tooltip(1); + $cmanager->{gui}{networks_list}->get_column(1)->set_sort_column_id(1); + $cmanager->{gui}{networks_list}->get_model->set_sort_func (1, sub { + my ($sortable, $iter_left, $iter_right) = @_; + my $s1 = lc $sortable->get($iter_left, 2); + my $s2 = lc $sortable->get($iter_right, 2); + return $s1 eq $s2?0:($s1 gt $s2?1:-1); + }); + $cmanager->{gui}{networks_list}->get_column(2)->set_sort_column_id(2); + $cmanager->{gui}{networks_list}->get_model->set_sort_func (2, sub { + my ($sortable, $iter_left, $iter_right) = @_; + my $s1 = $cmanager->{connection}{networks}{$sortable->get($iter_left, 0)}->{signal_strength}; + my $s2 = $cmanager->{connection}{networks}{$sortable->get($iter_right, 0)}->{signal_strength}; + return $s2 <=> $s1; + }); + $cmanager->{gui}{networks_list}->get_column(3)->set_sort_column_id(3); + $cmanager->{gui}{networks_list}->get_model->set_sort_func (3, sub { + my ($sortable, $iter_left, $iter_right) = @_; + my $s1 = $cmanager->{connection}{networks}{$sortable->get($iter_left, 0)}->{flags}; + my $s2 = $cmanager->{connection}{networks}{$sortable->get($iter_right, 0)}->{flags}; + #FIXME Should define an explicit order OPEN < WEP < WPA + return $s1 eq $s2?0:($s1 lt $s2?1:-1); + }); + } sub select_network { -- cgit v1.2.1