From f2e70652ea852b3fb35087e66a7eaf30db6b9d11 Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Tue, 26 May 2009 12:38:55 +0200 Subject: [PATCH] Add a way to use different chanact_filter for certain windows I added a setting chanact_filter_windowlist, which is a space-separated list of windows, for which to use (the new setting) chanact_filter_windowlist_level instead of chanact_filter. chanact_filter_windowlist defaults to "" chanact_filter_windowlist_level defaults to (chanact_filter<4)?4:2 Signed-off-by: martin f. krafft --- chanact.pl | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/chanact.pl b/chanact.pl index 1444248..10e1c83 100644 --- a/chanact.pl +++ b/chanact.pl @@ -4,7 +4,7 @@ use Irssi::TextUI; use vars qw($VERSION %IRSSI); -$VERSION = "0.5.10"; +$VERSION = "0.5.11"; %IRSSI = ( authors => 'BC-bd, Veli', contact => 'bd@bc-bd.org, veli@piipiip.net', @@ -30,6 +30,7 @@ $VERSION = "0.5.10"; # qrczak@knm.org.pl chanact_abbreviate_names # qerub@home.se Extra chanact_show_mode and chanact_chop_status # madduck@madduck.net Better channel aliasing (case-sensitive, cross-network) +# chanact_filter_windowlist # Jan 'jast' Krueger , 2004-06-22 # Ivo Timmermans win->{hilight} patch # @@ -160,6 +161,17 @@ $VERSION = "0.5.10"; # * 3 : hide channels with text messages # * 4 : hide all channels (now why would you want to do that) # +# /set chanact_filter_windowlist +# * : space-separated list of windows for which to use +# chanact_filter_windowlist_level instead of +# chanact_filter. +# +# /set chanact_filter_windowlist_level +# like chanact_filter for windows in chanact_filter_windowlist. Defaults to +# chanact_filter<4 ? 4 : 2, making chanact_filter_windowlist a list of +# windows never to show if chanact_filter<4, and a list of windows to show +# when there is reasonable activity if all channels would be hidden. +# ######### # HINTS ######### @@ -214,6 +226,7 @@ sub remake() { my $abbrev = Irssi::settings_get_int('chanact_abbreviate_names'); my $remove_prefix = Irssi::settings_get_str('chanact_remove_prefix'); my $remove_hash = Irssi::settings_get_bool('chanact_remove_hash'); + my $windowlist = Irssi::settings_get_str('chanact_filter_windowlist'); if (Irssi::settings_get_bool('chanact_sort_by_activity')) { @windows = sort { ($b->{last_line} <=> $a->{last_line}) } @@ -234,8 +247,16 @@ sub remake() { my $name = $win->get_active_name; - # skip windows that have only activity below the filter setting - next if (Irssi::settings_get_int('chanact_filter') > $win->{data_level}); + my $filter_level = Irssi::settings_get_int('chanact_filter'); + if (grep { $_ eq $name } split ' ', $windowlist) { + # window matches $windowlist, so use + # chanact_filter_windowlist_level to override + # chanact_filter + $filter_level = Irssi::settings_get_int('chanact_filter_windowlist_level'); + } + # skip windows with data of level lower than the applicable + # filter setting + next if ($win->{data_level} < $filter_level); # (status) is an awfull long name, so make it short to 'S' # some people don't like it, so make it configurable @@ -439,6 +460,9 @@ Irssi::settings_add_str('chanact', 'chanact_header', "Act: "); Irssi::settings_add_bool('chanact', 'chanact_chop_status', 1); Irssi::settings_add_bool('chanact', 'chanact_sort_by_activity', 1); Irssi::settings_add_int('chanact', 'chanact_filter', 0); +Irssi::settings_add_str('chanact', 'chanact_filter_windowlist', ""); +Irssi::settings_add_int('chanact', 'chanact_filter_windowlist_level', + Irssi::settings_get_int('chanact_filter') < 4 ? 4 : 2); # register the statusbar item Irssi::statusbar_item_register('chanact', '$0', 'chanact'); @@ -464,7 +488,12 @@ Irssi::signal_add_last('window refnum changed', 'refnum_changed'); ### # # Changelog -# +# +# 0.5.11 +# - added chanact_filter_windowlist, which is a space-separated list of +# windows for which to use chanact_filter_windowlist_level instead of +# chanact_filter (madduck@madduck.net). +# # 0.5.10 # - fixed irssi crash when using Irssi::print from within remake() # - added option to filter out some data levels, based on a patch by -- 2.39.2