Don't use boost::optional for gnc_commodity pointers

These pointers can simply be checked for null to determine
whether they are set or not.
This commit is contained in:
Geert Janssens 2023-02-11 14:40:06 +01:00
parent 9384308b05
commit 4737665289
2 changed files with 8 additions and 10 deletions

View File

@ -267,10 +267,8 @@ void GncPreTrans::set (GncTransPropType prop_type, const std::string& value)
break; break;
case GncTransPropType::COMMODITY: case GncTransPropType::COMMODITY:
m_commodity = boost::none; m_currency = nullptr;
comm = parse_commodity (value); // Throws if parsing fails m_currency = parse_commodity (value);
if (comm)
m_commodity = comm;
break; break;
case GncTransPropType::VOID_REASON: case GncTransPropType::VOID_REASON:
@ -337,8 +335,8 @@ std::shared_ptr<DraftTransaction> GncPreTrans::create_trans (QofBook* book, gnc_
auto trans = xaccMallocTransaction (book); auto trans = xaccMallocTransaction (book);
xaccTransBeginEdit (trans); xaccTransBeginEdit (trans);
if (m_commodity && gnc_commodity_is_currency(*m_commodity)) if (gnc_commodity_is_currency(m_currency))
xaccTransSetCurrency (trans, *m_commodity); xaccTransSetCurrency (trans, m_currency);
else else
xaccTransSetCurrency (trans, currency); xaccTransSetCurrency (trans, currency);
xaccTransSetDatePostedSecsNormalized (trans, xaccTransSetDatePostedSecsNormalized (trans,
@ -367,7 +365,7 @@ bool GncPreTrans::is_part_of (std::shared_ptr<GncPreTrans> parent)
(!m_num || m_num == parent->m_num) && (!m_num || m_num == parent->m_num) &&
(!m_desc || m_desc == parent->m_desc) && (!m_desc || m_desc == parent->m_desc) &&
(!m_notes || m_notes == parent->m_notes) && (!m_notes || m_notes == parent->m_notes) &&
(!m_commodity || m_commodity == parent->m_commodity) && (!m_currency || m_currency == parent->m_currency) &&
(!m_void_reason || m_void_reason == parent->m_void_reason) && (!m_void_reason || m_void_reason == parent->m_void_reason) &&
parent->m_errors.empty(); // A GncPreTrans with errors can never be a parent parent->m_errors.empty(); // A GncPreTrans with errors can never be a parent
} }

View File

@ -147,7 +147,7 @@ struct DraftTransaction
boost::optional<std::string> void_reason; boost::optional<std::string> void_reason;
}; };
struct GncPreTrans class GncPreTrans
{ {
public: public:
GncPreTrans(int date_format, bool multi_split) GncPreTrans(int date_format, bool multi_split)
@ -186,14 +186,14 @@ private:
boost::optional<std::string> m_num; boost::optional<std::string> m_num;
boost::optional<std::string> m_desc; boost::optional<std::string> m_desc;
boost::optional<std::string> m_notes; boost::optional<std::string> m_notes;
boost::optional<gnc_commodity*> m_commodity; gnc_commodity *m_currency;
boost::optional<std::string> m_void_reason; boost::optional<std::string> m_void_reason;
bool created = false; bool created = false;
ErrMap m_errors; ErrMap m_errors;
}; };
struct GncPreSplit class GncPreSplit
{ {
public: public:
GncPreSplit (int date_format, int currency_format) : m_date_format{date_format}, GncPreSplit (int date_format, int currency_format) : m_date_format{date_format},