Browse Source

update actions

CPP-GTK4
yggverse 2 months ago
parent
commit
d63ba8f1ad
  1. 93
      src/app/browser.cpp
  2. 2
      src/app/browser/header/menu.cpp
  3. 26
      src/app/browser/main.cpp
  4. 2
      src/app/browser/main.hpp
  5. 15
      src/app/browser/main/tab.cpp
  6. 26
      src/app/browser/main/tab.hpp
  7. 17
      src/app/browser/main/tab/page.cpp
  8. 1
      src/app/browser/main/tab/page.hpp
  9. 2
      src/app/browser/main/tab/page/navigation/request.cpp
  10. 2
      src/app/browser/main/tab/page/navigation/update.cpp
  11. 20
      src/main.cpp

93
src/app/browser.cpp

@ -32,100 +32,97 @@ Browser::Browser(
* browserMain * browserMain
); );
// Init actions // Init browser window actions
add_action( add_action(
"main_tab_append", "refresh",
[this] [this]
{ {
browserMain->tab_append(); browserMain->refresh();
}
);
add_action( browserHeader->set_title(
"main_tab_page_update", browserMain->get_current_tab_page_title()
[this] );
{
browserMain->tab_update(); browserHeader->set_subtitle(
browserMain->get_current_tab_page_subtitle()
);
} }
); );
// Close
add_action( add_action(
"main_tab_close", "debug",
[this] [this]
{ {
browserMain->tab_close(); // @TODO https://gitlab.gnome.org/GNOME/gtkmm/-/commit/5f3b82537d3daad7bda59dd01e719788070f4b6c
gtk_window_set_interactive_debugging(
true
);
} }
); );
// Close submenu // Tab actions
add_action( add_action(
"main_tab_close_left", "main_tab_append",
[this] [this]
{ {
browserMain->tab_close_left(); browserMain->tab_append();
} }
); );
add_action( add_action(
"main_tab_close_right", "main_tab_close",
[this] [this]
{ {
browserMain->tab_close_right(); browserMain->tab_close();
} }
); );
add_action( add_action(
"main_tab_close_all", "main_tab_close_left",
[this] [this]
{ {
browserMain->tab_close_all(); browserMain->tab_close_left();
} }
); );
// History
add_action( add_action(
"main_tab_page_navigation_history_try_back", "main_tab_close_right",
[this] [this]
{ {
browserMain->tab_page_navigation_history_try_back(); browserMain->tab_close_right();
} }
); );
add_action( add_action(
"main_tab_page_navigation_history_try_forward", "main_tab_close_all",
[this] [this]
{ {
browserMain->tab_page_navigation_history_try_forward(); browserMain->tab_close_all();
} }
); );
// Tool // Tab page navigation actions
add_action( add_action(
"debug", "main_tab_page_navigation_update",
[this] [this]
{ {
// @TODO https://gitlab.gnome.org/GNOME/gtkmm/-/commit/5f3b82537d3daad7bda59dd01e719788070f4b6c browserMain->tab_page_update();
gtk_window_set_interactive_debugging( }
true
); );
}
);
// Hidden
add_action(
"refresh",
[this]
{
browserMain->refresh();
browserHeader->set_title( add_action(
browserMain->get_current_tab_page_title() "main_tab_page_navigation_history_try_back",
[this]
{
browserMain->tab_page_navigation_history_try_back();
}
); );
browserHeader->set_subtitle( add_action(
browserMain->get_current_tab_page_subtitle() "main_tab_page_navigation_history_try_forward",
[this]
{
browserMain->tab_page_navigation_history_try_forward();
}
); );
}
);
} }

2
src/app/browser/header/menu.cpp

@ -96,7 +96,7 @@ Glib::RefPtr<Gio::Menu> Menu::main_tab_page_navigation(
menu->append( menu->append(
_("Update"), _("Update"),
"win.main_tab_page_update" "win.main_tab_page_navigation_update"
); );
return menu; return menu;

26
src/app/browser/main.cpp

@ -38,17 +38,17 @@ Glib::ustring Main::get_current_tab_page_subtitle()
}; };
// Actions // Actions
void Main::tab_append() void Main::refresh()
{ {
mainTab->append( mainTab->refresh(
_("New page") mainTab->get_current_page()
); );
}; };
void Main::tab_update() void Main::tab_append()
{ {
mainTab->update( mainTab->append(
mainTab->get_current_page() _("New page")
); );
}; };
@ -74,6 +74,13 @@ void Main::tab_close_all()
mainTab->close_all(); mainTab->close_all();
}; };
void Main::tab_page_update()
{
mainTab->page_update(
mainTab->get_current_page()
);
};
bool Main::tab_page_navigation_history_try_back() bool Main::tab_page_navigation_history_try_back()
{ {
const int & PAGE_NUMBER = mainTab->get_current_page(); const int & PAGE_NUMBER = mainTab->get_current_page();
@ -103,10 +110,3 @@ bool Main::tab_page_navigation_history_try_forward()
return false; return false;
}; };
void Main::refresh()
{
mainTab->refresh(
mainTab->get_current_page()
);
};

2
src/app/browser/main.hpp

@ -36,7 +36,7 @@ namespace app::browser
void tab_close_right(); void tab_close_right();
void tab_close(); void tab_close();
void tab_update(); void tab_page_update();
bool tab_page_navigation_history_try_back(); bool tab_page_navigation_history_try_back();
bool tab_page_navigation_history_try_forward(); bool tab_page_navigation_history_try_forward();

15
src/app/browser/main/tab.cpp

@ -124,21 +124,12 @@ void Tab::refresh(
); );
} }
void Tab::update( void Tab::page_update(
const int & PAGE_NUMBER const int & PAGE_NUMBER
) { ) {
auto pageWidget = get_nth_page( get_tabPage(
PAGE_NUMBER PAGE_NUMBER
); )->update();
if (pageWidget == nullptr)
{
throw _("Tab page not found!");
}
pageWidget->activate_action(
"page.update"
);
} }
// Private helpers // Private helpers

26
src/app/browser/main/tab.hpp

@ -40,6 +40,10 @@ namespace app::browser::main
); );
// Actions // Actions
void refresh(
const int & PAGE_NUMBER // @TODO
);
void append( void append(
const Glib::ustring & TITLE, const Glib::ustring & TITLE,
const Glib::ustring & REQUEST = "", const Glib::ustring & REQUEST = "",
@ -54,21 +58,17 @@ namespace app::browser::main
void close_right(); void close_right();
void close_all(); void close_all();
bool page_navigation_history_try_back( void page_update(
const int & PAGE_NUMBER const int & PAGE_NUMBER
); );
bool page_navigation_history_try_forward( bool page_navigation_history_try_back(
const int & PAGE_NUMBER const int & PAGE_NUMBER
); );
void refresh( bool page_navigation_history_try_forward(
const int & PAGE_NUMBER const int & PAGE_NUMBER
); );
void update(
const int & PAGE_NUMBER
);
}; };
} }

17
src/app/browser/main/tab/page.cpp

@ -15,23 +15,6 @@ Page::Page(
Gtk::Orientation::VERTICAL Gtk::Orientation::VERTICAL
); );
// Init actions group
auto GioSimpleActionGroup = Gio::SimpleActionGroup::create();
// Define group actions
GioSimpleActionGroup->add_action(
"update",
[this]
{
Page::update();
}
);
insert_action_group(
"page",
GioSimpleActionGroup
);
// Init components // Init components
pageNavigation = Gtk::make_managed<page::Navigation>( pageNavigation = Gtk::make_managed<page::Navigation>(
REQUEST REQUEST

1
src/app/browser/main/tab/page.hpp

@ -4,7 +4,6 @@
#include <giomm/asyncresult.h> #include <giomm/asyncresult.h>
#include <giomm/inputstream.h> #include <giomm/inputstream.h>
#include <giomm/outputstream.h> #include <giomm/outputstream.h>
#include <giomm/simpleactiongroup.h>
#include <giomm/socketclient.h> #include <giomm/socketclient.h>
#include <giomm/socketconnection.h> #include <giomm/socketconnection.h>
#include <glibmm/i18n.h> #include <glibmm/i18n.h>

2
src/app/browser/main/tab/page/navigation/request.cpp

@ -42,7 +42,7 @@ Request::Request(
parse(); parse();
activate_action( activate_action(
"page.update" "win.main_tab_page_navigation_update"
); );
} }
); );

2
src/app/browser/main/tab/page/navigation/update.cpp

@ -5,7 +5,7 @@ using namespace app::browser::main::tab::page::navigation;
Update::Update() Update::Update()
{ {
set_action_name( set_action_name(
"page.update" "win.main_tab_page_navigation_update"
); );
set_icon_name( set_icon_name(

20
src/main.cpp

@ -27,16 +27,6 @@ int main(
); );
// Init accels @TODO db settings // Init accels @TODO db settings
app->set_accel_for_action(
"win.main_tab_append",
"<Primary>t"
);
app->set_accel_for_action(
"win.main_tab_page_update",
"<Primary>r"
);
app->set_accel_for_action( app->set_accel_for_action(
"win.debug", "win.debug",
"<Primary>i" "<Primary>i"
@ -47,6 +37,16 @@ int main(
"<Primary>q" "<Primary>q"
); );
app->set_accel_for_action(
"win.main_tab_append",
"<Primary>t"
);
app->set_accel_for_action(
"win.main_tab_page_navigation_update",
"<Primary>r"
);
// Launch browser component // Launch browser component
return app->make_window_and_run<app::Browser>( return app->make_window_and_run<app::Browser>(
argc, argc,

Loading…
Cancel
Save