Browse Source

Added Go to Tab in Window menu

pipelines/235045657
eidheim 5 years ago
parent
commit
46ad2f8459
  1. 2
      CMakeLists.txt
  2. 1
      src/files.hpp
  3. 4
      src/menu.cpp
  4. 36
      src/window.cpp

2
CMakeLists.txt

@ -1,7 +1,7 @@
cmake_minimum_required (VERSION 2.8.8)
project(juci)
set(JUCI_VERSION "1.6.0.2")
set(JUCI_VERSION "1.6.0.3")
set(CPACK_PACKAGE_NAME "jucipp")
set(CPACK_PACKAGE_CONTACT "Ole Christian Eidheim <eidheim@gmail.com>")

1
src/files.hpp

@ -161,6 +161,7 @@ const std::string default_config_file = R"RAW({
"window_previous_tab": "<primary><alt>Left",)RAW"
#endif
R"RAW(
"window_goto_tab": "",
"window_toggle_split": "",
"window_split_source_buffer": "",)RAW"
#ifdef __APPLE__

4
src/menu.cpp

@ -497,6 +497,10 @@ const Glib::ustring menu_xml = R"RAW(<interface>
<attribute name='label' translatable='yes'>_Previous _Tab</attribute>
<attribute name='action'>app.window_previous_tab</attribute>
</item>
<item>
<attribute name='label' translatable='yes'>_Go _to _Tab</attribute>
<attribute name='action'>app.window_goto_tab</attribute>
</item>
</section>
<section>
<item>

36
src/window.cpp

@ -1598,6 +1598,42 @@ void Window::set_menu_actions() {
menu.add_action("window_previous_tab", []() {
Notebook::get().previous();
});
menu.add_action("window_goto_tab", []() {
auto directory_folder = Project::get_preferably_directory_folder();
auto build = Project::Build::create(directory_folder);
if(!build->project_path.empty())
directory_folder = build->project_path;
auto current_view = Notebook::get().get_current_view();
if(current_view)
SelectionDialog::create(current_view, true, true);
else
SelectionDialog::create(true, true);
std::vector<Source::View *> views;
for(auto view : Notebook::get().get_views()) {
views.emplace_back(view);
SelectionDialog::get()->add_row(filesystem::get_relative_path(view->file_path, directory_folder).string());
if(view == current_view)
SelectionDialog::get()->set_cursor_at_last_row();
}
if(views.empty()) {
Info::get().print("No tabs open");
return;
}
SelectionDialog::get()->on_select = [views = std::move(views)](unsigned int index, const std::string &text, bool hide_window) {
if(Notebook::get().open(views[index])) {
auto view = Notebook::get().get_current_view();
view->hide_tooltips();
}
};
if(current_view)
current_view->hide_tooltips();
SelectionDialog::get()->show();
});
menu.add_action("window_toggle_split", [] {
Notebook::get().toggle_split();
});

Loading…
Cancel
Save