diff --git a/src/model/import/GrisbiImportEngine.cpp b/src/model/import/GrisbiImportEngine.cpp index 07fe18e..4fb56b1 100644 --- a/src/model/import/GrisbiImportEngine.cpp +++ b/src/model/import/GrisbiImportEngine.cpp @@ -182,6 +182,7 @@ bool GrisbiImportEngine::HandleFile(const QString& path, User* user, Database* d try { res = _sax.parse(&file); + LinkChilds(); } catch (const char* s) { diff --git a/src/model/import/ImportEngine.cpp b/src/model/import/ImportEngine.cpp index bf1ea78..c4f55a6 100644 --- a/src/model/import/ImportEngine.cpp +++ b/src/model/import/ImportEngine.cpp @@ -323,3 +323,19 @@ const std::map& ImportEngine::GetAccountAm { return _accountAmounts; } + +void ImportEngine::LinkChilds() +{ + std::vector::iterator it, it2; + + for(it=_operations.begin(); it!=_operations.end(); it++) + { + if (!it->meta) continue; + for(it2=_operations.begin(); it2!=_operations.end(); it2++) + { + if (it == it2 || it2->meta) continue; + if (it2->parent == it->id) + it->childs.push_back(it2->id); + } + } +} diff --git a/src/model/import/ImportEngine.hpp b/src/model/import/ImportEngine.hpp index c02d6fd..2ae80e1 100644 --- a/src/model/import/ImportEngine.hpp +++ b/src/model/import/ImportEngine.hpp @@ -81,6 +81,7 @@ protected: void ApplyPattern(ImportPattern& pattern, Operation& op); QString FindPattern(QString& s1, QString& s2); + void LinkChilds(); }; #endif diff --git a/src/model/import/OFXImportEngine.cpp b/src/model/import/OFXImportEngine.cpp index 0851df0..3b80e25 100644 --- a/src/model/import/OFXImportEngine.cpp +++ b/src/model/import/OFXImportEngine.cpp @@ -148,7 +148,13 @@ OFXImportEngine::~OFXImportEngine() bool OFXImportEngine::HandleFile(const QString& path, User* user, Database* db, KissCount* kiss) { + int res; if (!ImportEngine::HandleFile(path, user, db, kiss)) return false; - return !libofx_proc_file(_ctx, path.toStdString().c_str(), AUTODETECT); + res = !libofx_proc_file(_ctx, path.toStdString().c_str(), AUTODETECT); + + if (res) + LinkChilds(); + + return res; } diff --git a/src/model/import/XMLImportEngine.cpp b/src/model/import/XMLImportEngine.cpp index dc0ceba..018b551 100644 --- a/src/model/import/XMLImportEngine.cpp +++ b/src/model/import/XMLImportEngine.cpp @@ -54,6 +54,7 @@ bool XMLImportEngine::HandleFile(const QString& path, User* user, Database* db, try { res = _sax.parse(&file); + LinkChilds(); } catch (const char* s) { diff --git a/src/view/StatsPanel.cpp b/src/view/StatsPanel.cpp index 299363e..43fb5a4 100644 --- a/src/view/StatsPanel.cpp +++ b/src/view/StatsPanel.cpp @@ -87,7 +87,10 @@ StatsPanel::StatsPanel(KissCount* kiss, wxUI *parent) : KissPanel(kiss, parent), for(i=0, accountIt = user->_accounts.begin(); accountIt != user->_accounts.end(); accountIt++, i++) { item = new QListWidgetItem(accountIt->name, _account); - item->setCheckState (Qt::Checked); + if (accountIt->hidden) + item->setCheckState (Qt::Unchecked); + else + item->setCheckState (Qt::Checked); } _account->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);