Advertisement
Guest User

Untitled

a guest
Nov 30th, 2017
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. #include <QObject>
  2. #include <QList>
  3. #include <QDebug>
  4.  
  5. using namespace std;
  6.  
  7. class Contact
  8. {
  9. public:
  10.     Contact(int cat, QString FN, QString LN, QString SA, QString ZC, QString C, QString PN, QString EM)
  11.             :   m_Category(cat), m_FirstName(FN), m_LastName(LN), m_StreetAdress(SA),
  12.                 m_ZipCode(ZC), m_City(C), m_PhoneNumber(PN), m_EMail(EM)
  13.     {}
  14.     QString toQString();
  15.     friend bool operator==(Contact L, Contact R);
  16. private:
  17.     int m_Category;
  18.     QString m_FirstName;
  19.     QString m_LastName;
  20.     QString m_StreetAdress;
  21.     QString m_ZipCode;
  22.     QString m_City;
  23.     QString m_PhoneNumber;
  24.     QString m_EMail;
  25. };
  26.  
  27.  
  28. QString Contact::toQString(){
  29.     QString sep = "[::]";
  30.     QString cat = QString::number(m_Category);
  31.     return  cat + sep +
  32.             m_FirstName + sep +
  33.             m_LastName + sep +
  34.             m_StreetAdress + sep +
  35.             m_ZipCode + sep +
  36.             m_City + sep +
  37.             m_PhoneNumber + sep +
  38.             m_EMail;
  39. }
  40.  
  41. bool operator==(Contact L, Contact R){
  42.     if(L.m_FirstName == R.m_FirstName && L.m_LastName == R.m_LastName && L.m_PhoneNumber == R.m_PhoneNumber)
  43.         return 1;
  44.     else return 0;
  45. }
  46.  
  47.  
  48. class ContactList : public QList<Contact>
  49. {
  50. public:
  51.     void add(Contact c){this->push_back(c);}
  52.     void remove(Contact c);
  53.     QStringList getPhoneList(int category);
  54.     QStringList getMailingList(int category);
  55.     ContactList() {}
  56. private:
  57.     void getData(QStringList& Out, QString sep, int category, int additionalData);
  58. };
  59. void ContactList::getData(QStringList& Out, QString sep, int category, int additionalData)
  60. {
  61.     for(Contact wej : *this){
  62.         QStringList ContactData = wej.toQString().split("[::]");
  63.         int takenCat = ContactData[0].toInt();
  64.         if(takenCat == category){
  65.             Out.push_back(ContactData[1] + sep + ContactData[2] + sep + ContactData[additionalData]);
  66.         }
  67.     }
  68. }
  69. QStringList ContactList::getPhoneList(int category){
  70.     QStringList Out;
  71.     QString sep = " ";
  72.     int phoneIndex = 6;
  73.     getData(Out, sep, category, phoneIndex);
  74.     return Out;
  75. }
  76. QStringList ContactList::getMailingList(int category){
  77.     QStringList Out;
  78.     QString sep = " ";
  79.     int emailIndex = 7;
  80.     getData(Out, sep, category, emailIndex);
  81.     return Out;
  82. }
  83. void ContactList::remove(Contact c){
  84.     for(Contact taken : *this){
  85.         if(taken == c)
  86.             this->removeOne(taken);
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement