Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QObject>
- #include <QList>
- #include <QDebug>
- using namespace std;
- class Contact
- {
- public:
- Contact(int cat, QString FN, QString LN, QString SA, QString ZC, QString C, QString PN, QString EM)
- : m_Category(cat), m_FirstName(FN), m_LastName(LN), m_StreetAdress(SA),
- m_ZipCode(ZC), m_City(C), m_PhoneNumber(PN), m_EMail(EM)
- {}
- QString toQString();
- friend bool operator==(Contact L, Contact R);
- private:
- int m_Category;
- QString m_FirstName;
- QString m_LastName;
- QString m_StreetAdress;
- QString m_ZipCode;
- QString m_City;
- QString m_PhoneNumber;
- QString m_EMail;
- };
- QString Contact::toQString(){
- QString sep = "[::]";
- QString cat = QString::number(m_Category);
- return cat + sep +
- m_FirstName + sep +
- m_LastName + sep +
- m_StreetAdress + sep +
- m_ZipCode + sep +
- m_City + sep +
- m_PhoneNumber + sep +
- m_EMail;
- }
- bool operator==(Contact L, Contact R){
- if(L.m_FirstName == R.m_FirstName && L.m_LastName == R.m_LastName && L.m_PhoneNumber == R.m_PhoneNumber)
- return 1;
- else return 0;
- }
- class ContactList : public QList<Contact>
- {
- public:
- void add(Contact c){this->push_back(c);}
- void remove(Contact c);
- QStringList getPhoneList(int category);
- QStringList getMailingList(int category);
- ContactList() {}
- private:
- void getData(QStringList& Out, QString sep, int category, int additionalData);
- };
- void ContactList::getData(QStringList& Out, QString sep, int category, int additionalData)
- {
- for(Contact wej : *this){
- QStringList ContactData = wej.toQString().split("[::]");
- int takenCat = ContactData[0].toInt();
- if(takenCat == category){
- Out.push_back(ContactData[1] + sep + ContactData[2] + sep + ContactData[additionalData]);
- }
- }
- }
- QStringList ContactList::getPhoneList(int category){
- QStringList Out;
- QString sep = " ";
- int phoneIndex = 6;
- getData(Out, sep, category, phoneIndex);
- return Out;
- }
- QStringList ContactList::getMailingList(int category){
- QStringList Out;
- QString sep = " ";
- int emailIndex = 7;
- getData(Out, sep, category, emailIndex);
- return Out;
- }
- void ContactList::remove(Contact c){
- for(Contact taken : *this){
- if(taken == c)
- this->removeOne(taken);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement