diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-07-04 22:38:03 +0000 |
commit | dadc34655c3ab961b0b0b94a10eaaba710f0b5e8 (patch) | |
tree | 99e72842fe687baea16376a147619b6048d7e441 /kmymoney2/mymoney/storage/mymoneystorageanon.h | |
download | kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.tar.gz kmymoney-dadc34655c3ab961b0b0b94a10eaaba710f0b5e8.zip |
Added kmymoney
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kmymoney@1239792 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmymoney2/mymoney/storage/mymoneystorageanon.h')
-rw-r--r-- | kmymoney2/mymoney/storage/mymoneystorageanon.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/kmymoney2/mymoney/storage/mymoneystorageanon.h b/kmymoney2/mymoney/storage/mymoneystorageanon.h new file mode 100644 index 0000000..4b7ab95 --- /dev/null +++ b/kmymoney2/mymoney/storage/mymoneystorageanon.h @@ -0,0 +1,113 @@ +/*************************************************************************** + mymoneystorageanon.h + ------------------- + begin : Thu Oct 24 2002 + copyright : (C) 2000-2002 by Michael Edwardes + email : [email protected] + Javier Campos Morales <[email protected]> + Felix Rodriguez <[email protected]> + John C <[email protected]> + Thomas Baumgart <[email protected]> + Kevin Tambascio <[email protected]> + Ace Jone <[email protected]> + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef MYMONEYSTORAGEANON_H +#define MYMONEYSTORAGEANON_H + +// ---------------------------------------------------------------------------- +// QT Includes + +// #include <qdom.h> +// #include <qdatastream.h> +// class QIODevice; + +// ---------------------------------------------------------------------------- +// Project Includes + +// #include "imymoneyserialize.h" +// #include "imymoneystorageformat.h" +#include "mymoneystoragexml.h" + +/** + * @author Kevin Tambascio ([email protected]) + */ + +#define VERSION_0_60_XML 0x10000010 // Version 0.5 file version info +#define VERSION_0_61_XML 0x10000011 // use 8 bytes for MyMoneyMoney objects + +/** + * This class provides storage of an anonymized version of the current + * file. Any object with an ID (account, transaction, etc) is renamed + * with that ID. Any other string value the user typed in is replaced with + * x's equal in length to the original string. Any numeric value is + * replaced with an arbitrary number which matches the sign of the original. + * + * The purpose of this class is to give users a way to send a developer + * their file without comprimising their financial data. If a user + * encounters an error, they should try saving the anonymous version of the + * file and see if the error is still there. If so, they should notify the + * list of the problem, and then when requested, send the anonymous file + * privately to the developer who takes the problem. I still don't think + * it's wise to post the file to the public list...maybe I'm just paranoid. + * + * @author Ace Jones <[email protected]> + */ + +class MyMoneyStorageANON : public MyMoneyStorageXML +{ +public: + MyMoneyStorageANON(); + virtual ~MyMoneyStorageANON(); + +protected: + void writeUserInformation(QDomElement& userInfo); + + void writeInstitution(QDomElement& institutions, const MyMoneyInstitution& i); + + void writePayee(QDomElement& payees, const MyMoneyPayee& p); + + void writeAccount(QDomElement& accounts, const MyMoneyAccount& p); + + void writeTransaction(QDomElement& transactions, const MyMoneyTransaction& tx); + + void writeSchedule(QDomElement& scheduledTx, const MyMoneySchedule& tx); + + void writeBudget(QDomElement& budgets, const MyMoneyBudget& b); + + void readFile(QIODevice* s, IMyMoneySerialize* storage); + + void writeSecurity(QDomElement& securityElement, const MyMoneySecurity& security); + + QDomElement findChildElement(const QString& name, const QDomElement& root); + +private: + /** + * The list of key-value pairs to not modify + */ + static QStringList zKvpNoModify; + + /** + * The list of key-value pairs which are numbers to be hidden + */ + static QStringList zKvpXNumber; + + QString hideString(const QString&) const; + MyMoneyMoney hideNumber(const MyMoneyMoney&) const; + void fakeTransaction(MyMoneyTransaction& tn); + void fakeBudget(MyMoneyBudget& bn); + void fakeKeyValuePair(MyMoneyKeyValueContainer& _kvp); + + MyMoneyMoney m_factor; +}; + +#endif |