mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-24 03:24:21 +01:00
#507 add right click paste in search
Signed-off-by: Jakub Gladysz <jakub.gladysz@protonmail.com>
This commit is contained in:
@@ -424,7 +424,7 @@ fn render_nav_body(
|
||||
search_buffer,
|
||||
&mut note_context,
|
||||
)
|
||||
.show(ui)
|
||||
.show(ui, ctx.clipboard)
|
||||
.map(RenderNavAction::NoteAction)
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ use crate::{
|
||||
actionbar::NoteAction,
|
||||
ui::{note::NoteOptions, timeline::TimelineTabView},
|
||||
};
|
||||
use egui_winit::clipboard::Clipboard;
|
||||
use nostrdb::{Filter, Transaction};
|
||||
use notedeck::{MuteFun, NoteRef};
|
||||
use std::time::{Duration, Instant};
|
||||
@@ -39,14 +40,18 @@ impl<'a, 'd> SearchView<'a, 'd> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn show(&mut self, ui: &mut egui::Ui) -> Option<NoteAction> {
|
||||
padding(8.0, ui, |ui| self.show_impl(ui)).inner
|
||||
pub fn show(&mut self, ui: &mut egui::Ui, clipboard: &mut Clipboard) -> Option<NoteAction> {
|
||||
padding(8.0, ui, |ui| self.show_impl(ui, clipboard)).inner
|
||||
}
|
||||
|
||||
pub fn show_impl(&mut self, ui: &mut egui::Ui) -> Option<NoteAction> {
|
||||
pub fn show_impl(
|
||||
&mut self,
|
||||
ui: &mut egui::Ui,
|
||||
clipboard: &mut Clipboard,
|
||||
) -> Option<NoteAction> {
|
||||
ui.spacing_mut().item_spacing = egui::vec2(0.0, 12.0);
|
||||
|
||||
if search_box(self.query, ui) {
|
||||
if search_box(self.query, ui, clipboard) {
|
||||
self.execute_search(ui.ctx());
|
||||
}
|
||||
|
||||
@@ -132,7 +137,7 @@ impl<'a, 'd> SearchView<'a, 'd> {
|
||||
}
|
||||
}
|
||||
|
||||
fn search_box(query: &mut SearchQueryState, ui: &mut egui::Ui) -> bool {
|
||||
fn search_box(query: &mut SearchQueryState, ui: &mut egui::Ui, clipboard: &mut Clipboard) -> bool {
|
||||
ui.horizontal(|ui| {
|
||||
// Container for search input and icon
|
||||
let search_container = egui::Frame {
|
||||
@@ -168,6 +173,22 @@ fn search_box(query: &mut SearchQueryState, ui: &mut egui::Ui) -> bool {
|
||||
.frame(false),
|
||||
);
|
||||
|
||||
response.context_menu(|ui| {
|
||||
if ui.button("paste").clicked() {
|
||||
if let Some(text) = clipboard.get() {
|
||||
query.string.clear();
|
||||
query.string.push_str(&text);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if response.middle_clicked() {
|
||||
if let Some(text) = clipboard.get() {
|
||||
query.string.clear();
|
||||
query.string.push_str(&text);
|
||||
}
|
||||
}
|
||||
|
||||
if query.focus_state == FocusState::ShouldRequestFocus {
|
||||
response.request_focus();
|
||||
query.focus_state = FocusState::RequestedFocus;
|
||||
|
||||
Reference in New Issue
Block a user