Skip to content

Commit 990ca1a

Browse files
committed
HackStudio: Allow opening a Locator suggestion by double-clicking it
1 parent 29ac3e1 commit 990ca1a

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

DevTools/HackStudio/Locator.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,12 @@ Locator::Locator(GWidget* parent)
106106
m_suggestion_view->scroll_into_view(new_index, Orientation::Vertical);
107107
}
108108
};
109+
109110
m_textbox->on_return_pressed = [this] {
110111
auto selected_index = m_suggestion_view->selection().first();
111112
if (!selected_index.is_valid())
112113
return;
113-
auto filename_index = m_suggestion_view->model()->index(selected_index.row(), LocatorSuggestionModel::Column::Name);
114-
auto filename = m_suggestion_view->model()->data(filename_index, GModel::Role::Display).to_string();
115-
open_file(filename);
116-
close();
114+
open_suggestion(selected_index);
117115
};
118116

119117
m_popup_window = GWindow::construct();
@@ -125,12 +123,25 @@ Locator::Locator(GWidget* parent)
125123
m_suggestion_view->set_size_columns_to_fit_content(true);
126124
m_suggestion_view->set_headers_visible(false);
127125
m_popup_window->set_main_widget(m_suggestion_view);
126+
127+
128+
m_suggestion_view->on_activation = [this](auto& index) {
129+
open_suggestion(index);
130+
};
128131
}
129132

130133
Locator::~Locator()
131134
{
132135
}
133136

137+
void Locator::open_suggestion(const GModelIndex& index)
138+
{
139+
auto filename_index = m_suggestion_view->model()->index(index.row(), LocatorSuggestionModel::Column::Name);
140+
auto filename = m_suggestion_view->model()->data(filename_index, GModel::Role::Display).to_string();
141+
open_file(filename);
142+
close();
143+
}
144+
134145
void Locator::open()
135146
{
136147
m_textbox->set_focus(true);

DevTools/HackStudio/Locator.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <LibGUI/GWidget.h>
44

55
class LocatorTextBox;
6+
class GModelIndex;
67
class GTableView;
78

89
class Locator final : public GWidget {
@@ -17,6 +18,7 @@ class Locator final : public GWidget {
1718
virtual void keydown_event(GKeyEvent&) override;
1819

1920
void update_suggestions();
21+
void open_suggestion(const GModelIndex&);
2022

2123
explicit Locator(GWidget* parent);
2224

0 commit comments

Comments
 (0)