GnuCash 038f90a+
Loading...
Searching...
No Matches
Public Member Functions
StockAssistantController Class Reference

Public Member Functions

 StockAssistantController (GtkWidget *parent, GtkBuilder *builder, Account *acct)
 
void connect_signals (GtkBuilder *builder)
 
void prepare (GtkAssistant *assistant, GtkWidget *page)
 
void finish ()
 
bool destroying ()
 
Accountmodel_account ()
 

Detailed Description

Definition at line 2604 of file assistant-stock-transaction.cpp.

Constructor & Destructor Documentation

◆ StockAssistantController()

StockAssistantController::StockAssistantController ( GtkWidget *  parent,
GtkBuilder *  builder,
Account acct 
)
inline

Definition at line 2611 of file assistant-stock-transaction.cpp.

2612 : m_model{std::make_unique<StockAssistantModel>(acct)},
2613 m_view{builder, acct, parent},
2614 m_qof_event_handler{qof_event_register_handler(stock_account_destroyed_handler, this)}
2615 {
2616 connect_signals (builder);
2617 DEBUG ("StockAssistantController constructor\n");
2618 };
gint qof_event_register_handler(QofEventHandler handler, gpointer user_data)
Register a handler for events.
Definition qofevent.cpp:73
#define DEBUG(format, args...)
Print a debugging message.
Definition qoflog.h:264

◆ ~StockAssistantController()

StockAssistantController::~StockAssistantController ( )

Definition at line 2630 of file assistant-stock-transaction.cpp.

2631{
2632 m_destroying = true;
2633 gnc_unregister_gui_component_by_data (ASSISTANT_STOCK_TRANSACTION_CM_CLASS, this);
2634 qof_event_unregister_handler(m_qof_event_handler);
2635}
void qof_event_unregister_handler(gint handler_id)
Unregister an event handler.
Definition qofevent.cpp:103

Member Function Documentation

◆ connect_signals()

void StockAssistantController::connect_signals ( GtkBuilder *  builder)

Definition at line 2638 of file assistant-stock-transaction.cpp.

2639{
2640 m_view.connect(m_model.get());
2641 gtk_builder_connect_signals (builder, this); //Stock Assistant View: cancel, close, prepare
2642 g_signal_connect (m_view.window(), "destroy",
2643 G_CALLBACK (stock_assistant_window_destroy_cb), this);
2644
2645
2646 auto component_id = gnc_register_gui_component
2647 (ASSISTANT_STOCK_TRANSACTION_CM_CLASS, nullptr, close_handler, this);
2648 gnc_gui_component_watch_entity_type (component_id, GNC_ID_ACCOUNT,
2649 QOF_EVENT_MODIFY | QOF_EVENT_DESTROY);
2650}
void connect(StockAssistantModel *)
Calls each page's connect function.

◆ destroying()

bool StockAssistantController::destroying ( )
inline

Definition at line 2623 of file assistant-stock-transaction.cpp.

2623{ return m_destroying; }

◆ finish()

void StockAssistantController::finish ( )

Definition at line 2660 of file assistant-stock-transaction.cpp.

2661{
2662 g_return_if_fail (m_model->txn_type_valid());
2663
2664 gnc_suspend_gui_refresh ();
2665 auto [success, trans] = m_model->create_transaction();
2666 gnc_resume_gui_refresh ();
2667
2668 if (success && trans)
2669 {
2670 auto split = xaccTransFindSplitByAccount (trans, m_model->account());
2671 if (split)
2672 {
2673 auto page = gnc_plugin_page_register_new (m_model->account(), FALSE);
2674 gnc_main_window_open_page (nullptr, page);
2675 auto gsr = gnc_plugin_page_register_get_gsr (page);
2676 gnc_split_reg_raise (gsr);
2677
2678 if (gnc_split_reg_clear_filter_for_split (gsr, split))
2680
2681 gnc_split_reg_jump_to_split (gsr, split);
2682 }
2683 }
2684
2685 gnc_close_gui_component_by_data (ASSISTANT_STOCK_TRANSACTION_CM_CLASS, this);
2686}
void gnc_main_window_open_page(GncMainWindow *window, GncPluginPage *page)
Display a data plugin page in a window.
void gnc_plugin_page_register_clear_current_filter(GncPluginPage *plugin_page)
This function clears the registers current filter.
GncPluginPage * gnc_plugin_page_register_new(Account *account, gboolean subaccounts)
Create a new "register" plugin page, given a pointer to an account.
GNCSplitReg * gnc_plugin_page_register_get_gsr(GncPluginPage *plugin_page)
Get the GNCSplitReg data structure associated with this register page.

◆ model_account()

Account * StockAssistantController::model_account ( )
inline

Definition at line 2624 of file assistant-stock-transaction.cpp.

2624{ return m_model->account(); }

◆ prepare()

void StockAssistantController::prepare ( GtkAssistant *  assistant,
GtkWidget *  page 
)

Definition at line 2653 of file assistant-stock-transaction.cpp.

2654{
2655 auto currentpage = gtk_assistant_get_current_page(assistant);
2656 m_view.prepare(currentpage, m_model.get());
2657}
void prepare(int page, StockAssistantModel *)
Calls the specified page's prepare function.

The documentation for this class was generated from the following file: