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_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*, 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_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);
|
||||
@ -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_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*, const char*);
|
||||
%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_counter_option(GncOptionDB*, const char*, const char*, const char*, const char*, double);
|
||||
|
@ -33,6 +33,10 @@
|
||||
#include "gnc-optiondb-impl.hpp"
|
||||
#include "gnc-option-ui.hpp"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <gnc-session.h>
|
||||
}
|
||||
constexpr const char* log_module{G_LOG_DOMAIN};
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
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
|
||||
gnc_register_simple_boolean_option(GncOptionDB* db,
|
||||
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)
|
||||
{
|
||||
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));
|
||||
}
|
||||
|
@ -203,6 +203,28 @@ inline void gnc_register_commodity_option(const GncOptionDBPtr& db,
|
||||
gnc_register_commodity_option(db.get(), section, name, key,
|
||||
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.
|
||||
@ -603,6 +625,26 @@ inline void gnc_register_currency_option(const GncOptionDBPtr& db,
|
||||
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.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user