Source Code (Use browser search to find items of interest.)

Class Index

kppp'ModemDatabase (./kdenetwork/kppp/modemdb.h:47)

class ModemDatabase {
public:
  ModemDatabase();
  ~ModemDatabase();

  const QStrList *vendors();
  QStrList *models(QString vendor);

  void save(KConfig *);

private:
  void load();
  void loadModem(const char *key, CharDict &dict);
  QList<CharDict> modems;

  QStrList *lvendors;

  KConfig *modemDB;
};



kppp'ModemDatabase::ModemDatabase() (./kdenetwork/kppp/modemdb.cpp:133)

ModemDatabase::ModemDatabase() {  
  load();
}



kppp'ModemDatabase::~ModemDatabase() (./kdenetwork/kppp/modemdb.cpp:138)

ModemDatabase::~ModemDatabase() {
  delete lvendors;
  delete modemDB;
}



kppp'ModemDatabase::vendors() (./kdenetwork/kppp/modemdb.cpp:144)

const QStrList *ModemDatabase::vendors() {
  return lvendors;
}



kppp'ModemDatabase::models() (./kdenetwork/kppp/modemdb.cpp:149)

QStrList *ModemDatabase::models(QString vendor) {
  QStrList *sl = new QStrList;  
  QString s = i18n("<Generic>");
  if(vendor == s)
    vendor = i18n("<Generic>");

  for(uint i = 0; i < modems.count(); i++) {
    CharDict *dict = modems.at(i);
    if(dict->find("Vendor") != 0) {
      if(vendor == (*dict)["Vendor"] && (*dict)["Name"][0] != '!')
	sl->inSort((*dict)["Name"]);
    }
  }

  return sl;
}



kppp'ModemDatabase::loadModem() (./kdenetwork/kppp/modemdb.cpp:167)

void ModemDatabase::loadModem(const char *key, CharDict &dict) {
  //  KEntryIterator *it = modemDB->entryIterator(key);
  //  KEntryDictEntry *e;
  QMap <QString, QString> map;
  QMap <QString, QString>::Iterator it;
  //  KEntryMapConstIterator e;
  KEntry e;
  map = modemDB->entryMap(key);
  it = map.begin();

  // remove parent attribute
  dict.setAutoDelete(true);
  dict.remove("Parent");
  
  //  e = it->current();
  while(it.key() != QString::null) {
    if(dict.find(it.key()) == 0) {
      char *value = new char[it.data().length()+1];
      strcpy(value, it.data());
      dict.insert(it.key(), value);
    }
    it++;
  }

  // check name attribute
  if(dict["Name"] == 0 || key[0]=='!') {
    char *name = new char[strlen(key)+1];
    strcpy(name, key);
    dict.replace("Name", name);
  }

  // check parent attribute
  if(dict["Parent"] != 0)
    loadModem(dict["Parent"], dict);
  else 
    // inherit common at last
    if(strcmp(key, "Common") != 0)
      loadModem("Common", dict);

}



kppp'ModemDatabase::load() (./kdenetwork/kppp/modemdb.cpp:209)

void ModemDatabase::load() {
  modemDB = new KConfig("DB/modemDB.rc", QString::null);
  lvendors = new QStrList;
  lvendors->setAutoDelete(true);
  modems.setAutoDelete(true);

  QStringList list = modemDB->groupList();
  QStringList::Iterator it = list.begin();
  while(it != list.end()) {
    modemDB->setGroup(*it);
    CharDict *c = new CharDict;
    c->setAutoDelete(true);
    loadModem((*it).latin1(), *c);

    //    if(strcmp(it->latin1(), "Common") == 0) {
    if(*it == "Common") {
      QString s = i18n("Hayes(tm) compatible modem");
      char *name = new char[s.length()+1];
      strcpy(name, s);
      c->replace("Name", name);

      s = i18n("<Generic>");
      char *vend = new char[s.length()+1];
      strcpy(vend, s);
      c->replace("Vendor", vend);
    }
    modems.append(c);

    if(modemDB->hasKey("Vendor")) {
      QString vendor = modemDB->readEntry("Vendor");
      if(lvendors->find(vendor) == -1)
	lvendors->inSort(vendor);
    }
    ++it;
  }

  lvendors->insert(0, i18n("<Generic>"));
}



kppp'ModemDatabase::save() (./kdenetwork/kppp/modemdb.cpp:249)

void ModemDatabase::save(KConfig *) {
}