34     userdb_ = QSqlDatabase::addDatabase(
"QSQLITE", 
"userdb");
 
   35     QString dbfile = KStandardDirs::locateLocal(
"appdata", 
"userdb.sqlite");
 
   37     bool first_run = 
false;
 
   38     if (!testdb.exists()) {
 
   39         kDebug()<< i18n(
"User DB does not exist! New User DB will be " 
   43     userdb_.setDatabaseName(dbfile);
 
   44     if (!userdb_.open()) {
 
   45            kWarning() << i18n(
"Unable to open user database file!");
 
   46            kWarning() << LastError();
 
   48         kDebug() << i18n(
"Opened the User DB. Ready!");
 
   49         if (first_run == 
true) {
 
   61 QSqlError KSUserDB::LastError() {
 
   63     return userdb_.lastError();
 
   66 bool KSUserDB::FirstRun() {
 
   78 bool KSUserDB::RebuildDB() {
 
   79     kWarning() << i18n(
"Rebuilding User Database");
 
   80     QVector<QString> tables;
 
   81     tables.append(
"CREATE TABLE Version (" 
   82                   "Version CHAR DEFAULT NULL)");
 
   83     tables.append(
"INSERT INTO Version VALUES (\""  KSTARS_VERSION 
"\")");
 
   84     tables.append(
"CREATE TABLE user ( " 
   85                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
   86                   "Name TEXT NOT NULL  DEFAULT 'NULL', " 
   87                   "Surname TEXT NOT NULL  DEFAULT 'NULL', " 
   88                   "Contact TEXT DEFAULT NULL)");
 
   90     tables.append(
"CREATE TABLE telescope ( " 
   91                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
   92                   "Vendor TEXT DEFAULT NULL, " 
   93                   "Aperture REAL NOT NULL  DEFAULT NULL, " 
   94                   "Model TEXT DEFAULT NULL, " 
   95                   "Driver TEXT DEFAULT NULL, " 
   96                   "Type TEXT DEFAULT NULL, " 
   97                   "FocalLength REAL DEFAULT NULL)");
 
   99     tables.append(
"CREATE TABLE flags ( " 
  100                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  101                   "RA TEXT NOT NULL  DEFAULT NULL, " 
  102                   "Dec TEXT NOT NULL  DEFAULT NULL, " 
  103                   "Icon TEXT NOT NULL  DEFAULT 'NULL', " 
  104                   "Label TEXT NOT NULL  DEFAULT 'NULL', " 
  105                   "Color TEXT DEFAULT NULL, " 
  106                   "Epoch TEXT DEFAULT NULL)");
 
  108     tables.append(
"CREATE TABLE lens ( " 
  109                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  110                   "Vendor TEXT NOT NULL  DEFAULT 'NULL', " 
  111                   "Model TEXT DEFAULT NULL, " 
  112                   "Factor REAL NOT NULL  DEFAULT NULL)");
 
  114     tables.append(
"CREATE TABLE eyepiece ( " 
  115                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  116                   "Vendor TEXT DEFAULT NULL, " 
  117                   "Model TEXT DEFAULT NULL, " 
  118                   "FocalLength REAL NOT NULL  DEFAULT NULL, " 
  119                   "ApparentFOV REAL NOT NULL  DEFAULT NULL, " 
  120                   "FOVUnit TEXT NOT NULL  DEFAULT NULL)");
 
  122     tables.append(
"CREATE TABLE filter ( " 
  123                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  124                   "Vendor TEXT DEFAULT NULL, " 
  125                   "Model TEXT DEFAULT NULL, " 
  126                   "Type TEXT DEFAULT NULL, " 
  127                   "Color TEXT DEFAULT NULL)");
 
  129     tables.append(
"CREATE TABLE wishlist ( " 
  130                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  131                   "Date NUMERIC NOT NULL  DEFAULT NULL, " 
  132                   "Type TEXT DEFAULT NULL, " 
  133                   "UIUD TEXT DEFAULT NULL)");
 
  135     tables.append(
"CREATE TABLE fov ( " 
  136                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  137                   "name TEXT NOT NULL  DEFAULT 'NULL', " 
  138                   "color TEXT DEFAULT NULL, " 
  139                   "sizeX NUMERIC DEFAULT NULL, " 
  140                   "sizeY NUMERIC DEFAULT NULL, " 
  141                   "shape TEXT DEFAULT NULL)");
 
  143     tables.append(
"CREATE TABLE logentry ( " 
  144                   "id INTEGER DEFAULT NULL PRIMARY KEY AUTOINCREMENT, " 
  145                   "content TEXT NOT NULL  DEFAULT 'NULL', " 
  146                   "UIUD TEXT DEFAULT NULL, " 
  147                   "DateTime NUMERIC NOT NULL  DEFAULT NULL, " 
  148                   "User INTEGER DEFAULT NULL REFERENCES user (id), " 
  149                   "Location TEXT DEFAULT NULL, " 
  150                   "Telescope INTEGER DEFAULT NULL REFERENCES telescope (id)," 
  151                   "Filter INTEGER DEFAULT NULL REFERENCES filter (id), " 
  152                   "lens INTEGER DEFAULT NULL REFERENCES lens (id), " 
  153                   "Eyepiece INTEGER DEFAULT NULL REFERENCES eyepiece (id), " 
  154                   "FOV INTEGER DEFAULT NULL REFERENCES fov (id))");
 
  156     for (
int i = 0; i < tables.count(); ++i) {
 
  157         QSqlQuery query(userdb_);
 
  158         if (!query.exec(tables[i])) {
 
  159             kDebug() << query.lastError();
 
  169                            const QString& contact) {
 
  171     QSqlTableModel users(0, userdb_);
 
  172     users.setTable(
"user");
 
  173     users.setFilter(
"Name LIKE \'" + name + 
"\' AND Surname LIKE \'" +
 
  177     if (users.rowCount() > 0) {
 
  178             QSqlRecord record = users.record(0);
 
  179             record.setValue(
"Name", name);
 
  180             record.setValue(
"Surname", surname);
 
  181             record.setValue(
"Contact", contact);
 
  182             users.setRecord(0, record);
 
  186         users.insertRows(row, 1);
 
  187         users.setData(users.index(row, 1), name);  
 
  188         users.setData(users.index(row, 2), surname);
 
  189         users.setData(users.index(row, 3), contact);
 
  198     QSqlTableModel users(0, userdb_);
 
  199     users.setTable(
"user");
 
  200     users.setFilter(
"Name LIKE \'" + name + 
"\' AND Surname LIKE \'" +
 
  204     int observer_count = users.rowCount();
 
  208     return (observer_count > 0);
 
  214     QSqlTableModel users(0, userdb_);
 
  215     users.setTable(
"user");
 
  216     users.setFilter(
"id = \'"+
id+
"\'");
 
  219     users.removeRows(0, 1);
 
  222     int observer_count = users.rowCount();
 
  226     return (observer_count > 0);
 
  231     observer_list.clear();
 
  232     QSqlTableModel users(0, userdb_);
 
  233     users.setTable(
"user");
 
  236     for (
int i =0; i < users.rowCount(); ++i) {
 
  237         QSqlRecord record = users.record(i);
 
  238         QString 
id = record.value(
"id").toString();
 
  239         QString name = record.value(
"Name").toString();
 
  240         QString surname = record.value(
"Surname").toString();
 
  241         QString contact = record.value(
"Contact").toString();
 
  243         observer_list.append(o);
 
  256     QSqlTableModel flags(0, userdb_);
 
  257     flags.setTable(
"flags");
 
  260     flags.removeRows(0, flags.rowCount());
 
  268                        const QString &epoch, 
const QString &image_name,
 
  269                        const QString &label, 
const QString &labelColor) {
 
  271     QSqlTableModel flags(0, userdb_);
 
  272     flags.setTable(
"flags");
 
  275     flags.insertRows(row, 1);
 
  276     flags.setData(flags.index(row, 1), ra);  
 
  277     flags.setData(flags.index(row, 2), dec);
 
  278     flags.setData(flags.index(row, 3), image_name);
 
  279     flags.setData(flags.index(row, 4), label);
 
  280     flags.setData(flags.index(row, 5), labelColor);
 
  281     flags.setData(flags.index(row, 6), epoch);
 
  292     QSqlTableModel flags(0, userdb_);
 
  293     flags.setTable(
"flags");
 
  296     for (
int i =0; i < flags.rowCount(); ++i) {
 
  297         QStringList flagEntry;
 
  298         QSqlRecord record = flags.record(i);
 
  306         flagEntry.append(record.value(1).toString());
 
  307         flagEntry.append(record.value(2).toString());
 
  308         flagEntry.append(record.value(6).toString());
 
  309         flagEntry.append(record.value(3).toString());
 
  310         flagEntry.append(record.value(4).toString());
 
  311         flagEntry.append(record.value(5).toString());
 
  312         flagList.append(flagEntry);
 
  325     QSqlTableModel equip(0, userdb_);
 
  326     equip.setTable(type);
 
  327     equip.setFilter(
"id = " + QString::number(
id));
 
  330     equip.removeRows(0, equip.rowCount());
 
  339     QSqlTableModel equip(0, userdb_);
 
  340     equip.setTable(type);
 
  341     equip.setFilter(
"id >= 1");
 
  343     equip.removeRows(0, equip.rowCount());
 
  354                         const QString &driver, 
const QString &type,
 
  355                         const double & focalLength, 
const double &aperture) {
 
  357     QSqlTableModel equip(0, userdb_);
 
  358     equip.setTable(
"telescope");
 
  361     equip.insertRows(row, 1);
 
  362     equip.setData(equip.index(row, 1), vendor);  
 
  363     equip.setData(equip.index(row, 2), aperture);
 
  364     equip.setData(equip.index(row, 3), model);
 
  365     equip.setData(equip.index(row, 4), driver);
 
  366     equip.setData(equip.index(row, 5), type);
 
  367     equip.setData(equip.index(row, 6), focalLength);
 
  375                         const QString &driver, 
const QString &type,
 
  376                         const double &focalLength, 
const double &aperture,
 
  379     QSqlTableModel equip(0, userdb_);
 
  380     equip.setTable(
"telescope");
 
  381     equip.setFilter(
"id = " + 
id);
 
  384     if (equip.rowCount() > 0) {
 
  385         QSqlRecord record = equip.record(0);
 
  386         record.setValue(1, vendor);
 
  387         record.setValue(2, aperture);
 
  388         record.setValue(3, model);
 
  389         record.setValue(4, driver);
 
  390         record.setValue(5, type);
 
  391         record.setValue(6, focalLength);
 
  392         equip.setRecord(0, record);
 
  403     QSqlTableModel equip(0, userdb_);
 
  404     equip.setTable(
"telescope");
 
  407     for (
int i =0; i < equip.rowCount(); ++i) {
 
  408         QSqlRecord record = equip.record(i);
 
  409         QString 
id = record.value(
"id").toString();
 
  410         QString vendor = record.value(
"Vendor").toString();
 
  411         double aperture = record.value(
"Aperture").toDouble();
 
  412         QString model = record.value(
"Model").toString();
 
  413         QString driver = record.value(
"Driver").toString();
 
  414         QString type = record.value(
"Type").toString();
 
  415         double focalLength = record.value(
"FocalLength").toDouble();
 
  417                                       focalLength, aperture);
 
  419         scope_list.append(o);
 
  430                            const double &focalLength, 
const double &fov,
 
  431                            const QString &fovunit) {
 
  433     QSqlTableModel equip(0, userdb_);
 
  434     equip.setTable(
"eyepiece");
 
  437     equip.insertRows(row, 1);
 
  438     equip.setData(equip.index(row, 1), vendor);  
 
  439     equip.setData(equip.index(row, 2), model);
 
  440     equip.setData(equip.index(row, 3), focalLength);
 
  441     equip.setData(equip.index(row, 4), fov);
 
  442     equip.setData(equip.index(row, 5), fovunit);
 
  450                            const double &focalLength, 
const double &fov,
 
  451                            const QString &fovunit, 
const QString &
id) {
 
  453     QSqlTableModel equip(0, userdb_);
 
  454     equip.setTable(
"eyepiece");
 
  455     equip.setFilter(
"id = " + 
id);
 
  458     if (equip.rowCount()>0) {
 
  459         QSqlRecord record = equip.record(0);
 
  460         record.setValue(1, vendor);
 
  461         record.setValue(2, model);
 
  462         record.setValue(3, focalLength);
 
  463         record.setValue(4, fov);
 
  464         record.setValue(5, fovunit);
 
  465         equip.setRecord(0, record);
 
  473     eyepiece_list.clear();
 
  476     QSqlTableModel equip(0, userdb_);
 
  477     equip.setTable(
"eyepiece");
 
  480     for (
int i =0; i < equip.rowCount(); ++i) {
 
  481         QSqlRecord record = equip.record(i);
 
  482         QString 
id = record.value(
"id").toString();
 
  483         QString vendor = record.value(
"Vendor").toString();
 
  484         QString model = record.value(
"Model").toString();
 
  485         double focalLength = record.value(
"FocalLength").toDouble();
 
  486         double fov = record.value(
"ApparentFOV").toDouble();
 
  487         QString fovUnit = record.value(
"FOVUnit").toString();
 
  490                                              fovUnit, focalLength);
 
  491         eyepiece_list.append(o);
 
  502                        const double &factor) {
 
  504     QSqlTableModel equip(0, userdb_);
 
  505     equip.setTable(
"lens");
 
  508     equip.insertRows(row, 1);
 
  509     equip.setData(equip.index(row, 1), vendor);  
 
  510     equip.setData(equip.index(row, 2), model);
 
  511     equip.setData(equip.index(row, 3), factor);
 
  519                        const double &factor, 
const QString &
id) {
 
  521     QSqlTableModel equip(0, userdb_);
 
  522     equip.setTable(
"lens");
 
  523     equip.setFilter(
"id = "+
id);
 
  526     if (equip.rowCount()>0) {
 
  527         QSqlRecord record = equip.record(0);
 
  528         record.setValue(1, vendor);
 
  529         record.setValue(2, model);
 
  530         record.setValue(3, factor);
 
  541     QSqlTableModel equip(0, userdb_);
 
  542     equip.setTable(
"lens");
 
  545     for (
int i =0; i < equip.rowCount(); ++i) {
 
  546         QSqlRecord record = equip.record(i);
 
  547         QString 
id = record.value(
"id").toString();
 
  548         QString vendor = record.value(
"Vendor").toString();
 
  549         QString model = record.value(
"Model").toString();
 
  550         double factor = record.value(
"Factor").toDouble();
 
  563                          const QString &type, 
const QString &color) {
 
  565     QSqlTableModel equip(0, userdb_);
 
  566     equip.setTable(
"filter");
 
  569     equip.insertRows(row, 1);
 
  570     equip.setData(equip.index(row, 1), vendor);  
 
  571     equip.setData(equip.index(row, 2), model);
 
  572     equip.setData(equip.index(row, 3), type);
 
  573     equip.setData(equip.index(row, 4), color);
 
  581                          const QString &type, 
const QString &color,
 
  584     QSqlTableModel equip(0, userdb_);
 
  585     equip.setTable(
"filter");
 
  586     equip.setFilter(
"id = " + 
id);
 
  589     if (equip.rowCount() > 0) {
 
  590         QSqlRecord record = equip.record(0);
 
  591         record.setValue(1, vendor);
 
  592         record.setValue(2, model);
 
  593         record.setValue(3, type);
 
  594         record.setValue(4, color);
 
  604     QSqlTableModel equip(0, userdb_);
 
  605     equip.setTable(
"filter");
 
  608     for (
int i =0; i < equip.rowCount(); ++i) {
 
  609         QSqlRecord record = equip.record(i);
 
  610         QString 
id = record.value(
"id").toString();
 
  611         QString vendor = record.value(
"Vendor").toString();
 
  612         QString model = record.value(
"Model").toString();
 
  613         QString type = record.value(
"Type").toString();
 
  614         QString color = record.value(
"Color").toString();
 
  616         filter_list.append(o);
 
  624 bool KSUserDB::ImportFlags() {
 
  625     QString flagfilename = KStandardDirs::locateLocal(
"appdata", 
"flags.dat");
 
  626     QFile flagsfile(flagfilename);
 
  627     if (!flagsfile.exists()) {
 
  638     KSParser flagparser(flagfilename,
'#',flag_file_sequence,
' ');
 
  640     QHash<QString, QVariant> row_content;
 
  641     while (flagparser.HasNextRow()){
 
  642         row_content = flagparser.ReadNextRow();
 
  643         QString ra = row_content[
"RA"].toString();
 
  644         QString dec = row_content[
"Dec"].toString();
 
  645         QString epoch = row_content[
"epoch"].toString();
 
  646         QString icon = row_content[
"icon"].toString();
 
  647         QString label = row_content[
"label"].toString();
 
  648         QString color = row_content[
"color"].toString();
 
  650         AddFlag(ra,dec,epoch,icon,label,color);
 
  655 bool KSUserDB::ImportUsers() {
 
  656     QString usersfilename = KStandardDirs::locateLocal(
"appdata", 
"observerlist.xml");
 
  657     QFile usersfile(usersfilename);
 
  659     if (!usersfile.exists()) {
 
  663     if( ! usersfile.open( QIODevice::ReadOnly ) )
 
  666     QXmlStreamReader *reader = 
new QXmlStreamReader(&usersfile);
 
  668     while( ! reader->atEnd() ) {
 
  671         if( reader->isEndElement() )
 
  674         if( reader->isStartElement() ) {
 
  675            if (reader->name() != 
"observers")
 
  679            while( ! reader->atEnd() ) {
 
  682                 if( reader->isEndElement() )
 
  685                 if( reader->isStartElement() ) {
 
  687                     if( reader->name() == 
"observer" ) {
 
  688                       QString name, surname, contact;
 
  689                       while( ! reader->atEnd() ) {
 
  692                           if( reader->isEndElement() )
 
  695                           if( reader->isStartElement() ) {
 
  696                               if( reader->name() == 
"name" ) {
 
  697                                   name = reader->readElementText();
 
  698                               } 
else if( reader->name() == 
"surname" ) {
 
  699                                   surname = reader->readElementText();
 
  700                               } 
else if( reader->name() == 
"contact" ) {
 
  701                                   contact = reader->readElementText();
 
  716 bool KSUserDB::ImportEquipment() {
 
  717     QString equipfilename = KStandardDirs::locateLocal(
"appdata", 
"equipmentlist.xml");
 
  718     QFile equipfile(equipfilename);
 
  720     if (!equipfile.exists()) {
 
  724     if( ! equipfile.open( QIODevice::ReadOnly ) )
 
  727     reader_ = 
new QXmlStreamReader(&equipfile);
 
  728     while( ! reader_->atEnd() ) {
 
  730         if( reader_->isStartElement() ) {
 
  731                 while( ! reader_->atEnd() ) {
 
  734                   if( reader_->isEndElement() )
 
  737                   if( reader_->isStartElement() ) {
 
  738                     if( reader_->name() == 
"scopes" )
 
  740                     else if( reader_->name() == 
"eyepieces" )
 
  742                     else if( reader_->name() ==
"lenses" )
 
  744                     else if( reader_->name() ==
"filters" )
 
  755 void KSUserDB::readScopes() {
 
  756     while( ! reader_->atEnd() ) {
 
  759         if( reader_->isEndElement() )
 
  762         if( reader_->isStartElement() ) {
 
  763             if( reader_->name() == 
"scope" )
 
  764                 readScope( reader_->attributes().value( 
"id" ).toString() );
 
  769 void KSUserDB::readEyepieces() {
 
  770     while( ! reader_->atEnd() ) {
 
  773         if( reader_->isEndElement() )
 
  776         if( reader_->isStartElement() ) {
 
  777             if( reader_->name() == 
"eyepiece" )
 
  778                 readEyepiece( reader_->attributes().value( 
"id" ).toString() );
 
  783 void KSUserDB::readLenses() {
 
  784     while( ! reader_->atEnd() ) {
 
  787         if( reader_->isEndElement() )
 
  790         if( reader_->isStartElement() ) {
 
  791             if( reader_->name() == 
"lens" )
 
  792                 readLens( reader_->attributes().value( 
"id" ).toString() );
 
  797 void KSUserDB::readFilters() {
 
  798     while( ! reader_->atEnd() ) {
 
  801         if( reader_->isEndElement() )
 
  804         if( reader_->isStartElement() ) {
 
  805             if( reader_->name() == 
"filter" )
 
  806                 readFilter( reader_->attributes().value( 
"id" ).toString() );
 
  811 void KSUserDB::readScope( QString 
id ) {
 
  812     QString model, vendor, type, driver = i18n(
"None");
 
  813     double aperture, focalLength;
 
  814     while( ! reader_->atEnd() ) {
 
  817         if( reader_->isEndElement() )
 
  820         if( reader_->isStartElement() ) {
 
  821             if( reader_->name() == 
"model" ) {
 
  822                 model = reader_->readElementText();
 
  823             } 
else if( reader_->name() == 
"vendor" ) {
 
  824                 vendor = reader_->readElementText() ;
 
  825             } 
else if( reader_->name() == 
"type" ) {
 
  826                 type = reader_->readElementText() ;
 
  827                 if( type == 
"N" ) type = 
"Newtonian";
 
  828                 if( type == 
"R" ) type = 
"Refractor";
 
  829                 if( type == 
"M" ) type = 
"Maksutov";
 
  830                 if( type == 
"S" ) type = 
"Schmidt-Cassegrain";
 
  831                 if( type == 
"K" ) type = 
"Kutter (Schiefspiegler)";
 
  832                 if( type == 
"C" ) type = 
"Cassegrain";
 
  833             } 
else if( reader_->name() == 
"focalLength" ) {
 
  834                 focalLength = (reader_->readElementText()).toDouble() ;
 
  835             } 
else if( reader_->name() == 
"aperture" )
 
  836                 aperture = (reader_->readElementText()).toDouble() ;
 
  837               else if ( reader_->name() == 
"driver")
 
  838                  driver = reader_->readElementText();
 
  842     AddScope(model, vendor, driver, type, focalLength, aperture);
 
  845 void KSUserDB::readEyepiece( QString 
id ) {
 
  846     QString model, focalLength, vendor, fov, fovUnit;
 
  847     while( ! reader_->atEnd() ) {
 
  850         if( reader_->isEndElement() )
 
  853         if( reader_->isStartElement() ) {
 
  854             if( reader_->name() == 
"model" ) {
 
  855                 model = reader_->readElementText();
 
  856             } 
else if( reader_->name() == 
"vendor" ) {
 
  857                 vendor = reader_->readElementText() ;
 
  858             } 
else if( reader_->name() == 
"apparentFOV" ) {
 
  859                 fov = reader_->readElementText();
 
  860                 fovUnit = reader_->attributes().value( 
"unit" ).toString();
 
  861             } 
else if( reader_->name() == 
"focalLength" ) {
 
  862                 focalLength = reader_->readElementText() ;
 
  867     AddEyepiece(vendor, model, focalLength.toDouble(), fov.toDouble(), fovUnit);
 
  870 void KSUserDB::readLens( QString 
id ) {
 
  871     QString model, factor, vendor;
 
  872     while( ! reader_->atEnd() ) {
 
  875         if( reader_->isEndElement() )
 
  878         if( reader_->isStartElement() ) {
 
  879             if( reader_->name() == 
"model" ) {
 
  880                 model = reader_->readElementText();
 
  881             } 
else if( reader_->name() == 
"vendor" ) {
 
  882                 vendor = reader_->readElementText() ;
 
  883             } 
else if( reader_->name() == 
"factor" ) {
 
  884                 factor = reader_->readElementText() ;
 
  889     AddLens(vendor, model, factor.toDouble());
 
  892 void KSUserDB::readFilter( QString 
id ) {
 
  893     QString model, vendor, type, color;
 
  894     while( ! reader_->atEnd() ) {
 
  897         if( reader_->isEndElement() )
 
  900         if( reader_->isStartElement() ) {
 
  901             if( reader_->name() == 
"model" ) {
 
  902                 model = reader_->readElementText();
 
  903             } 
else if( reader_->name() == 
"vendor" ) {
 
  904                 vendor = reader_->readElementText() ;
 
  905             } 
else if( reader_->name() == 
"type" ) {
 
  906                 type = reader_->readElementText() ;
 
  907             } 
else if( reader_->name() == 
"color" ) {
 
  908                 color = reader_->readElementText() ;
 
int FindObserver(const QString &name, const QString &surname)
Returns the unique id of the user with given name & surname. 
 
void AddScope(const QString &model, const QString &vendor, const QString &driver, const QString &type, const double &focalLength, const double &aperture)
Appends the scope with given details in the database. 
 
void EraseAllEquipment(const QString &type)
Erases the whole equipment table of given type. 
 
QList< QStringList > ReturnAllFlags()
Returns a QList populated with all stored flags Order: const QString &ra, const QString &dec...
 
Generic class for text file parsers used in KStars. 
 
void GetAllObservers(QList< OAL::Observer * > &observer_list)
Updates the passed reference of observer_list with all observers The original content of the list is ...
 
void GetAllFilters(QList< OAL::Filter * > &m_filterList)
Populate the reference passed with all filters. 
 
bool Initialize()
Initialize KStarsDB while running splash screen. 
 
void EraseAllFlags()
Erases all the flags from the database. 
 
void GetAllScopes(QList< OAL::Scope * > &m_scopeList)
updates the scope list with all scopes from database List is cleared and then filled with content...
 
void AddFilter(const QString &vendor, const QString &model, const QString &type, const QString &color)
Add a new filter to the database. 
 
void AddLens(const QString &vendor, const QString &model, const double &factor)
Add a new lens to the database. 
 
void GetAllEyepieces(QList< OAL::Eyepiece * > &m_eyepieceList)
Populate the reference passed with all eyepieces. 
 
void setINDIDriver(const QString &driver)
 
void AddEyepiece(const QString &vendor, const QString &model, const double &focalLength, const double &fov, const QString &fovunit)
Add new eyepiece to database. 
 
void GetAllLenses(QList< OAL::Lens * > &m_lensList)
Populate the reference passed with all lenses. 
 
bool DeleteObserver(const QString &id)
Removes the user with unique id as given by FindObserver Returns false if the user is not found...
 
void AddObserver(const QString &name, const QString &surname, const QString &contact)
Adds a new observer into the database. 
 
void EraseEquipment(const QString &type, const int &id)
Erase the equipment with given type and unique id Valid equipment types: "telescope","lens","filter". 
 
void AddFlag(const QString &ra, const QString &dec, const QString &epoch, const QString &image_name, const QString &label, const QString &labelColor)
Add a new Flag with given parameters.