Fixing filters for GNATSAS

For eng/ide/gnatstudio#401
This commit is contained in:
Andry Ogorodnik
2024-10-23 14:01:24 +03:00
parent 3f6846f5aa
commit d205765d2d
3 changed files with 51 additions and 22 deletions

View File

@@ -56,6 +56,7 @@ package CodePeer.Generic_Criteria_Models is
History_Prefix : String;
Items : Item_Sets.Set;
Default : Boolean);
-- Creates new instance. History_Prefix is a prefix to manage persistent
-- state of selected categories.

View File

@@ -927,11 +927,11 @@ package body CodePeer.Messages_Reports is
Self.Analysis_Model.Set_Visible_Message_Lifeages
(To_Lifeage_Kinds_Flags (Self.Lifeage_Editor.Get_Visible_Items));
Self.Analysis_Model.Set_Visible_Message_Status (Self.Show_Status);
Self.Set_Visible_Message_Status;
Self.Analysis_Model.Set_Visible_Message_Categories
(Self.Warning_Categories_Editor.Get_Visible_Items.Union
(Self.Check_Categories_Editor.Get_Visible_Items));
Self.Analysis_Model.Set_Visible_Ranking_Categories (Self.Show_Ranking);
Self.Set_Visible_Ranking_Categories;
if Self.CWE_Editor /= null then
Self.Analysis_Model.Set_Visible_CWE_Categories
@@ -1116,6 +1116,24 @@ package body CodePeer.Messages_Reports is
Emit_By_Name (Self.Get_Object, Signal_Criteria_Changed & ASCII.NUL);
end On_Lifeage_Criteria_Changed;
------------------------------------
-- Set_Visible_Ranking_Categories --
------------------------------------
procedure Set_Visible_Ranking_Categories
(Self : in out Messages_Report_Record) is
begin
for Item in Ranking_Kinds'Range loop
Self.Show_Ranking (Item) := False;
end loop;
for Item of Self.Ranking_Editor.Get_Visible_Items loop
Self.Show_Ranking (Item.all) := True;
end loop;
Self.Analysis_Model.Set_Visible_Ranking_Categories (Self.Show_Ranking);
end Set_Visible_Ranking_Categories;
---------------------------------
-- On_Ranking_Criteria_Changed --
---------------------------------
@@ -1129,33 +1147,19 @@ package body CodePeer.Messages_Reports is
pragma Unreferenced (Object);
begin
for Item in Ranking_Kinds'Range loop
Self.Show_Ranking (Item) := False;
end loop;
for Item of Self.Ranking_Editor.Get_Visible_Items loop
Self.Show_Ranking (Item.all) := True;
end loop;
Self.Analysis_Model.Set_Visible_Ranking_Categories (Self.Show_Ranking);
Self.Set_Visible_Ranking_Categories;
-- Emit 'criteria-changed' signal.
Emit_By_Name (Self.Get_Object, Signal_Criteria_Changed & ASCII.NUL);
end On_Ranking_Criteria_Changed;
-------------------------------
-- On_Audit_Statuses_Changed --
-------------------------------
procedure On_Audit_Statuses_Changed
(Object : access
CodePeer.Audit_Statuses_Criteria_Editors.
Criteria_Editor_Record'Class;
Self : Messages_Report)
is
pragma Unreferenced (Object);
--------------------------------
-- Set_Visible_Message_Status --
--------------------------------
procedure Set_Visible_Message_Status
(Self : in out Messages_Report_Record) is
begin
for Status of Audit_Statuses loop
Self.Show_Status (Status.Id) := False;
@@ -1174,6 +1178,23 @@ package body CodePeer.Messages_Reports is
end loop;
Self.Analysis_Model.Set_Visible_Message_Status (Self.Show_Status);
end Set_Visible_Message_Status;
-------------------------------
-- On_Audit_Statuses_Changed --
-------------------------------
procedure On_Audit_Statuses_Changed
(Object : access
CodePeer.Audit_Statuses_Criteria_Editors.
Criteria_Editor_Record'Class;
Self : Messages_Report)
is
pragma Unreferenced (Object);
begin
Self.Set_Visible_Message_Status;
Emit_By_Name (Self.Get_Object, Signal_Criteria_Changed & ASCII.NUL);
end On_Audit_Statuses_Changed;

View File

@@ -109,6 +109,13 @@ private
-- event and checking of value on mouse release event.
end record;
procedure Set_Visible_Ranking_Categories
(Self : in out Messages_Report_Record);
-- Update Show_Ranking and Analysis_Model after ranking has been changed
procedure Set_Visible_Message_Status (Self : in out Messages_Report_Record);
-- Update Show_Status and Analysis_Model after status has been changed
Signal_Activated : constant Glib.Signal_Name := "activated";
Signal_Criteria_Changed : constant Glib.Signal_Name := "criteria_changed";