cleanup
This commit is contained in:
parent
08367c9ea6
commit
a7a519b14c
3 changed files with 9 additions and 36 deletions
|
|
@ -3,13 +3,7 @@ use cosmic::{
|
||||||
widget, Task,
|
widget, Task,
|
||||||
};
|
};
|
||||||
use gio::{glib, prelude::*};
|
use gio::{glib, prelude::*};
|
||||||
use std::{
|
use std::{any::TypeId, cell::Cell, future::pending, path::PathBuf, sync::Arc};
|
||||||
any::TypeId,
|
|
||||||
cell::Cell,
|
|
||||||
future::pending,
|
|
||||||
path::{Path, PathBuf},
|
|
||||||
sync::Arc,
|
|
||||||
};
|
|
||||||
use tokio::sync::{mpsc, Mutex};
|
use tokio::sync::{mpsc, Mutex};
|
||||||
|
|
||||||
use super::{Mounter, MounterAuth, MounterItem, MounterItems, MounterMessage};
|
use super::{Mounter, MounterAuth, MounterItem, MounterItems, MounterMessage};
|
||||||
|
|
@ -205,7 +199,6 @@ enum Cmd {
|
||||||
NetworkScan(
|
NetworkScan(
|
||||||
String,
|
String,
|
||||||
IconSizes,
|
IconSizes,
|
||||||
Option<PathBuf>,
|
|
||||||
mpsc::Sender<Result<Vec<tab::Item>, String>>,
|
mpsc::Sender<Result<Vec<tab::Item>, String>>,
|
||||||
),
|
),
|
||||||
Unmount(MounterItem),
|
Unmount(MounterItem),
|
||||||
|
|
@ -404,7 +397,7 @@ impl Gvfs {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Cmd::NetworkScan(uri, sizes, path, items_tx) => {
|
Cmd::NetworkScan(uri, sizes, items_tx) => {
|
||||||
let file = gio::File::for_uri(&uri);
|
let file = gio::File::for_uri(&uri);
|
||||||
let needs_mount = match file.find_enclosing_mount(gio::Cancellable::NONE) {
|
let needs_mount = match file.find_enclosing_mount(gio::Cancellable::NONE) {
|
||||||
Ok(_) => false,
|
Ok(_) => false,
|
||||||
|
|
@ -527,20 +520,10 @@ impl Mounter for Gvfs {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn network_scan(
|
fn network_scan(&self, uri: &str, sizes: IconSizes) -> Option<Result<Vec<tab::Item>, String>> {
|
||||||
&self,
|
|
||||||
uri: &str,
|
|
||||||
sizes: IconSizes,
|
|
||||||
path: Option<&Path>,
|
|
||||||
) -> Option<Result<Vec<tab::Item>, String>> {
|
|
||||||
let (items_tx, mut items_rx) = mpsc::channel(1);
|
let (items_tx, mut items_rx) = mpsc::channel(1);
|
||||||
self.command_tx
|
self.command_tx
|
||||||
.send(Cmd::NetworkScan(
|
.send(Cmd::NetworkScan(uri.to_string(), sizes, items_tx))
|
||||||
uri.to_string(),
|
|
||||||
sizes,
|
|
||||||
path.map(|p| p.to_owned()),
|
|
||||||
items_tx,
|
|
||||||
))
|
|
||||||
.unwrap();
|
.unwrap();
|
||||||
items_rx.blocking_recv()
|
items_rx.blocking_recv()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
use cosmic::{iced::Subscription, widget, Task};
|
use cosmic::{iced::Subscription, widget, Task};
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use std::{
|
use std::{collections::BTreeMap, fmt, path::PathBuf, sync::Arc};
|
||||||
collections::BTreeMap,
|
|
||||||
fmt,
|
|
||||||
path::{Path, PathBuf},
|
|
||||||
sync::Arc,
|
|
||||||
};
|
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
|
|
||||||
use crate::{config::IconSizes, tab};
|
use crate::{config::IconSizes, tab};
|
||||||
|
|
@ -108,12 +103,7 @@ pub trait Mounter: Send + Sync {
|
||||||
//TODO: send result
|
//TODO: send result
|
||||||
fn mount(&self, item: MounterItem) -> Task<()>;
|
fn mount(&self, item: MounterItem) -> Task<()>;
|
||||||
fn network_drive(&self, uri: String) -> Task<()>;
|
fn network_drive(&self, uri: String) -> Task<()>;
|
||||||
fn network_scan(
|
fn network_scan(&self, uri: &str, sizes: IconSizes) -> Option<Result<Vec<tab::Item>, String>>;
|
||||||
&self,
|
|
||||||
uri: &str,
|
|
||||||
sizes: IconSizes,
|
|
||||||
path: Option<&Path>,
|
|
||||||
) -> Option<Result<Vec<tab::Item>, String>>;
|
|
||||||
fn unmount(&self, item: MounterItem) -> Task<()>;
|
fn unmount(&self, item: MounterItem) -> Task<()>;
|
||||||
fn subscription(&self) -> Subscription<MounterMessage>;
|
fn subscription(&self) -> Subscription<MounterMessage>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1205,9 +1205,9 @@ pub fn scan_recents(sizes: IconSizes) -> Vec<Item> {
|
||||||
recents.into_iter().take(50).map(|(item, _)| item).collect()
|
recents.into_iter().take(50).map(|(item, _)| item).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn scan_network(uri: &str, sizes: IconSizes, path: Option<&Path>) -> Vec<Item> {
|
pub fn scan_network(uri: &str, sizes: IconSizes) -> Vec<Item> {
|
||||||
for (_key, mounter) in MOUNTERS.iter() {
|
for (_key, mounter) in MOUNTERS.iter() {
|
||||||
match mounter.network_scan(uri, sizes, path) {
|
match mounter.network_scan(uri, sizes) {
|
||||||
Some(Ok(items)) => return items,
|
Some(Ok(items)) => return items,
|
||||||
Some(Err(err)) => {
|
Some(Err(err)) => {
|
||||||
log::warn!("failed to scan {:?}: {}", uri, err);
|
log::warn!("failed to scan {:?}: {}", uri, err);
|
||||||
|
|
@ -1445,7 +1445,7 @@ impl Location {
|
||||||
}
|
}
|
||||||
Self::Trash => scan_trash(sizes),
|
Self::Trash => scan_trash(sizes),
|
||||||
Self::Recents => scan_recents(sizes),
|
Self::Recents => scan_recents(sizes),
|
||||||
Self::Network(uri, _, path) => scan_network(uri, sizes, path.as_deref()),
|
Self::Network(uri, _, _) => scan_network(uri, sizes),
|
||||||
};
|
};
|
||||||
let parent_item_opt = match self.path_opt() {
|
let parent_item_opt = match self.path_opt() {
|
||||||
Some(path) => match item_from_path(path, sizes) {
|
Some(path) => match item_from_path(path, sizes) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue