Make module dependencies explicit across the workspace

This commit is contained in:
Samuel Onoja committed 2026-10-22 01:28:03 +01:00
1 parent 610478f8c7
commit 1b4db0e681
104 files changed
+614 -203

No files matched your search

+9 -6
View File
@@ -9,7 +9,7 @@ mod panel_inspector;
mod panel_preview;
mod theme_controls;
use theme_controls::*;
use theme_controls::gallery_id;
mod displays;
mod displays_ui;
@@ -1309,7 +1309,9 @@ mod tests {
app.page = Page::Bar;
let edit = panel_controls::initialize(&app.draft).unwrap();
app.draft.edit(&edit).unwrap();
use cosmic::iced::advanced::{layout, renderer::Headless, widget::Tree};
use cosmic::iced::advanced::layout;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::widget::Tree;
use cosmic::iced::{Font, Pixels, Size};
let runtime = tokio::runtime::Builder::new_current_thread()
.enable_all()
@@ -1537,7 +1539,9 @@ mod tests {
.enable_all()
.build()
.unwrap();
use cosmic::iced::advanced::{layout, renderer::Headless, widget::Tree};
use cosmic::iced::advanced::layout;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::widget::Tree;
use cosmic::iced::{Font, Pixels, Size};
let renderer = runtime
.block_on(<cosmic::Renderer as Headless>::new(
@@ -1722,9 +1726,8 @@ mod tests {
#[ignore = "release scroll/render sample; requires both renderer backends"]
fn profile_dense_pages_on_both_renderers() {
use cosmic::iced::advanced::renderer::{Headless, Renderer as _};
use cosmic::iced::advanced::{
Layout, Shell, clipboard, layout, mouse, renderer, widget::Tree,
};
use cosmic::iced::advanced::widget::Tree;
use cosmic::iced::advanced::{Layout, Shell, clipboard, layout, mouse, renderer};
use cosmic::iced::{Color, Event, Font, Pixels, Point, Rectangle, Size};
let runtime = tokio::runtime::Builder::new_current_thread()
.enable_all()
+4 -2
View File
@@ -1,7 +1,8 @@
use ferese_panel::{Edge, ItemKind, Panel};
use crate::panel_edit::{Action, Destination, Zone};
use crate::{App, Element, Message, schema::Page, store, widget};
use crate::schema::Page;
use crate::{App, Element, Message, store, widget};
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub(super) enum PanelPage {
@@ -1036,7 +1037,8 @@ mod tests {
#[test]
fn editor_zones_wrap_without_putting_groups_outside_the_available_width() {
use cosmic::Application;
use cosmic::iced::advanced::{Layout, layout, renderer::Headless, widget as advanced};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{Layout, layout, widget as advanced};
use cosmic::iced::{Font, Pixels, Rectangle, Size};
struct Bounds {
ids: Vec<advanced::Id>,
+2 -1
View File
@@ -455,7 +455,8 @@ impl Widget<Message, Theme, Renderer> for Editor<'_> {
mod tests {
use super::*;
use crate::store::{Snapshot, set};
use cosmic::iced::advanced::{clipboard, renderer::Headless};
use cosmic::iced::advanced::clipboard;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::{Font, Pixels};
use cosmic::widget::{button, column, container, row, text};
+2 -3
View File
@@ -522,9 +522,8 @@ fn preview_button(palette: visuals::Palette, selected: bool) -> cosmic::theme::B
mod tests {
use super::*;
use cosmic::Application;
use cosmic::iced::advanced::{
Layout, Shell, clipboard, layout, mouse, renderer::Headless, widget,
};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{Layout, Shell, clipboard, layout, mouse, widget};
use cosmic::iced::{Event, Font, Pixels, Point, Rectangle, Size};
#[test]
@@ -488,8 +488,9 @@ mod tests {
#[test]
fn preview_slots_keep_their_size_while_loading_and_on_failure() {
use cosmic::Application;
use cosmic::iced::advanced::layout;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{layout, widget::Tree};
use cosmic::iced::advanced::widget::Tree;
use cosmic::iced::{Font, Pixels, Size};
let runtime = tokio::runtime::Builder::new_current_thread()
@@ -565,7 +566,8 @@ mod tests {
fn render_preview_pages_on_both_backends() {
use cosmic::Application;
use cosmic::iced::advanced::renderer::{Headless, Renderer as _};
use cosmic::iced::advanced::{Layout, layout, mouse, renderer, widget::Tree};
use cosmic::iced::advanced::widget::Tree;
use cosmic::iced::advanced::{Layout, layout, mouse, renderer};
use cosmic::iced::{Color, Font, Pixels, Rectangle, Size};
let runtime = tokio::runtime::Builder::new_current_thread()
+2 -1
View File
@@ -968,7 +968,8 @@ mod island_tests {
}
use crate::panel::{ItemId, Panel};
use cosmic::iced::advanced::{Layout, layout, renderer::Headless, widget};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{Layout, layout, widget};
use cosmic::iced::{Font, Pixels, Rectangle, Size};
#[derive(Default)]
+2 -1
View File
@@ -6,7 +6,8 @@ use std::os::unix::net::UnixStream;
use std::path::{Path, PathBuf};
use cosmic::iced::{Subscription, futures};
use jiff::{Timestamp, Zoned, tz::TimeZone};
use jiff::tz::TimeZone;
use jiff::{Timestamp, Zoned};
const SECOND: i128 = 1_000_000_000;
const MINUTE: i128 = 60 * SECOND;
+5 -2
View File
@@ -1,4 +1,6 @@
use super::*;
use super::{
FereseShell, Instant, Length, Message, Task, button, compositor_ipc, container, row, theme,
};
use serde_json::{Value, json};
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
@@ -288,7 +290,8 @@ impl FereseShell {
}
pub(super) fn display_mode_key(&mut self, key: &cosmic::iced::keyboard::Key) -> Task<Message> {
use cosmic::iced::keyboard::{Key, key::Named};
use cosmic::iced::keyboard::Key;
use cosmic::iced::keyboard::key::Named;
let current = Mode::ALL
.iter()
.position(|mode| *mode == self.display_mode.selected)
+9 -2
View File
@@ -9,8 +9,15 @@ mod thumbnails;
mod view;
mod work;
use super::*;
use cosmic::iced::keyboard::{Key, key::Named};
use super::{
Anchor, Border, Color, ContentFit, Duration, EffectsBinding, Element, Event, FereseShell,
IcedMargin, IcedOutput, Instant, KeyboardInteractivity, Layer, Length, PlatformSpecific,
SctkLayerSurfaceSettings, ShellControl, Subscription, Task, bar_icon, button,
color_with_opacity, container, destroy_layer_surface, ferese_surface_effects_v1, image, motion,
native_wayland_surface, row, system_modal, theme, wayland, window, wl_surface,
};
use cosmic::iced::keyboard::Key;
use cosmic::iced::keyboard::key::Named;
use ferese_animation::{AnimatedValue, SpringConfig};
use sources::{Category, Row, Source, Target};
use std::sync::Arc;
@@ -1,4 +1,4 @@
use super::*;
use super::{Duration, FereseShell, Instant, Row, ShellControl, Target, image};
use std::collections::{HashMap, HashSet};
use std::sync::atomic::{AtomicU32, Ordering};
static NEXT_TOKEN: AtomicU32 = AtomicU32::new(1);
+5 -1
View File
@@ -1,4 +1,8 @@
use super::*;
use super::{
Border, Category, Color, ContentFit, Element, FereseShell, Length, Message, Row, Target,
bar_icon, button, color_with_opacity, container, ferese_surface_effects_v1, image, motion, row,
theme, window,
};
use cosmic::iced::border::Shape;
use cosmic::iced::widget::{Space, mouse_area, opaque, rich_text, span, stack};
use cosmic::widget::{column, text_input};
+2 -4
View File
@@ -1,7 +1,5 @@
use std::sync::{
Arc,
atomic::{AtomicBool, Ordering},
};
use std::sync::Arc;
use std::sync::atomic::{AtomicBool, Ordering};
#[derive(Clone, Default, Debug)]
pub(super) struct Cancellation(Arc<AtomicBool>);
+5 -2
View File
@@ -3,8 +3,8 @@ mod bar;
mod battery_indicator;
mod surfaces;
use bar::*;
use surfaces::*;
use bar::{bar_content, output_bar_hidden};
use surfaces::{EffectsBinding, EffectsContext, native_wayland_surface};
mod clock;
mod compositor_ipc;
@@ -1335,6 +1335,9 @@ fn color_with_opacity(mut value: [u8; 4], opacity: f32) -> Color {
#[cfg(test)]
mod tests {
use super::*;
use crate::bar::bar_hidden;
use crate::bar::focused_bar_title;
use crate::bar::workspace_active_on_bar;
use crate::control::{OutputSnapshot, WindowSnapshot};
pub(super) fn shell_with_measured_panel() -> FereseShell {
let config = ShellConfig::default();
+2 -1
View File
@@ -675,7 +675,8 @@ mod tests {
#[test]
fn motion_preserves_accessible_controls_and_translates_tooltip_overlays() {
use super::*;
use cosmic::iced::advanced::{clipboard, renderer::Headless};
use cosmic::iced::advanced::clipboard;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::{Font, Pixels, Point};
let renderer = cosmic::iced::futures::executor::block_on(cosmic::Renderer::new(
Font::default(),
+11 -2
View File
@@ -1,6 +1,12 @@
//! Surface-local animation sampling. Iced's Wayland backend gates NextFrame
//! redraws on that surface's frame callback; no animation timer is needed.
use super::*;
#[cfg(test)]
use crate::motion::Settings;
use super::{
Clipboard, Element, Event, Layout, Length, Rectangle, Shell, Size, Theme, Vector, Widget,
layout, mouse, renderer, widget,
};
use std::time::Instant;
pub(crate) struct ContentMeasurement<'a, M> {
@@ -339,9 +345,12 @@ impl<'a, M: 'a> Widget<M, Theme, cosmic::Renderer> for FrameDriven<'a, M> {
#[cfg(test)]
mod tests {
use super::*;
use crate::motion::PopupMotion;
use cosmic::iced::advanced::Renderer;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::window::{Event as WindowEvent, RedrawRequest};
use std::{cell::RefCell, time::Duration};
use std::cell::RefCell;
use std::time::Duration;
#[test]
fn callbacks_sample_every_refresh_without_timers_and_stop_when_settled() {
+9 -2
View File
@@ -2,7 +2,13 @@ use cosmic::iced::border::Shape as BorderShape;
use cosmic::iced::widget::scrollable::{Direction, Scrollbar};
use cosmic::widget::{column, scrollable};
use super::*;
use super::{
Anchor, Background, Border, Color, Duration, EffectsBinding, Element, FereseShell, IcedOutput,
KeyboardInteractivity, Layer, Length, Limits, Message, SctkLayerSurfaceSettings, Task,
accented_icon, alignment, bar_icon, button, color, color_with_opacity, container,
destroy_layer_surface, ferese_surface_effects_v1, icon, motion, notifications, row, set_size,
status, status_ui, theme, window, wl_output,
};
const POPUP_WIDTH: u32 = 368;
const HISTORY_MAX_HEIGHT: f32 = 620.0;
@@ -935,7 +941,8 @@ impl FereseShell {
mod tests {
use super::*;
use cosmic::iced::advanced::renderer::{Headless, Renderer as _};
use cosmic::iced::advanced::{Layout, layout, mouse, widget::Tree};
use cosmic::iced::advanced::widget::Tree;
use cosmic::iced::advanced::{Layout, layout, mouse};
use cosmic::iced::{Font, Pixels, Rectangle, Size};
#[test]
+8 -6
View File
@@ -1676,7 +1676,8 @@ mod tests {
}
#[test]
fn pomodoro_controls_fit_and_tab_enter_targets_the_current_session() {
use cosmic::iced::advanced::{renderer::Headless, widget::operation};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::widget::operation;
use cosmic::iced::keyboard::{Event as KeyEvent, Key, Location, Modifiers, key};
use ferese_activities::pomodoro::{Session, Status};
use ferese_ipc::activities::PomodoroAction;
@@ -2017,9 +2018,8 @@ mod tests {
#[test]
fn live_activity_keeps_workspace_wheel_handler() {
use cosmic::iced::advanced::{
Layout, Shell, clipboard, layout, renderer::Headless, widget,
};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{Layout, Shell, clipboard, layout, widget};
use cosmic::iced::{Event, Size, mouse};
let renderer = cosmic::iced::futures::executor::block_on(cosmic::Renderer::new(
cosmic::iced::Font::default(),
@@ -2183,9 +2183,11 @@ mod tests {
#[test]
fn activity_arrows_follow_tab_focus() {
use cosmic::iced::Size;
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::widget::operation;
use cosmic::iced::advanced::{Layout, layout, renderer::Headless, widget};
use cosmic::iced::{Size, keyboard::key::Named};
use cosmic::iced::advanced::{Layout, layout, widget};
use cosmic::iced::keyboard::key::Named;
let renderer = cosmic::iced::futures::executor::block_on(cosmic::Renderer::new(
cosmic::iced::Font::default(),
cosmic::iced::Pixels(14.),
+1 -1
View File
@@ -1,5 +1,5 @@
//! A fixed-width battery silhouette; the percentage is text, not regenerated SVG.
use super::*;
use super::{Element, FereseShell, Message, button, color_with_opacity, motion, status_ui, window};
pub(super) const WIDTH: f64 = 38.;
@@ -121,7 +121,8 @@ impl Widget<cosmic::Action<Message>, Theme, cosmic::Renderer> for Equalizer {
#[cfg(test)]
mod tests {
use super::*;
use cosmic::iced::advanced::{clipboard, renderer::Headless};
use cosmic::iced::advanced::clipboard;
use cosmic::iced::advanced::renderer::Headless;
#[test]
fn bars_redraw_without_rebuilding_layout_or_publishing_messages() {
@@ -3,7 +3,8 @@ mod thumbnail;
use cosmic::app::Task;
use cosmic::iced::advanced::widget::{Id, operation};
use cosmic::iced::{Alignment, Length, keyboard::key::Named, window};
use cosmic::iced::keyboard::key::Named;
use cosmic::iced::{Alignment, Length, window};
use cosmic::widget::{button, column, container, mouse_area, row, scrollable};
use cosmic::{Element, theme};
@@ -559,7 +560,8 @@ mod tests {
#[test]
fn arrows_follow_the_tile_focused_by_tab_in_both_directions_and_narrow_grids() {
use cosmic::iced::Size;
use cosmic::iced::advanced::{Layout, layout, renderer::Headless, widget};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{Layout, layout, widget};
let renderer = cosmic::iced::futures::executor::block_on(cosmic::Renderer::new(
cosmic::iced::Font::default(),
cosmic::iced::Pixels(14.),
@@ -217,7 +217,8 @@ impl Widget<Action, Theme, cosmic::Renderer> for DragArea<'_> {
#[cfg(test)]
mod tests {
use super::*;
use cosmic::iced::advanced::{clipboard, renderer::Headless};
use cosmic::iced::advanced::clipboard;
use cosmic::iced::advanced::renderer::Headless;
#[test]
fn drag_moves_the_pressed_window_once_and_click_still_selects_workspace() {
@@ -1,10 +1,12 @@
use std::time::{Duration, Instant};
use cosmic::app::Task;
use cosmic::iced::{Alignment, mouse::ScrollDelta, window};
use cosmic::iced::mouse::ScrollDelta;
use cosmic::iced::{Alignment, window};
use cosmic::widget::{button, container, row};
use cosmic::{Element, theme};
use ferese_panel::{ItemKind, morph::Mode};
use ferese_panel::ItemKind;
use ferese_panel::morph::Mode;
use super::Event;
use crate::control::WorkspaceSnapshot;
+2 -1
View File
@@ -8,7 +8,8 @@ use cosmic::iced::window;
use ferese_panel::adaptive::{Adaptive, WindowState};
use ferese_panel::{Panel, PanelStyle};
use crate::{FereseShell, Message, control::ShellSnapshot, output_bar_hidden};
use crate::control::ShellSnapshot;
use crate::{FereseShell, Message, output_bar_hidden};
pub(super) struct Runtime {
pub(super) hub: Option<std::cell::RefCell<crate::panel_hub::Runtime>>,
@@ -1,9 +1,8 @@
use std::time::Instant;
use cosmic::app::Task;
use cosmic::iced::Rectangle;
use cosmic::iced::platform_specific::runtime::wayland::popup::{SctkPopupSettings, SctkPositioner};
use cosmic::iced::{Limits, window};
use cosmic::iced::{Limits, Rectangle, window};
use wayland_client::Proxy;
use super::{Menu, OpenMenu, PopoverAnchor};
+8 -4
View File
@@ -17,7 +17,11 @@ use cosmic::iced::border::Shape as BorderShape;
use cosmic::widget::column;
use status::{Action, Snapshot};
use super::*;
use super::{
Background, Border, Color, EffectsBinding, EffectsContext, Element, FereseShell, Instant,
Length, Limits, Message, Ordering, ShellTheme, accented_icon, color, color_with_opacity,
container, motion, row, status, theme, window, wl_surface,
};
type MenuHeading<'a> =
cosmic::widget::Row<'a, cosmic::Action<Message>, cosmic::Theme, cosmic::Renderer>;
@@ -570,12 +574,12 @@ fn notification_controls<'a>(
#[cfg(test)]
mod tests {
use super::*;
use std::time::Duration;
#[test]
fn activity_popups_scroll_to_the_last_row_in_regular_panels() {
use cosmic::iced::advanced::{
Layout, Shell, clipboard, layout, renderer::Headless, widget,
};
use cosmic::iced::advanced::renderer::Headless;
use cosmic::iced::advanced::{Layout, Shell, clipboard, layout, widget};
use cosmic::iced::{Event, Rectangle, Size, Vector, mouse};
use ferese_activities::{Data, Owner, Source, Store, Template, Value};
#[derive(Default)]
@@ -1,6 +1,6 @@
use cosmic::widget::{column, slider};
use super::*;
use super::{Action, FereseShell, MenuRows, MenuStyle, Message, control_card, toggle_row};
pub(super) fn view<'a>(
shell: &'a FereseShell,
+7 -1
View File
@@ -2,7 +2,12 @@ use cosmic::iced::border::Shape as BorderShape;
use cosmic::iced::widget::Space;
use cosmic::widget::column;
use super::*;
use super::{
Anchor, Background, Border, Color, EffectsBinding, Element, FereseShell, IcedOutput, Instant,
KeyboardInteractivity, Layer, Length, Message, SctkLayerSurfaceSettings, Task, button,
color_with_opacity, compositor_ipc, container, destroy_layer_surface,
ferese_surface_effects_v1, keybinding_guide, motion, row, status, theme, window, wl_surface,
};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub(super) enum PowerAction {
@@ -765,6 +770,7 @@ fn modal_focus_operation<T: Send + 'static>(
#[cfg(test)]
mod tests {
use super::*;
use cosmic::iced::Event;
#[test]
fn a_cancelled_modal_that_opens_late_is_destroyed_without_closing_its_replacement() {