mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[options] Provide a const char* value flavor for register_commodity
And register_currency_option
This commit is contained in:
parent
1ff844c195
commit
6faaf3b427
@ -749,6 +749,7 @@ wrap_unique_ptr(GncOptionDBPtr, GncOptionDB);
|
|||||||
%ignore gnc_register_font_option(GncOptionDB*, const char*, const char*, const char*, const char*, std::string);
|
%ignore gnc_register_font_option(GncOptionDB*, const char*, const char*, const char*, const char*, std::string);
|
||||||
%ignore gnc_register_budget_option(GncOptionDB*, const char*, const char*, const char*, const char*, GncBudget*);
|
%ignore gnc_register_budget_option(GncOptionDB*, const char*, const char*, const char*, const char*, GncBudget*);
|
||||||
%ignore gnc_register_commodity_option(GncOptionDB*, const char*, const char*, const char*, const char*, gnc_commodity*);
|
%ignore gnc_register_commodity_option(GncOptionDB*, const char*, const char*, const char*, const char*, gnc_commodity*);
|
||||||
|
%ignore gnc_register_commodity_option(GncOptionDB*, const char*, const char*, const char*, const char*, const char*);
|
||||||
%ignore gnc_register_simple_boolean_option(GncOptionDB*, const char* section, const char* name, const char* key, const char* doc_string, bool value);
|
%ignore gnc_register_simple_boolean_option(GncOptionDB*, const char* section, const char* name, const char* key, const char* doc_string, bool value);
|
||||||
%ignore gnc_register_complex_boolean_option(GncOptionDB*, const char* section, const char* name, const char* key, const char* doc_string, bool value);
|
%ignore gnc_register_complex_boolean_option(GncOptionDB*, const char* section, const char* name, const char* key, const char* doc_string, bool value);
|
||||||
%ignore gnc_register_pixmap_option(GncOptionDB*, const char*, const char*, const char*, const char*, std::string);
|
%ignore gnc_register_pixmap_option(GncOptionDB*, const char*, const char*, const char*, const char*, std::string);
|
||||||
@ -761,6 +762,7 @@ wrap_unique_ptr(GncOptionDBPtr, GncOptionDB);
|
|||||||
%ignore gnc_register_query_option(GncOptionDB*, const char*, const char*, const char*, const char*, QofQuery*);
|
%ignore gnc_register_query_option(GncOptionDB*, const char*, const char*, const char*, const char*, QofQuery*);
|
||||||
%ignore gnc_register_color_option(GncOptionDB*, const char*, const char*, const char*, const char*, std::string);
|
%ignore gnc_register_color_option(GncOptionDB*, const char*, const char*, const char*, const char*, std::string);
|
||||||
%ignore gnc_register_currency_option(GncOptionDB*, const char*, const char*, const char*, const char*, gnc_commodity*);
|
%ignore gnc_register_currency_option(GncOptionDB*, const char*, const char*, const char*, const char*, gnc_commodity*);
|
||||||
|
%ignore gnc_register_currency_option(GncOptionDB*, const char*, const char*, const char*, const char*, const char*);
|
||||||
%ignore gnc_register_invoice_option(GncOptionDB*, const char*, const char*, const char*, const char*, GncInvoice*);
|
%ignore gnc_register_invoice_option(GncOptionDB*, const char*, const char*, const char*, const char*, GncInvoice*);
|
||||||
%ignore gnc_register_taxtable_option(GncOptionDB*, const char*, const char*, const char*, const char*, GncTaxTable*);
|
%ignore gnc_register_taxtable_option(GncOptionDB*, const char*, const char*, const char*, const char*, GncTaxTable*);
|
||||||
%ignore gnc_register_counter_option(GncOptionDB*, const char*, const char*, const char*, const char*, double);
|
%ignore gnc_register_counter_option(GncOptionDB*, const char*, const char*, const char*, const char*, double);
|
||||||
|
@ -33,6 +33,10 @@
|
|||||||
#include "gnc-optiondb-impl.hpp"
|
#include "gnc-optiondb-impl.hpp"
|
||||||
#include "gnc-option-ui.hpp"
|
#include "gnc-option-ui.hpp"
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#include <gnc-session.h>
|
||||||
|
}
|
||||||
constexpr const char* log_module{G_LOG_DOMAIN};
|
constexpr const char* log_module{G_LOG_DOMAIN};
|
||||||
|
|
||||||
constexpr auto stream_max = std::numeric_limits<std::streamsize>::max();
|
constexpr auto stream_max = std::numeric_limits<std::streamsize>::max();
|
||||||
@ -632,6 +636,30 @@ gnc_register_commodity_option(GncOptionDB* db, const char* section,
|
|||||||
db->register_option(section, std::move(option));
|
db->register_option(section, std::move(option));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gnc_register_commodity_option(GncOptionDB* db, const char* section,
|
||||||
|
const char* name, const char* key,
|
||||||
|
const char* doc_string, const char* value)
|
||||||
|
{
|
||||||
|
gnc_commodity* commodity{};
|
||||||
|
const auto book{qof_session_get_book(gnc_get_current_session())};
|
||||||
|
const auto commodity_table{gnc_commodity_table_get_table(book)};
|
||||||
|
const auto namespaces{gnc_commodity_table_get_namespaces(commodity_table)};
|
||||||
|
for (auto node = namespaces; node && commodity == nullptr;
|
||||||
|
node = g_list_next(node))
|
||||||
|
{
|
||||||
|
commodity = gnc_commodity_table_lookup(commodity_table,
|
||||||
|
(const char*)(node->data),
|
||||||
|
value);
|
||||||
|
if (commodity)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
GncOption option{GncOptionCommodityValue{section, name, key, doc_string,
|
||||||
|
commodity,
|
||||||
|
GncOptionUIType::COMMODITY}};
|
||||||
|
db->register_option(section, std::move(option));
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gnc_register_simple_boolean_option(GncOptionDB* db,
|
gnc_register_simple_boolean_option(GncOptionDB* db,
|
||||||
const char* section, const char* name,
|
const char* section, const char* name,
|
||||||
@ -901,7 +929,23 @@ gnc_register_currency_option(GncOptionDB* db, const char* section,
|
|||||||
const char* doc_string, gnc_commodity *value)
|
const char* doc_string, gnc_commodity *value)
|
||||||
{
|
{
|
||||||
GncOption option{GncOptionCommodityValue{
|
GncOption option{GncOptionCommodityValue{
|
||||||
section, name, key, doc_string, value,GncOptionUIType::CURRENCY
|
section, name, key, doc_string, value, GncOptionUIType::CURRENCY
|
||||||
|
}};
|
||||||
|
db->register_option(section, std::move(option));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gnc_register_currency_option(GncOptionDB* db, const char* section,
|
||||||
|
const char* name, const char* key,
|
||||||
|
const char* doc_string, const char* value)
|
||||||
|
{
|
||||||
|
const auto book{qof_session_get_book(gnc_get_current_session())};
|
||||||
|
const auto commodity_table{gnc_commodity_table_get_table(book)};
|
||||||
|
const auto commodity = gnc_commodity_table_lookup(commodity_table,
|
||||||
|
"CURRENCY",
|
||||||
|
value);
|
||||||
|
GncOption option{GncOptionCommodityValue{
|
||||||
|
section, name, key, doc_string, commodity, GncOptionUIType::CURRENCY
|
||||||
}};
|
}};
|
||||||
db->register_option(section, std::move(option));
|
db->register_option(section, std::move(option));
|
||||||
}
|
}
|
||||||
|
@ -203,6 +203,28 @@ inline void gnc_register_commodity_option(const GncOptionDBPtr& db,
|
|||||||
gnc_register_commodity_option(db.get(), section, name, key,
|
gnc_register_commodity_option(db.get(), section, name, key,
|
||||||
doc_string, value);
|
doc_string, value);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* As above but with a const char* value, which should be the symbol
|
||||||
|
* for the commodity. All security editor namespaces will be searched
|
||||||
|
* to retrieve it.
|
||||||
|
*/
|
||||||
|
void gnc_register_commodity_option(GncOptionDB* db,
|
||||||
|
const char* section, const char* name,
|
||||||
|
const char* key, const char* doc_string,
|
||||||
|
const char* value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* As above but takes a const GncOptionDBPtr& (const std::unique_ptr<GncOptionDB>&) for calling from C++.
|
||||||
|
*/
|
||||||
|
inline void gnc_register_commodity_option(const GncOptionDBPtr& db,
|
||||||
|
const char* section,
|
||||||
|
const char* name, const char* key,
|
||||||
|
const char* doc_string,
|
||||||
|
const char* value)
|
||||||
|
{
|
||||||
|
gnc_register_commodity_option(db.get(), section, name, key,
|
||||||
|
doc_string, value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new simple boolean option and register it in the options database.
|
* Create a new simple boolean option and register it in the options database.
|
||||||
@ -603,6 +625,26 @@ inline void gnc_register_currency_option(const GncOptionDBPtr& db,
|
|||||||
doc_string, value);
|
doc_string, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* As above but with a const char* value, which must be the ISO4217 three-letter
|
||||||
|
* symbol for the currency.
|
||||||
|
*/
|
||||||
|
void gnc_register_currency_option(GncOptionDB* db,
|
||||||
|
const char* section,
|
||||||
|
const char* name, const char* key,
|
||||||
|
const char* doc_string,
|
||||||
|
const char* value);
|
||||||
|
|
||||||
|
inline void gnc_register_currency_option(const GncOptionDBPtr& db,
|
||||||
|
const char* section,
|
||||||
|
const char* name, const char* key,
|
||||||
|
const char* doc_string,
|
||||||
|
const char* value)
|
||||||
|
{
|
||||||
|
gnc_register_currency_option(db.get(), section, name, key,
|
||||||
|
doc_string, value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new invoice option and register it in the options database.
|
* Create a new invoice option and register it in the options database.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user