Merge branch 'maint-stock-editor' into maint #818

This commit is contained in:
Christopher Lam 2022-03-11 23:04:32 +08:00
commit 19479c3af4
10 changed files with 2256 additions and 0 deletions

View File

@ -4,6 +4,7 @@ set (gnc_gnome_noinst_HEADERS
assistant-hierarchy.h
assistant-loan.h
assistant-stock-split.h
assistant-stock-transaction.h
business-options-gnome.h
business-urls.h
business-gnome-utils.h
@ -72,6 +73,7 @@ set (gnc_gnome_SOURCES
assistant-hierarchy.c
assistant-loan.cpp
assistant-stock-split.c
assistant-stock-transaction.cpp
business-options-gnome.c
business-urls.c
business-gnome-utils.c

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
/********************************************************************\
* assistant-stock-transaction.h -- stock assistant for GnuCash *
* Copyright (C) 2022 Christopher Lam *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License*
* along with this program; if not, contact: *
* *
* Free Software Foundation Voice: +1-617-542-5942 *
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
* Boston, MA 02110-1301, USA gnu@gnu.org *
\********************************************************************/
#ifndef GNC_ASSISTANT_STOCK_TRANSACTION_H
#define GNC_ASSISTANT_STOCK_TRANSACTION_H
#include "Account.h"
/********************************************************************\
* gnc_stock_transaction_assistant *
* opens up a assistant to record a stock transaction *
* *
* Args: parent - the parent of this window *
* account - the initial account to use *
* Return: nothing *
\********************************************************************/
void gnc_stock_transaction_assistant (GtkWidget *parent, Account * account);
#endif

View File

@ -59,6 +59,7 @@
#include "dialog-transfer.h"
#include "dialog-utils.h"
#include "assistant-stock-split.h"
#include "assistant-stock-transaction.h"
#include "gnc-component-manager.h"
#include "gnc-date.h"
#include "gnc-date-edit.h"
@ -218,6 +219,9 @@ static void gnc_plugin_page_register_cmd_style_double_line (
static void gnc_plugin_page_register_cmd_reconcile (GtkAction* action,
GncPluginPageRegister* plugin_page);
static void gnc_plugin_page_register_cmd_stock_assistant (GtkAction* action,
GncPluginPageRegister* page);
static void gnc_plugin_page_register_cmd_autoclear (GtkAction* action,
GncPluginPageRegister* plugin_page);
static void gnc_plugin_page_register_cmd_transfer (GtkAction* action,
@ -481,6 +485,11 @@ static GtkActionEntry gnc_plugin_page_register_actions [] =
N_ ("Automatically clear individual transactions, so as to reach a certain cleared amount"),
G_CALLBACK (gnc_plugin_page_register_cmd_autoclear)
},
{
"ActionsStockAssistantAction", NULL, N_ ("Stock Ass_istant"), NULL,
N_ ("Stock Assistant"),
G_CALLBACK (gnc_plugin_page_register_cmd_stock_assistant)
},
{
"ActionsStockSplitAction", NULL, N_ ("Stoc_k Split..."), NULL,
N_ ("Record a stock split or a stock merger"),
@ -614,6 +623,18 @@ static const gchar* view_style_actions[] =
NULL
};
static const gchar* actions_requiring_extra[] =
{
"ActionsStockAssistantAction",
NULL
};
static const gchar* actions_requiring_priced_account[] =
{
"ActionsStockAssistantAction",
NULL
};
/** Short labels for use on the toolbar buttons. */
static action_toolbar_labels toolbar_labels[] =
{
@ -1267,6 +1288,12 @@ gnc_plugin_page_register_ui_initial_state (GncPluginPageRegister* page)
gnc_plugin_update_actions (action_group, actions_requiring_account,
"sensitive", is_readwrite && account != NULL);
gnc_plugin_update_actions (action_group, actions_requiring_extra,
"visible", gnc_prefs_is_extra_enabled ());
gnc_plugin_update_actions (action_group, actions_requiring_priced_account,
"sensitive", xaccAccountIsPriced (account));
/* Set "style" radio button */
ledger_type = gnc_ledger_display_type (priv->ledger);
gnc_plugin_update_actions (action_group, view_style_actions,
@ -4539,6 +4566,23 @@ gnc_plugin_page_register_cmd_reconcile (GtkAction* action,
LEAVE (" ");
}
static void
gnc_plugin_page_register_cmd_stock_assistant (GtkAction* action,
GncPluginPageRegister* page)
{
Account *account;
GtkWindow *window;
ENTER ("(action %p, plugin_page %p)", action, page);
g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (page));
window = gnc_window_get_gtk_window (GNC_WINDOW (GNC_PLUGIN_PAGE (page)->window));
account = gnc_plugin_page_register_get_account (page);
gnc_stock_transaction_assistant (GTK_WIDGET (window), account);
LEAVE (" ");
}
static void
gnc_plugin_page_register_cmd_autoclear (GtkAction* action,
GncPluginPageRegister* page)

View File

@ -8,6 +8,7 @@ set (gtkbuilder_SOURCES
assistant-loan.glade
assistant-qif-import.glade
assistant-stock-split.glade
assistant-stock-transaction.glade
assistant-xml-encoding.glade
business-options-gnome.glade
business-prefs.glade

View File

@ -0,0 +1,941 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkAssistant" id="stock_transaction_assistant">
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="border-width">12</property>
<property name="title" translatable="yes">Stock Split Assistant</property>
<property name="window-position">center</property>
<property name="default-width">500</property>
<signal name="cancel" handler="stock_assistant_cancel" swapped="no"/>
<signal name="close" handler="stock_assistant_finish" swapped="no"/>
<signal name="prepare" handler="stock_assistant_prepare" swapped="no"/>
<child>
<object class="GtkLabel" id="intro_page_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="label" translatable="yes">This assistant will help you record a stock transaction. The transaction type (purchase, sale, dividend, distribution, return of capital, stock split) will determine the transaction splits involved in the transaction.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="page-type">intro</property>
<property name="title" translatable="yes">Stock Transaction Assistant</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="transaction_type_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="transaction_type_page_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">Select the type of stock activity that you wish to record. The available types depend on whether the current stock balance is positive, nil, or negative (i.e. when shorting stock). The type will determine the component splits.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="transaction_type_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="transaction_type_combo_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Type</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="transaction_type_page_combobox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<items>
<item translatable="yes">a1</item>
<item translatable="yes">b2</item>
<item translatable="yes">c3</item>
</items>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="transaction_type_page_explanation">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">label</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Transaction Type</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="transaction_details_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">12</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="transaction_details_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">Select the type of transaction date and description for your records.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=2 -->
<object class="GtkGrid" id="transaction_details_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="transaction_date_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Date</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="transaction_description_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Description</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="transaction_description_entry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Transaction Details</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="stock_amount_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="stock_amount_title">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">Enter the date and the number of shares you gained or lost in the transaction.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="stock_amount_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="row-spacing">6</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="stock_amount_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Shares</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="prev_balance_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Previous Balance</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="prev_balance_amount">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">(Previous Balance)</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="next_balance_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Next Balance</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="next_balance_amount">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">(Next Balance)</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Stock Amount</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="stock_value_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="stock_value_title">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">Enter the value of the shares.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="stock_value_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="row-spacing">6</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="stock_price_amount">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">(autocalculated price)</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="stock_memo_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Memo</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="stock_memo_entry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="stock_price_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Price</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="stock_value_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Stock Value</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Stock Value</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="cash_details_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="stock_cash_title">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">In this page, input the asset account, and the monetary amount received/spent. It may differ from the stock value from the last page, if there are broker fees associated with this transaction.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="cash_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="cash_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Amount</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="cash_memo_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Memo</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">cash_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="cash_memo_entry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="invisible-char">●</property>
<property name="text" translatable="yes">Cash</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="cash_amount_box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="cash_account_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Cash Account</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">cash_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes" comments="Dialog title for the remains of a stock split">Cash</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="fees_details_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="stock_fees_title">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">In this page, input any broker fees incurred in this transaction. The fee may be capitalized into the asset account, or expensed into a broker fees account. Typically fees on purchase are capitalized, and fees on sales are expensed. If there are no fees involved in this transaction, it can be left blank.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=4 -->
<object class="GtkGrid" id="fees_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="fees_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Amount</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="fees_memo_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Memo</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">fees_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="fees_memo_entry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="invisible-char">●</property>
<property name="text" translatable="yes">Fees</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">3</property>
</packing>
</child>
<child>
<object class="GtkBox" id="fees_amount_box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="fees_account_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Broker Fees</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">fees_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="capitalize_fees_checkbutton">
<property name="label" translatable="yes">Capitalize broker fees into stock account?</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes" comments="Broker Fees">Fees</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="dividend_details_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="stock_dividend_title">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">In this page, input any dividend income received in this transaction.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="dividend_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="dividend_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Amount</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="dividend_memo_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Memo</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">dividend_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="dividend_memo_entry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="invisible-char">●</property>
<property name="text" translatable="yes">Dividend</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="dividend_amount_box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="dividend_account_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Dividend Account</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">dividend_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes" comments="Broker Fees">Dividend</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="capgains_details_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="stock_capgains_title">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">In this page, input any capital gains or losses incurred, and the associated income account. Capital gains are positive, and capital losses are negative.</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<!-- n-columns=2 n-rows=3 -->
<object class="GtkGrid" id="capgains_table">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="row-spacing">3</property>
<property name="column-spacing">6</property>
<child>
<object class="GtkLabel" id="capgains_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Amount</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="capgains_memo_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Memo</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">capgains_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="capgains_memo_entry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hexpand">True</property>
<property name="invisible-char">●</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
</packing>
</child>
<child>
<object class="GtkBox" id="capgains_amount_box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="capgains_account_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">Capital Gains Account</property>
<property name="use-underline">True</property>
<property name="justify">center</property>
<property name="mnemonic-widget">capgains_memo_entry</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="title" translatable="yes">Capital Gains</property>
<property name="complete">True</property>
</packing>
</child>
<child>
<object class="GtkBox" id="finish_page">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="border-width">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="finish_page_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">6</property>
<property name="label" translatable="yes">A summary of splits is shown as follows. If the summary is correct, and there are no errors, please press "Apply". You may also press "Back" to review your choices, or "Cancel" to quit without making any changes. </property>
<property name="wrap">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="finish_scrolled">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child>
<object class="GtkTreeView" id="transaction_view">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="transaction_view_selection">
<property name="mode">browse</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="finish_summary">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">summary of errors</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="page-type">confirm</property>
<property name="title" translatable="yes">Finish</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkBox">
<property name="can-focus">False</property>
</object>
</child>
</object>
</interface>

View File

@ -46,6 +46,7 @@
<menuitem name="ActionsReconcile" action="ActionsReconcileAction"/>
<menuitem name="ActionsAutoClear" action="ActionsAutoClearAction"/>
<menuitem name="ActionsStockSplit" action="ActionsStockSplitAction"/>
<menuitem name="ActionsStockAssistant" action="ActionsStockAssistantAction"/>
<menuitem name="ActionLots" action="ActionsLotsAction"/>
<separator name="ActionsSep4"/>
<menuitem name="BlankTransaction" action="BlankTransactionAction"/>

View File

@ -126,6 +126,7 @@ static const char* source_names[(size_t)PRICE_SOURCE_INVALID + 1] =
"user:split-register",
"user:split-import",
"user:stock-split",
"user:stock-transaction",
"user:invoice-post", /* Retained for backwards compatibility */
"temporary",
"invalid"

View File

@ -175,6 +175,7 @@ typedef enum
PRICE_SOURCE_SPLIT_REG, // "user:split-register"
PRICE_SOURCE_SPLIT_IMPORT, // "user:split-import"
PRICE_SOURCE_STOCK_SPLIT, // "user:stock-split"
PRICE_SOURCE_STOCK_TRANSACTION,// "user:stock-transaction"
PRICE_SOURCE_INVOICE, // "user:invoice-post"
PRICE_SOURCE_TEMP, // "temporary"
PRICE_SOURCE_INVALID, // "invalid"

View File

@ -52,6 +52,7 @@ gnucash/gnome/assistant-acct-period.c
gnucash/gnome/assistant-hierarchy.c
gnucash/gnome/assistant-loan.cpp
gnucash/gnome/assistant-stock-split.c
gnucash/gnome/assistant-stock-transaction.cpp
gnucash/gnome/business-gnome-utils.c
gnucash/gnome/business-options-gnome.c
gnucash/gnome/business-urls.c
@ -243,6 +244,7 @@ gnucash/gtkbuilder/assistant-hierarchy.glade
gnucash/gtkbuilder/assistant-loan.glade
gnucash/gtkbuilder/assistant-qif-import.glade
gnucash/gtkbuilder/assistant-stock-split.glade
gnucash/gtkbuilder/assistant-stock-transaction.glade
gnucash/gtkbuilder/assistant-xml-encoding.glade
gnucash/gtkbuilder/business-options-gnome.glade
gnucash/gtkbuilder/business-prefs.glade