Add UX enhancements: carousel, filter chips, command palette, and more
This commit is contained in:
@@ -277,7 +277,7 @@ fn build_report_content(db: &Rc<Database>) -> gtk::ScrolledWindow {
|
||||
fn build_summary_group(summary: &crate::core::database::CveSummary) -> adw::PreferencesGroup {
|
||||
let group = adw::PreferencesGroup::builder()
|
||||
.title("Vulnerability Summary")
|
||||
.description("Overall security status across all your apps")
|
||||
.description("Driftwood checks the software components bundled inside your apps against a database of known security issues (CVEs). Most issues are in underlying libraries, not the apps themselves.")
|
||||
.build();
|
||||
|
||||
let total_row = adw::ActionRow::builder()
|
||||
@@ -294,6 +294,7 @@ fn build_summary_group(summary: &crate::core::database::CveSummary) -> adw::Pref
|
||||
let row = adw::ActionRow::builder()
|
||||
.title("Critical")
|
||||
.subtitle(&summary.critical.to_string())
|
||||
.tooltip_text("Could allow an attacker to take control of affected components")
|
||||
.build();
|
||||
let badge = widgets::status_badge("Critical", "error");
|
||||
badge.set_valign(gtk::Align::Center);
|
||||
@@ -304,6 +305,7 @@ fn build_summary_group(summary: &crate::core::database::CveSummary) -> adw::Pref
|
||||
let row = adw::ActionRow::builder()
|
||||
.title("High")
|
||||
.subtitle(&summary.high.to_string())
|
||||
.tooltip_text("Could allow unauthorized access to data processed by the app")
|
||||
.build();
|
||||
let badge = widgets::status_badge("High", "error");
|
||||
badge.set_valign(gtk::Align::Center);
|
||||
@@ -314,6 +316,7 @@ fn build_summary_group(summary: &crate::core::database::CveSummary) -> adw::Pref
|
||||
let row = adw::ActionRow::builder()
|
||||
.title("Medium")
|
||||
.subtitle(&summary.medium.to_string())
|
||||
.tooltip_text("Could cause the app to behave unexpectedly or crash")
|
||||
.build();
|
||||
let badge = widgets::status_badge("Medium", "warning");
|
||||
badge.set_valign(gtk::Align::Center);
|
||||
@@ -324,6 +327,7 @@ fn build_summary_group(summary: &crate::core::database::CveSummary) -> adw::Pref
|
||||
let row = adw::ActionRow::builder()
|
||||
.title("Low")
|
||||
.subtitle(&summary.low.to_string())
|
||||
.tooltip_text("Minor issue with limited practical impact")
|
||||
.build();
|
||||
let badge = widgets::status_badge("Low", "neutral");
|
||||
badge.set_valign(gtk::Align::Center);
|
||||
@@ -340,7 +344,10 @@ fn build_app_findings_group(
|
||||
summary: &crate::core::database::CveSummary,
|
||||
cve_matches: &[crate::core::database::CveMatchRecord],
|
||||
) -> adw::PreferencesGroup {
|
||||
let description = format!("{} known security issues found", summary.total());
|
||||
let description = format!(
|
||||
"{} known security issues found. Check if a newer version is available in the catalog or from the developer's website. Most security issues are fixed in newer releases.",
|
||||
summary.total()
|
||||
);
|
||||
let group = adw::PreferencesGroup::builder()
|
||||
.title(app_name)
|
||||
.description(&description)
|
||||
|
||||
Reference in New Issue
Block a user