Skip to content

Commit 2840bf8

Browse files
authored
Merge pull request #670 from multiplex55/codex/replace-scrollarea-vertical-with-both
Enable horizontal scrolling in dashboard widgets
2 parents 9190822 + 41a54ba commit 2840bf8

7 files changed

Lines changed: 49 additions & 25 deletions

File tree

src/dashboard/widgets/clipboard_recent.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ impl Widget for ClipboardRecentWidget {
8686
let row_height =
8787
ui.text_style_height(&egui::TextStyle::Body) + ui.spacing().item_spacing.y + 6.0;
8888
let scroll_id = ui.id().with("clipboard_recent_scroll");
89-
egui::ScrollArea::vertical()
89+
egui::ScrollArea::both()
9090
.id_source(scroll_id)
9191
.auto_shrink([false; 2])
9292
.show_rows(ui, row_height, rows, |ui, range| {

src/dashboard/widgets/clipboard_snippets.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ impl Widget for ClipboardSnippetsWidget {
139139
let row_height =
140140
ui.text_style_height(&egui::TextStyle::Body) + ui.spacing().item_spacing.y + 6.0;
141141
let scroll_id = ui.id().with("clipboard_snippets_scroll");
142-
egui::ScrollArea::vertical()
142+
egui::ScrollArea::both()
143143
.id_source(scroll_id)
144144
.auto_shrink([false; 2])
145145
.show_rows(ui, row_height, rows, |ui, range| {

src/dashboard/widgets/notes_recent.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,20 +156,29 @@ impl Widget for NotesRecentWidget {
156156
row_height += small_height + 2.0;
157157
}
158158
let scroll_id = ui.id().with("notes_recent_scroll");
159-
egui::ScrollArea::vertical()
159+
egui::ScrollArea::both()
160160
.id_source(scroll_id)
161161
.auto_shrink([false; 2])
162162
.show_rows(ui, row_height, self.cached.len(), |ui, range| {
163163
for note in &self.cached[range] {
164164
let mut clicked_row = false;
165165
ui.vertical(|ui| {
166-
clicked_row |= ui.button(&note.title).clicked();
166+
clicked_row |= ui
167+
.add(egui::Button::new(&note.title).wrap(false))
168+
.clicked();
167169
if self.cfg.show_snippet {
168-
ui.label(egui::RichText::new(&note.snippet).small());
170+
ui.add(
171+
egui::Label::new(egui::RichText::new(&note.snippet).small())
172+
.wrap(false),
173+
);
169174
}
170175
if self.cfg.show_tags && !note.tags.is_empty() {
171-
ui.label(
172-
egui::RichText::new(format!("#{}", note.tags.join(" #"))).small(),
176+
ui.add(
177+
egui::Label::new(
178+
egui::RichText::new(format!("#{}", note.tags.join(" #")))
179+
.small(),
180+
)
181+
.wrap(false),
173182
);
174183
}
175184
ui.add_space(4.0);

src/dashboard/widgets/process_list.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,14 @@ impl Widget for ProcessesWidget {
136136
let row_height =
137137
ui.text_style_height(&egui::TextStyle::Body) + ui.spacing().item_spacing.y + 8.0;
138138
let scroll_id = ui.id().with("process_list_scroll");
139-
egui::ScrollArea::vertical()
139+
egui::ScrollArea::both()
140140
.id_source(scroll_id)
141141
.auto_shrink([false; 2])
142142
.show_rows(ui, row_height, grouped.len(), |ui, range| {
143143
for (desc, switch, kill) in &grouped[range] {
144144
ui.horizontal(|ui| {
145145
if let Some(action) = switch {
146-
if ui.button(&action.label).clicked() {
146+
if ui.add(egui::Button::new(&action.label).wrap(false)).clicked() {
147147
clicked = Some(action.clone());
148148
}
149149
}
@@ -152,7 +152,7 @@ impl Widget for ProcessesWidget {
152152
clicked = Some(action.clone());
153153
}
154154
}
155-
ui.label(egui::RichText::new(desc).small());
155+
ui.add(egui::Label::new(egui::RichText::new(desc).small()).wrap(false));
156156
});
157157
}
158158
});

src/dashboard/widgets/query_list.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,20 @@ impl Widget for QueryListWidget {
155155
ui.text_style_height(&egui::TextStyle::Body) + ui.spacing().item_spacing.y + 8.0;
156156
let max_rows = self.cache.data.len().min(self.cfg.count);
157157
let scroll_id = ui.id().with("query_list_scroll");
158-
egui::ScrollArea::vertical()
158+
egui::ScrollArea::both()
159159
.id_source(scroll_id)
160160
.auto_shrink([false; 2])
161161
.show_rows(ui, row_height, max_rows, |ui, range| {
162162
for action in &self.cache.data[range] {
163163
ui.horizontal(|ui| {
164-
if ui.button(&action.label).clicked() {
164+
if ui.add(egui::Button::new(&action.label).wrap(false)).clicked() {
165165
clicked = Some(action.clone());
166166
}
167167
if self.cfg.show_desc {
168-
ui.label(egui::RichText::new(&action.desc).small());
168+
ui.add(
169+
egui::Label::new(egui::RichText::new(&action.desc).small())
170+
.wrap(false),
171+
);
169172
}
170173
});
171174
}

src/dashboard/widgets/recent_notes.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ impl Widget for RecentNotesWidget {
221221
row_height += small_height + 2.0;
222222

223223
let scroll_id = ui.id().with("recent_notes_scroll");
224-
egui::ScrollArea::vertical()
224+
egui::ScrollArea::both()
225225
.id_source(scroll_id)
226226
.auto_shrink([false; 2])
227227
.show_rows(ui, row_height, notes.len(), |ui, range| {
@@ -230,13 +230,22 @@ impl Widget for RecentNotesWidget {
230230
let (action, query_override) = self.build_action(note);
231231
let mut clicked_row = false;
232232
ui.vertical(|ui| {
233-
clicked_row |= ui.button(display).clicked();
233+
clicked_row |= ui.add(egui::Button::new(display).wrap(false)).clicked();
234234
if self.cfg.show_snippet {
235-
ui.label(egui::RichText::new(Self::snippet(note)).small());
235+
ui.add(
236+
egui::Label::new(
237+
egui::RichText::new(Self::snippet(note)).small(),
238+
)
239+
.wrap(false),
240+
);
236241
}
237242
if !note.tags.is_empty() {
238-
ui.label(
239-
egui::RichText::new(format!("#{}", note.tags.join(" #"))).small(),
243+
ui.add(
244+
egui::Label::new(
245+
egui::RichText::new(format!("#{}", note.tags.join(" #")))
246+
.small(),
247+
)
248+
.wrap(false),
240249
);
241250
}
242251
ui.add_space(4.0);

src/dashboard/widgets/tempfiles.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,21 +259,24 @@ impl Widget for TempfilesWidget {
259259
let row_height =
260260
ui.text_style_height(&egui::TextStyle::Body) + ui.spacing().item_spacing.y + 8.0;
261261
let scroll_id = ui.id().with("tempfiles_scroll");
262-
egui::ScrollArea::vertical()
262+
egui::ScrollArea::both()
263263
.id_source(scroll_id)
264264
.auto_shrink([false; 2])
265265
.show_rows(ui, row_height, self.cache.data.len(), |ui, range| {
266266
for entry in &self.cache.data[range] {
267267
ui.horizontal(|ui| {
268268
let display_name = entry.alias.as_deref().unwrap_or(&entry.file_name);
269-
ui.label(display_name).on_hover_text(entry.path.to_string_lossy());
269+
ui.add(egui::Label::new(display_name).wrap(false))
270+
.on_hover_text(entry.path.to_string_lossy());
270271
if let Some(alias) = &entry.alias {
271272
if alias != &entry.file_name {
272-
ui.label(egui::RichText::new(format!(
273-
"({})",
274-
entry.file_name
275-
))
276-
.small());
273+
ui.add(
274+
egui::Label::new(
275+
egui::RichText::new(format!("({})", entry.file_name))
276+
.small(),
277+
)
278+
.wrap(false),
279+
);
277280
}
278281
}
279282
if ui

0 commit comments

Comments
 (0)