feat(channels): allow sending currently selected entries to other channels (#235)

Related to #229
This commit is contained in:
Alex Pasmantier 2025-01-07 00:35:14 +01:00 committed by GitHub
parent 2e5f65baef
commit e2398abcfa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 50 additions and 14 deletions

View File

@ -37,7 +37,11 @@ impl From<&mut TelevisionChannel> for Channel {
fn from(value: &mut TelevisionChannel) -> Self {
match value {
c @ TelevisionChannel::GitRepos(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()
@ -46,7 +50,11 @@ impl From<&mut TelevisionChannel> for Channel {
)
}
c @ TelevisionChannel::Dirs(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()

View File

@ -37,7 +37,11 @@ impl From<&mut TelevisionChannel> for Channel {
fn from(value: &mut TelevisionChannel) -> Self {
match value {
c @ TelevisionChannel::GitRepos(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()
@ -46,7 +50,11 @@ impl From<&mut TelevisionChannel> for Channel {
)
}
c @ TelevisionChannel::Files(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()
@ -55,7 +63,11 @@ impl From<&mut TelevisionChannel> for Channel {
)
}
c @ TelevisionChannel::Text(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()

View File

@ -124,12 +124,16 @@ impl From<&mut TelevisionChannel> for Channel {
fn from(value: &mut TelevisionChannel) -> Self {
match value {
c @ TelevisionChannel::Files(_) => {
let entries = c.results(
let entries = if c.selected_entries().is_empty() {
c.results(
c.result_count().min(
u32::try_from(MAX_PIPED_FILES).unwrap_or(u32::MAX),
),
0,
);
)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::from_file_paths(
entries
.iter()
@ -140,7 +144,11 @@ impl From<&mut TelevisionChannel> for Channel {
)
}
c @ TelevisionChannel::GitRepos(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()
@ -151,11 +159,19 @@ impl From<&mut TelevisionChannel> for Channel {
)
}
c @ TelevisionChannel::Text(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::from_text_entries(entries)
}
c @ TelevisionChannel::Dirs(_) => {
let entries = c.results(c.result_count(), 0);
let entries = if c.selected_entries().is_empty() {
c.results(c.result_count(), 0)
} else {
c.selected_entries().iter().cloned().collect()
};
Self::new(
entries
.iter()