diff --git a/src/model/Category.hpp b/src/model/Category.hpp index 2c17377..ead5511 100644 --- a/src/model/Category.hpp +++ b/src/model/Category.hpp @@ -33,6 +33,14 @@ struct Category QString font; bool fix_cost; + bool operator() (const Category& cat1, const Category& cat2) const + { + if (cat1.fix_cost) return true; + if (cat2.fix_cost) return false; + + return cat1.name < cat2.name; + } + bool operator == (int catId) { return id == catId; diff --git a/src/model/User.cpp b/src/model/User.cpp index dd6fa5d..76468f4 100644 --- a/src/model/User.cpp +++ b/src/model/User.cpp @@ -45,6 +45,9 @@ void User::InvalidateOperations() } _operations.clear(); + + std::sort(_accounts.begin(), _accounts.end(), Account()); + std::sort(_categories.begin(), _categories.end(), Category()); } Category User::GetCategory(int catId)