void RecentBooksDlg::removeFile(LVPtrVector<CRFileHistRecord> & files, int num) { QDir Dir0( cr2qt(files[num-1]->getFilePath()) ); // Удаляемый файл ещё существует if((Dir0.exists( cr2qt(files.get(num-1)->getFileName()) )) && (files.length() > 1)){ // Нужно чтобы в истории было больше одной книжки, чтобы можно было загрузить удяляемую запись а потом удалить m_docview->loadDocument(cr2qt(files[num-1]->getFilePathName())); // remove cache file QString filename = cr2qt(files.get(num-1)->getFileName()); filename = cr2qt(m_docview->getDocView()->getDocProps()->getStringDef(DOC_PROP_FILE_NAME)); // Уточняем CRC удаляемого файла lUInt32 crc = m_docview->getDocView()->getDocProps()->getIntDef(DOC_PROP_FILE_CRC32, 0); char s[16]; sprintf(s, ".%08x", (unsigned)crc); filename = filename+ QString(s); // Возвращаем активным первоначально просматриваемый документ (он сейчас первым в списке истории стоит) m_docview->loadDocument(cr2qt(files[1]->getFilePathName())); // // для отладки // trim file extension, need for archive files QDir Dir(qApp->applicationDirPath() + QDir::toNativeSeparators(QString("/data/cache/"))); QStringList fileList = Dir.entryList(QStringList() << filename + "*.cr3", QDir::Files); if(fileList.count()) Dir.remove(fileList.at(0)); files.remove(1); } else { // Известно лишь название архива и если его название не совпадает с названием файла то кеш файл не будет удалён // remove cache file QString filename = cr2qt(files.get(num-1)->getFileName()); // trim file extension, need for archive files int pos = filename.lastIndexOf("."); if(pos != -1) filename.resize(pos); QDir Dir(qApp->applicationDirPath() + QDir::toNativeSeparators(QString("/data/cache/"))); QStringList fileList = Dir.entryList(QStringList() << filename + "*.cr3", QDir::Files); if(fileList.count()) Dir.remove(fileList.at(0)); files.remove(num-1); } }
void removeFile(LVPtrVector<CRFileHistRecord> & files, int num) { // remove cache file QString filename = cr2qt(files.get(num-1)->getFileName()); // trim file extension, need for archive files int pos = filename.lastIndexOf("."); if(pos != -1) filename.resize(pos); QDir Dir(qApp->applicationDirPath() + QDir::toNativeSeparators(QString("/data/cache/"))); QStringList fileList = Dir.entryList(QStringList() << filename + "*.cr3", QDir::Files); if(fileList.count()) Dir.remove(fileList.at(0)); files.remove(num-1); }