Merge upstream/master (COSMIC 1.6) into main
Aligne le fork sur epoch-1.6.0 (63 commits amont) en preservant les 19 commits yoda. Resolutions notables : - les cfg `all(feature = "wayland", target_os = "linux")` deviennent l alias `wayland_platform` introduit en amont ; il exclut winit comme le faisait le patch yoda45eaaf16, l intention est donc preservee ; - les features iced `cctk` ont ete renommees `wayland` en amont, la feature `wayland` locale est adaptee ; `winit` reste un marqueur vide et `iced/winit` est liste explicitement ; - cctk/ashpd gardent leurs chemins locaux dans la section conditionnelle unix introduite en amont ; - la garde anti-crashc0b653f5(context_menu non assigne) est conservee par-dessus la nouvelle structure amont ; - traductions ca/oc restaurees depuis amont. Le submodule iced suit (merge + correctif du cfg cctk residuel). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
9535ada4d0
60 changed files with 3187 additions and 1528 deletions
|
|
@ -29,7 +29,7 @@ pub fn dnd_destination_for_data<'a, T: AllowedMimeTypes, Message: 'static>(
|
|||
|
||||
static DRAG_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
|
||||
const DND_DEST_LOG_TARGET: &str = "libcosmic::widget::dnd_destination";
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
pub const FILE_TRANSFER_MIME: &str = "application/vnd.portal.filetransfer";
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
|
|
@ -64,7 +64,7 @@ pub struct DndDestination<'a, Message> {
|
|||
on_action_selected: Option<Box<dyn Fn(DndAction) -> Message>>,
|
||||
on_data_received: Option<Box<dyn Fn(String, Vec<u8>) -> Message>>,
|
||||
on_finish: Option<Box<dyn Fn(String, Vec<u8>, DndAction, f64, f64) -> Message>>,
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
on_file_transfer: Option<Box<dyn Fn(String) -> Message>>,
|
||||
}
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ impl<'a, Message: 'static> DndDestination<'a, Message> {
|
|||
on_action_selected: None,
|
||||
on_data_received: None,
|
||||
on_finish: None,
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
on_file_transfer: None,
|
||||
}
|
||||
}
|
||||
|
|
@ -119,7 +119,7 @@ impl<'a, Message: 'static> DndDestination<'a, Message> {
|
|||
on_finish: Some(Box::new(move |mime, data, action, _, _| {
|
||||
on_finish(T::try_from((data, mime)).ok(), action)
|
||||
})),
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
on_file_transfer: None,
|
||||
}
|
||||
}
|
||||
|
|
@ -156,7 +156,7 @@ impl<'a, Message: 'static> DndDestination<'a, Message> {
|
|||
on_action_selected: None,
|
||||
on_data_received: None,
|
||||
on_finish: None,
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
on_file_transfer: None,
|
||||
}
|
||||
}
|
||||
|
|
@ -239,7 +239,7 @@ impl<'a, Message: 'static> DndDestination<'a, Message> {
|
|||
/// Add a message that will be emitted instead of [`on_data_received`](Self::on_data_received) if the dropped files
|
||||
/// are offered through the xdg share portal. You can then use [`crate::command::file_transfer_receive`]
|
||||
/// with the key to receive the files.
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
#[must_use]
|
||||
pub fn on_file_transfer(mut self, f: impl Fn(String) -> Message + 'static) -> Self {
|
||||
match self.mime_types.iter().position(|v| v == "text/uri-list") {
|
||||
|
|
@ -508,7 +508,7 @@ impl<Message: 'static> Widget<Message, crate::Theme, crate::Renderer>
|
|||
data.len()
|
||||
);
|
||||
|
||||
#[cfg(feature = "xdg-portal")]
|
||||
#[cfg(xdg_portal)]
|
||||
if mime_type == FILE_TRANSFER_MIME
|
||||
&& let Some(f) = self.on_file_transfer.as_ref()
|
||||
&& let Ok(s) = String::from_utf8(data[..data.len() - 1].to_vec())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue