fix one mem leak, one to go
This commit is contained in:
parent
ba9508fe49
commit
512f9dc755
@ -37,11 +37,12 @@ EEDB::EEDB(std::unique_ptr< Session > session, AuthPageFactory authPageFactory,
|
||||
_authPageFactory(move(authPageFactory)),
|
||||
_authPage(nullptr),
|
||||
_homePageFactory(move(homePageFactory)),
|
||||
_homePage(nullptr) {
|
||||
_homePage(nullptr) //
|
||||
{
|
||||
root()->addStyleClass("container");
|
||||
useStyleSheet("/resources/style.css");
|
||||
|
||||
setTheme(_theme->create());
|
||||
setTheme(_theme->create(this));
|
||||
|
||||
_authPage = _authPageFactory();
|
||||
_authPage->registerNeedVerification([] {});
|
||||
@ -55,6 +56,8 @@ EEDB::EEDB(std::unique_ptr< Session > session, AuthPageFactory authPageFactory,
|
||||
void EEDB::authEventLogin(EEDB::LoginState state) {
|
||||
using namespace Wt;
|
||||
|
||||
root()->removeStyleClass("container");
|
||||
_authPage->detachFrom(root());
|
||||
_homePage = _homePageFactory();
|
||||
_homePage->show(root());
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <iostream>
|
||||
|
||||
#include <Wt/WApplication>
|
||||
|
||||
namespace Wt {
|
||||
|
||||
@ -38,6 +38,11 @@ void AuthPageImpl::setParent(Wt::WContainerWidget * parent) {
|
||||
parent->addWidget(_authWidget);
|
||||
}
|
||||
|
||||
void AuthPageImpl::detachFrom(Wt::WContainerWidget * parent) {
|
||||
if(parent)
|
||||
parent->removeWidget(_authWidget);
|
||||
}
|
||||
|
||||
void AuthPageImpl::processEnvironment() {
|
||||
_authWidget->processEnvironment();
|
||||
}
|
||||
|
||||
@ -20,6 +20,7 @@ class AuthPage {
|
||||
virtual ~AuthPage() = default;
|
||||
|
||||
virtual void setParent(Wt::WContainerWidget * parent) = 0;
|
||||
virtual void detachFrom(Wt::WContainerWidget * parent ) = 0;
|
||||
virtual void processEnvironment() = 0;
|
||||
|
||||
virtual Wt::Signals::connection registerNeedVerification(std::function< void() > f) {
|
||||
@ -71,6 +72,7 @@ class AuthPageImpl final : public AuthPage {
|
||||
~AuthPageImpl();
|
||||
|
||||
void setParent(Wt::WContainerWidget * parent) override;
|
||||
void detachFrom(Wt::WContainerWidget * parent ) override;
|
||||
void processEnvironment() override;
|
||||
|
||||
private:
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
|
||||
namespace eedb {
|
||||
|
||||
Wt::WTheme * BootstrapTheme::create() const {
|
||||
auto theme = new Wt::WBootstrapTheme();
|
||||
Wt::WTheme * BootstrapTheme::create(Wt::WObject * parent) const {
|
||||
auto theme = new Wt::WBootstrapTheme(parent);
|
||||
theme->setVersion(Wt::WBootstrapTheme::Version2);
|
||||
// theme->setResponsive(true);
|
||||
return theme;
|
||||
|
||||
@ -9,6 +9,6 @@ class BootstrapTheme final : public Theme {
|
||||
BootstrapTheme(Theme &&) {}
|
||||
BootstrapTheme(const Theme &) {}
|
||||
|
||||
Wt::WTheme * create() const override;
|
||||
Wt::WTheme * create(Wt::WObject * parent) const override;
|
||||
};
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@ void Home::show(Wt::WContainerWidget * container) {
|
||||
contentsStack->addStyleClass("contents");
|
||||
|
||||
// Setup a Left-aligned menu.
|
||||
Wt::WMenu * mainTabs = new Wt::WMenu(contentsStack, container);
|
||||
Wt::WMenu * mainTabs = new Wt::WMenu(contentsStack);
|
||||
mainTabs->addItem("Home");
|
||||
navigation->addMenu(mainTabs);
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Wt {
|
||||
class WTheme;
|
||||
class WObject;
|
||||
}
|
||||
|
||||
namespace eedb {
|
||||
@ -12,7 +13,8 @@ class Theme {
|
||||
|
||||
virtual ~Theme();
|
||||
|
||||
virtual Wt::WTheme * create() const = 0;
|
||||
virtual Wt::WTheme * create(Wt::WObject * parent) const = 0;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -32,6 +32,7 @@ class AuthPageMock final : public AuthPage {
|
||||
|
||||
public:
|
||||
MOCK_METHOD1(setParent, void(Wt::WContainerWidget * parent));
|
||||
MOCK_METHOD1(detachFrom, void(Wt::WContainerWidget * parent));
|
||||
MOCK_METHOD1(registerNeedVerification, Wt::Signals::connection(std::function< void() > f));
|
||||
MOCK_METHOD1(registerOnUserWeakLogin, Wt::Signals::connection(std::function< void() > f));
|
||||
MOCK_METHOD1(registerOnUserStrongLogin, Wt::Signals::connection(std::function< void() > f));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user