void MangaListWidget::updateChaptersInfo(QModelIndex index) { QStandardItem* currentItem = _model->itemFromIndex(index); QDir chapterDir = _scansDirectory; if (!currentItem->parent()) return; chapterDir.cd(currentItem->parent()->text()); chapterDir.cd(currentItem->text()); QStringList pagesList = Utils::filesList(chapterDir); if (pagesList.size() == 0) return; qint64 totalSize = 0; for (const QString& pageName: pagesList) { QFile currFile(chapterDir.path()+"/"+pageName); totalSize += currFile.size(); } double chapterSize = totalSize/(1024.*1024.); QFileInfo chapterDirInfo(chapterDir.path()); _chapterInfoWidget->setNumberFiles(QString::number(pagesList.size())); _chapterInfoWidget->setTotalSize(QString::number(chapterSize, 'f', 2)+"MB"); _chapterInfoWidget->setLastModification(chapterDirInfo.lastModified().toString("ddd dd MMM yyyy")); _chapterInfoWidget->setLastRead(chapterDirInfo.lastRead().toString("ddd dd MMM yyyy")); if (pagesList.size() > 0) _chapterInfoWidget->setImgPreview(QPixmap(chapterDir.path()+"/"+pagesList.at(0))); else _chapterInfoWidget->setImgPreview(QPixmap()); }
QFile::FileError QLCFixtureDef::saveXML(const QString& fileName) { QFile::FileError error; if (fileName.isEmpty() == true) return QFile::OpenError; QString tempFileName(fileName); tempFileName += ".temp"; QFile file(tempFileName); if (file.open(QIODevice::WriteOnly) == false) return file.error(); QXmlStreamWriter doc(&file); doc.setAutoFormatting(true); doc.setAutoFormattingIndent(1); doc.setCodec("UTF-8"); QLCFile::writeXMLHeader(&doc, KXMLQLCFixtureDefDocument, author()); doc.writeTextElement(KXMLQLCFixtureDefManufacturer, m_manufacturer); doc.writeTextElement(KXMLQLCFixtureDefModel, m_model); doc.writeTextElement(KXMLQLCFixtureDefType, m_type); /* Channels */ QListIterator <QLCChannel*> chit(m_channels); while (chit.hasNext() == true) chit.next()->saveXML(&doc); /* Modes */ QListIterator <QLCFixtureMode*> modeit(m_modes); while (modeit.hasNext() == true) modeit.next()->saveXML(&doc); /* End the document and close all the open elements */ error = QFile::NoError; doc.writeEndDocument(); file.close(); // Save to actual requested file name QFile currFile(fileName); if (currFile.exists() && !currFile.remove()) { qWarning() << "Could not erase" << fileName; return currFile.error(); } if (!file.rename(fileName)) { qWarning() << "Could not rename" << tempFileName << "to" << fileName; return file.error(); } return error; }
nsresult nsNetscapeProfileMigratorBase::LocateSignonsFile(char** aResult) { nsCOMPtr<nsISimpleEnumerator> entries; nsresult rv = mSourceProfile->GetDirectoryEntries(getter_AddRefs(entries)); if (NS_FAILED(rv)) return rv; nsCAutoString fileName; do { bool hasMore = false; rv = entries->HasMoreElements(&hasMore); if (NS_FAILED(rv) || !hasMore) break; nsCOMPtr<nsISupports> supp; rv = entries->GetNext(getter_AddRefs(supp)); if (NS_FAILED(rv)) break; nsCOMPtr<nsIFile> currFile(do_QueryInterface(supp)); nsCOMPtr<nsIURI> uri; rv = NS_NewFileURI(getter_AddRefs(uri), currFile); if (NS_FAILED(rv)) break; nsCOMPtr<nsIURL> url(do_QueryInterface(uri)); nsCAutoString extn; url->GetFileExtension(extn); #ifdef MOZILLA_INTERNAL_API if (extn.EqualsIgnoreCase("s")) { url->GetFileName(fileName); break; } #else if (extn.Equals("s", CaseInsensitiveCompare)) { url->GetFileName(fileName); break; } #endif } while (1); *aResult = ToNewCString(fileName); return NS_OK; }
// Ensures that we have no old ICO files left in the jump list cache nsresult JumpListBuilder::RemoveIconCacheForAllItems() { // Construct the path of our jump list cache nsCOMPtr<nsIFile> jumpListCacheDir; nsresult rv = NS_GetSpecialDirectory("ProfLDS", getter_AddRefs(jumpListCacheDir)); NS_ENSURE_SUCCESS(rv, rv); rv = jumpListCacheDir->AppendNative(nsDependentCString( mozilla::widget::FaviconHelper::kJumpListCacheDir)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsISimpleEnumerator> entries; rv = jumpListCacheDir->GetDirectoryEntries(getter_AddRefs(entries)); NS_ENSURE_SUCCESS(rv, rv); // Loop through each directory entry and remove all ICO files found do { bool hasMore = false; if (NS_FAILED(entries->HasMoreElements(&hasMore)) || !hasMore) break; nsCOMPtr<nsISupports> supp; if (NS_FAILED(entries->GetNext(getter_AddRefs(supp)))) break; nsCOMPtr<nsIFile> currFile(do_QueryInterface(supp)); nsAutoString path; if (NS_FAILED(currFile->GetPath(path))) continue; int32_t len = path.Length(); if (StringTail(path, 4).LowerCaseEqualsASCII(".ico")) { // Check if the cached ICO file exists bool exists; if (NS_FAILED(currFile->Exists(&exists)) || !exists) continue; // We found an ICO file that exists, so we should remove it currFile->Remove(false); } } while(true); return NS_OK; }
QFile::FileError App::saveXML(const QString& fileName) { QString tempFileName(fileName); tempFileName += ".temp"; QFile file(tempFileName); if (file.open(QIODevice::WriteOnly) == false) return file.error(); QXmlStreamWriter doc(&file); doc.setAutoFormatting(true); doc.setAutoFormattingIndent(1); doc.setCodec("UTF-8"); doc.writeStartDocument(); doc.writeDTD(QString("<!DOCTYPE %1>").arg(KXMLQLCWorkspace)); doc.writeStartElement(KXMLQLCWorkspace); doc.writeAttribute("xmlns", QString("%1%2").arg(KXMLQLCplusNamespace).arg(KXMLQLCWorkspace)); /* Currently active context */ doc.writeAttribute(KXMLQLCWorkspaceWindow, m_contextManager->currentContext()); /* Creator information */ doc.writeStartElement(KXMLQLCCreator); doc.writeTextElement(KXMLQLCCreatorName, APPNAME); doc.writeTextElement(KXMLQLCCreatorVersion, APPVERSION); doc.writeTextElement(KXMLQLCCreatorAuthor, QLCFile::currentUserName()); doc.writeEndElement(); /* Write engine components to the XML document */ m_doc->saveXML(&doc); /* Write virtual console to the XML document */ m_virtualConsole->saveXML(&doc); /* Write Simple Desk to the XML document */ //SimpleDesk::instance()->saveXML(&doc); doc.writeEndElement(); // close KXMLQLCWorkspace /* End the document and close all the open elements */ doc.writeEndDocument(); file.close(); // Save to actual requested file name QFile currFile(fileName); if (currFile.exists() && !currFile.remove()) { qWarning() << "Could not erase" << fileName; return currFile.error(); } if (!file.rename(fileName)) { qWarning() << "Could not rename" << tempFileName << "to" << fileName; return file.error(); } /* Set the file name for the current Doc instance and set it also in an unmodified state. */ setFileName(fileName); m_doc->resetModified(); return QFile::NoError; }
int main(/*int argc, char** argv*/) { int argc = 4; char** argv = new char*[argc]; argv[1] = "--comments"; argv[2] = "Practice.cpp"; argv[3] = "--format"; size_t commandsSize = 0, filesSizes = 0; adjustSizes(argv, argc, commandsSize, filesSizes); Command** commands = new Command*[commandsSize]; File* files = new File [filesSizes]; size_t filePos = 0, commandPos = 0; for (int pos = 1; pos < argc; ++pos) { if (isPath(argv[pos])) { try { File currFile(argv[pos]); files[filePos++] = currFile; } catch (std::exception& e) { std::cerr << e.what() << std::endl; } } else if (isCommand(argv[pos])) { try { commands[commandPos++] = createCommand(argv[pos]); } catch (std::invalid_argument& i) { std::cerr << i.what() << std::endl; } } else std::cerr << "\n The " << pos << " command is invalid! \n"; } try { for (filePos = 0; filePos < filesSizes; ++filePos) executeCommands(files[filePos], commands, commandsSize); } catch (std::invalid_argument& i) { std::cerr << i.what() << std::endl; } catch (std::exception& e) { std::cerr << e.what() << std::endl; } clear(commands, commandsSize, files); delete[] argv; return 0; }