void MenuBook::logic() { if (book_name == "") return; else { loadBook(); visible = true; } if (!visible) return; tablist.logic(); if (closeButton->checkClick() || (inpt->pressing[ACCEPT] && !inpt->lock[ACCEPT])) { if (inpt->pressing[ACCEPT]) inpt->lock[ACCEPT] = true; clearBook(); snd->play(sfx_close); visible = false; book_name = ""; last_book_name = ""; book_loaded = false; } }
bool ModelBackendOneFile::loadMetaInfo( const QString& path ) { qDebug() << Q_FUNC_INFO; QFile file(path + QDir::separator() + BOOK_DATA_FILE); if (!file.open(QFile::ReadOnly)) { if (!file.open(QFile::ReadOnly)) { qDebug() << Q_FUNC_INFO << "Cannot open newly created model file"; return true; } } QXmlStreamReader xml(&file); xml.readNext(); //Skip first tag xml.readNext(); if(xml.hasError()){ qWarning() << Q_FUNC_INFO << "XML error before loading"; file.copy(file.fileName() + ".backup"); file.remove(); return true; } if(xml.name() == "books") { m_fileModelVersion = xml.attributes().value("model_version").toString().toUInt(); qDebug() << Q_FUNC_INFO << "model version" << m_fileModelVersion; while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if(xml.name() == "collections") { while (!xml.atEnd() && !xml.hasError()) { xml.readNext(); if(xml.isEndElement()) { if(xml.name() == "collections") break; } if (xml.name() == "collection" && xml.isStartElement()) { addCollection(xml.readElementText()); } } } if (xml.name() == "book" && xml.isStartElement()) { BookInfo* info = loadBook(xml); m_infos.insert(info->path, info); } } } file.close(); if(xml.hasError()) { qWarning() << Q_FUNC_INFO << "XML with errors. Books loaded until errors:" << m_infos.size(); file.copy(file.fileName() + ".backup"); qWarning() << Q_FUNC_INFO << "file to remove:" << file.remove(); } return true; }
main() { int selection = 0; int entryNum = 0; entry *phoneBook; phoneBook = (entry*)malloc(sizeof(entry)); do { printf("\n---------------------------------------------"); printf("\nPhone Book\n[1]\tAdd Friend\n[2]\tDelete Friend\n[3]\tShow Phone Book\n[4]\tSearch Phone Book\n[5]\tRandom Entry\n[6]\tAlphebetical Phone Book\n[7]\tClear Phone Book\n[8]\tSave Phone Book\n[9]\tLoad Phone Book\n[0]\tExit\n:"); scanf("%d",&selection); switch(selection) { case 1: { printf("\nYou have selected \"Add Friend\"."); addFriend(phoneBook,&entryNum); break; } case 2: { printf("\nYou have selected \"Delete Friend\"."); delFriend(phoneBook,&entryNum); break; } case 3: { printf("\nYou have selected \"Show Phone Book\"."); showBook(phoneBook,&entryNum); break; } case 4: { printf("\nYou have selected \"Search Phone Book\"."); findFriend(phoneBook,&entryNum); break; } case 5: { printf("\nYou have selected \"Random Entry\"."); randEntry(phoneBook,&entryNum); break; } case 6: { printf("\nYou have selected \"Alphabetical Phone Book\"."); alphaBook(phoneBook,&entryNum); break; } case 7: { printf("\nYou have selected \"Clear Phone Book\"."); clearBook(phoneBook,&entryNum); break; } case 8: { printf("\nYou have selected \"Save Phone Book\"."); saveBook(phoneBook,&entryNum); break; } case 9: { printf("\nYou have selected \"Load Phone Book\"."); phoneBook=loadBook(phoneBook,&entryNum); break; } case 0: { printf("\nYou have selected \"Exit\"."); printf("\nHave a nice day!"); free(phoneBook); break; } default: { printf("\nINVALID OPTION!"); break; } } }while (selection!=0); }