Browse Source

implement destructors

CPP-GTK4
yggverse 4 months ago
parent
commit
a8df7e1ebe
  1. 11
      src/app/browser.cpp
  2. 2
      src/app/browser.hpp
  3. 30
      src/app/browser/header.cpp
  4. 13
      src/app/browser/header.hpp
  5. 8
      src/app/browser/header/menu.cpp
  6. 8
      src/app/browser/header/menu.hpp
  7. 2
      src/app/browser/header/tab.cpp
  8. 2
      src/app/browser/header/tab.hpp
  9. 11
      src/app/browser/main.cpp
  10. 2
      src/app/browser/main.hpp
  11. 2
      src/app/browser/main/tab.cpp
  12. 2
      src/app/browser/main/tab.hpp

11
src/app/browser.cpp

@ -61,6 +61,17 @@ Browser::Browser( @@ -61,6 +61,17 @@ Browser::Browser(
);
}
Browser::~Browser()
{
destroy();
delete header;
header = nullptr;
delete main;
main = nullptr;
}
void Browser::mainTabAppend()
{
main->tabAppend();

2
src/app/browser.hpp

@ -35,6 +35,8 @@ namespace app @@ -35,6 +35,8 @@ namespace app
const lib::Database & db
);
~Browser();
void mainTabAppend();
void debug();

30
src/app/browser/header.cpp

@ -6,15 +6,41 @@ using namespace app::browser; @@ -6,15 +6,41 @@ using namespace app::browser;
Header::Header()
{
// Init header bar
set_show_title_buttons(
SHOW_TITLE_BUTTONS
);
// Init menu
menu = new header::Menu();
pack_start(
* new header::Menu()
* menu
);
// Init tab
tab = new header::Tab();
pack_start(
* new header::Tab()
* tab
);
}
Header::~Header()
{
// Menu
remove(
* menu
);
delete menu;
menu = nullptr;
// Tab
remove(
* tab
);
delete tab;
tab = nullptr;
}

13
src/app/browser/header.hpp

@ -5,13 +5,26 @@ @@ -5,13 +5,26 @@
namespace app::browser
{
namespace header
{
class Menu;
class Tab;
}
class Header : public Gtk::HeaderBar
{
private:
app::browser::header::Menu * menu;
app::browser::header::Tab * tab;
public:
const bool SHOW_TITLE_BUTTONS = true;
Header();
~Header();
};
}

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

@ -10,7 +10,7 @@ Menu::Menu() @@ -10,7 +10,7 @@ Menu::Menu()
);
// Build tab submenu
auto tab = Gio::Menu::create();
tab = Gio::Menu::create();
tab->append(
_("New tab.."),
@ -18,7 +18,7 @@ Menu::Menu() @@ -18,7 +18,7 @@ Menu::Menu()
);
// Build tool submenu
auto tool = Gio::Menu::create();
tool = Gio::Menu::create();
tool->append(
_("Debug"),
@ -26,7 +26,7 @@ Menu::Menu() @@ -26,7 +26,7 @@ Menu::Menu()
);
// Build main menu
auto main = Gio::Menu::create();
main = Gio::Menu::create();
main->append_submenu(
_("Tab"),
@ -47,3 +47,5 @@ Menu::Menu() @@ -47,3 +47,5 @@ Menu::Menu()
main
);
}
Menu::~Menu() = default;

8
src/app/browser/header/menu.hpp

@ -9,11 +9,19 @@ namespace app::browser::header @@ -9,11 +9,19 @@ namespace app::browser::header
{
class Menu : public Gtk::MenuButton
{
private:
Glib::RefPtr<Gio::Menu> tab,
tool,
main;
public:
const char* TOOLTIP = _("Menu");
Menu();
~Menu();
};
}

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

@ -12,3 +12,5 @@ Tab::Tab() @@ -12,3 +12,5 @@ Tab::Tab()
ICON
);
}
Tab::~Tab() = default;

2
src/app/browser/header/tab.hpp

@ -14,6 +14,8 @@ namespace app::browser::header @@ -14,6 +14,8 @@ namespace app::browser::header
const char* TOOLTIP = _("New tab");
Tab();
~Tab();
};
}

11
src/app/browser/main.cpp

@ -18,6 +18,17 @@ Main::Main() @@ -18,6 +18,17 @@ Main::Main()
);
}
Main::~Main()
{
remove(
* tab
);
delete tab;
tab = nullptr;
}
void Main::tabAppend()
{
tab->append(

2
src/app/browser/main.hpp

@ -20,6 +20,8 @@ namespace app::browser @@ -20,6 +20,8 @@ namespace app::browser
Main();
~Main();
void tabAppend();
};
}

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

@ -10,6 +10,8 @@ Tab::Tab() @@ -10,6 +10,8 @@ Tab::Tab()
);
}
Tab::~Tab() = default;
void Tab::append(
const char * request,
bool open,

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

@ -28,6 +28,8 @@ namespace app::browser::main @@ -28,6 +28,8 @@ namespace app::browser::main
Tab();
~Tab();
void append(
const char * request,
bool open,

Loading…
Cancel
Save