GnuCashew ~ GnuCash Enabled Web
GCW
MainWidget.cpp
Go to the documentation of this file.
1 #line 2 "src/Gui/MainWidget.cpp"
2 
3 #include <Wt/WDialog.h>
4 #include <Wt/WComboBox.h>
5 #include <Wt/WPushButton.h>
6 #include <Wt/WVBoxLayout.h>
7 #include <Wt/Json/Serializer.h>
8 
9 #include "../define.h"
10 #include "../GnuCashew.h"
11 #include "MainWidget.h"
12 #include "FilePropertiesWidget.h"
13 #include "LanguagePicker.h"
14 
16 MainWidget()
17 {
18  addStyleClass( "MainWidget" );
19 
20  auto lw = setLayout( std::make_unique< Wt::WVBoxLayout >() );
21  lw-> setSpacing( 0 );
22 
23  m_navBar = lw-> addWidget( std::make_unique< Wt::WNavigationBar >() );
24  m_navBar-> addStyleClass( "NavBar" );
25 
26  m_toolBar = lw-> addWidget( std::make_unique< Wt::WToolBar >() );
27  m_toolBar-> addStyleClass( "ToolBar" );
28 
29  m_centralWidget = lw-> addWidget( std::make_unique< GCW::Gui::CentralWidget >(), 1 );
30 
31  m_statusBar = lw-> addWidget( std::make_unique< Wt::WContainerWidget >() );
32  m_statusBar-> addStyleClass( "StatusBar" );
33 
34 } // endGCW::MainWidget::MainWidget()
35 
36 auto
38 load()-> void
39 {
41 
42  /*
43  ** Set up the navbar
44  **
45  */
46  auto link = Wt::WLink( TR8("gcw_gui.doxygen_link") );
47  link.setTarget( Wt::LinkTarget::NewWindow );
48  navBar()-> setResponsive( true );
49  navBar()-> addStyleClass( "navbar-light bg-light" );
50  navBar()-> setTitle( "GCW", link );
51 
52  /*
53  ** install the main menu
54  */
55  {
56  auto w_ = std::make_unique< GCW::Gui::MainMenu >( this );
57  m_mainMenu = w_.get();
58  navBar()-> addMenu( std::move( w_ ) );
59  }
60 
61  /*
62  ** install the site language selector
63  */
64  navBar()-> addWidget( std::make_unique< LanguagePicker >(), Wt::AlignmentFlag::Right );
65 
66  toolBar()-> addButton( std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.save" ) ) );
67  toolBar()-> addButton( std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.close" ) ) );
68  toolBar()-> addButton( std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.newInvoice" ) ) );
69  toolBar()-> addButton( std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.open" ) ) );
70 
71  {
72  auto b = std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.edit" ) );
73  auto e = b.get();
74  toolBar()-> addButton( std::move(b) );
75  e-> clicked().connect( [=](){ openSelectedAccount(); });
76  }
77 
78  toolBar()-> addButton( std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.new" ) ) );
79  toolBar()-> addButton( std::make_unique< Wt::WPushButton >( TR( "gcw.MainWidget.tb.delete" ) ) );
80 
81  {
82  auto b = std::make_unique< Wt::WPushButton >( "devtest" );
83  auto e = b.get();
84  toolBar()-> addButton( std::move(b) );
85  e-> clicked().connect( [=](){ test(); });
86  }
87 
88  statusBar()-> addNew< Wt::WText >( "status bar" );
89 
90 } // endload()-> void
91 
92 auto
94 open_properties()-> void
95 {
96  if( !GCW::app()-> gnucashew_session().isOpen() )
97  return;
98 
99  auto u_ = std::make_unique< Wt::WDialog >( TR( "gcw.PropertiesWidget.titleBar" ) );
100  auto dialog = u_.get();
101  addChild( std::move( u_ ) );
102 
103  dialog-> rejectWhenEscapePressed( true );
104  dialog-> contents()-> addNew< GCW::Gui::FilePropertiesWidget >();
105 
106  /*
107  ** Clean up after the dialog is closed.
108  **
109  */
110  dialog-> finished().connect( [&]( Wt::DialogCode _code ) { removeChild( dialog ); });
111  dialog-> show();
112 
113 } // endopen_properties()
114 
115 auto
117 openSelectedAccount()-> void
118 {
119  centralWidget()-> accountsTreeView()-> editSelectedAccount();
120 
121 } // endopenSelectedAccount()
122 
123 
124 auto
125 test_gnucash()-> void
126 {
127 
128 } // endvoid test_gnucash()
129 
130 auto
132 test()-> void
133 {
134  test_gnucash();
135 
136 } // endtest()
137 
138 
139 
140 
141 
142 
143 
144 
auto test_gnucash() -> void
Definition: MainWidget.cpp:125
Wt::WToolBar * m_toolBar
Definition: MainWidget.h:52
auto test() -> void
Definition: MainWidget.cpp:132
auto openSelectedAccount() -> void
Definition: MainWidget.cpp:117
auto open_properties() -> void
Definition: MainWidget.cpp:94
CentralWidget * m_centralWidget
Definition: MainWidget.h:54
Wt::WContainerWidget * m_statusBar
Definition: MainWidget.h:53
Wt::WNavigationBar * m_navBar
Definition: MainWidget.h:50
auto load() -> void
Definition: MainWidget.cpp:38
#define TR8(X)
Definition: define.h:18
#define TR(X)
Definition: define.h:17
auto load(const std::string &_guid) -> Item::Ptr
Load Account by GUID.
Definition: Accounts.cpp:135
App * app()
Definition: App.cpp:67