From 67a598f6ff3b9b19b08af108c8bfe26064728457 Mon Sep 17 00:00:00 2001 From: Craig Earls Date: Mon, 7 Jan 2013 20:15:49 -0700 Subject: Bug551 fixed, commodities and accounts now sort Added two compare structs for std::map to use. I tried to override the < operator got a clean compile but map wasn't picking it up, I couldn't figure out why so I took the less elegant route. --- src/account.h | 7 +++++++ src/commodity.h | 7 +++++++ src/output.h | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/account.h b/src/account.h index a2fcb8de..3642ada0 100644 --- a/src/account.h +++ b/src/account.h @@ -308,6 +308,13 @@ std::ostream& operator<<(std::ostream& out, const account_t& account); void put_account(property_tree::ptree& pt, const account_t& acct, function pred); +//simple struct added to allow std::map to compare accounts in the accounts report +struct account_compare { + bool operator() (const account_t& lhs, const account_t& rhs){ + return (lhs.fullname().compare(rhs.fullname()) < 0); + } +}; + } // namespace ledger #endif // _ACCOUNT_H diff --git a/src/commodity.h b/src/commodity.h index ab496850..37b02e74 100644 --- a/src/commodity.h +++ b/src/commodity.h @@ -349,6 +349,13 @@ inline std::ostream& operator<<(std::ostream& out, const commodity_t& comm) { void put_commodity(property_tree::ptree& pt, const commodity_t& comm, bool commodity_details = false); +//simple struct to allow std::map to compare commodities names +struct commodity_compare { + bool operator() (const commodity_t* lhs, const commodity_t* rhs){ + return (lhs->symbol().compare(rhs->symbol()) < 0); + } +}; + } // namespace ledger #endif // _COMMODITY_H diff --git a/src/output.h b/src/output.h index 281f69b6..5ce9dc58 100644 --- a/src/output.h +++ b/src/output.h @@ -142,7 +142,7 @@ class report_accounts : public item_handler protected: report_t& report; - std::map accounts; + std::map accounts; typedef std::map::value_type accounts_pair; @@ -194,7 +194,7 @@ class report_commodities : public item_handler protected: report_t& report; - std::map commodities; + std::map commodities; typedef std::map::value_type commodities_pair; -- cgit v1.2.3