QMultiMap<QString,FileAttributes> ListFilesInDirectoryTest(QDir dir, bool Hash) { extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; qt_ntfs_permission_lookup++; // turn checking on QMultiMap<QString, FileAttributes> fileAttHashTable; //making hash table to store file attributes dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); dir.setSorting(QDir::Name); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); if (fileInfo.isFile()) { FileAttributes tempFileAttributes; QDateTime date = fileInfo.lastModified(); QString lastModified = date.toString(); tempFileAttributes.absoluteFilePath = fileInfo.absoluteFilePath(); tempFileAttributes.fileName = fileInfo.fileName(); tempFileAttributes.filePath= fileInfo.path(); if (Hash) tempFileAttributes.md5Hash = GetFileMd5hash(fileInfo.absoluteFilePath()); tempFileAttributes.lastModified = fileInfo.lastModified(); tempFileAttributes.lastRead = fileInfo.lastRead(); tempFileAttributes.created = fileInfo.created(); tempFileAttributes.isHidden = fileInfo.isHidden(); tempFileAttributes.size = fileInfo.size(); tempFileAttributes.owner = fileInfo.owner(); fileAttHashTable.insert(fileInfo.absoluteFilePath(),tempFileAttributes); } } return fileAttHashTable; }
QVariant QSimulatorGalleryResultSet::metaData(int key) const { QFileInfo info = currentFileInfo(); if (key == Utility::FileName) return info.absoluteFilePath(); else if (key == Utility::FilePath) return info.absolutePath(); else if (key == Utility::FileExtension) return info.suffix(); else if (key == Utility::FileSize) return info.size(); else if (key == Utility::LastAccessed) return info.lastRead(); else if (key == Utility::LastModified) return info.lastModified(); else if (key == Utility::Title) return QLatin1String("Image Title of Simulator"); else if (key == Utility::Width) return image.width(); else if (key == Utility::Height) return image.height(); else if (key == Utility::Keywords) return QLatin1String("Simulator, Some Tags, Not read from file yet"); return QVariant(); }
tlp::node addFileNode(const QFileInfo &infos, tlp::Graph *g) { tlp::node n = g->addNode(); _absolutePaths->setNodeValue(n,tlp::QStringToTlpString(infos.absoluteFilePath())); _baseNames->setNodeValue(n,tlp::QStringToTlpString(infos.baseName())); _createdDates->setNodeValue(n,tlp::QStringToTlpString(infos.created().toString())); _fileNames->setNodeValue(n,tlp::QStringToTlpString(infos.fileName())); _isDir->setNodeValue(n,infos.isDir()); _isExecutable->setNodeValue(n,infos.isExecutable()); _isReadable->setNodeValue(n,infos.isReadable()); _isSymlink->setNodeValue(n,infos.isSymLink()); _isWritable->setNodeValue(n,infos.isWritable()); _lastModifiedDates->setNodeValue(n,tlp::QStringToTlpString(infos.lastModified().toString())); _lastReadDates->setNodeValue(n,tlp::QStringToTlpString(infos.lastRead().toString())); _owners->setNodeValue(n,tlp::QStringToTlpString(infos.owner())); _permissions->setNodeValue(n,(int)(infos.permissions())); _suffixes->setNodeValue(n,tlp::QStringToTlpString(infos.suffix())); _sizes->setNodeValue(n,infos.size()); if (_useIcons) { std::string extension = infos.suffix().toStdString(); if (infos.isDir()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FolderO); tlp::ColorProperty *viewColor = graph->getProperty<tlp::ColorProperty>("viewColor"); viewColor->setNodeValue(n, dirColor); } else if (std::find(commonTextFilesExt.begin(), commonTextFilesExt.end(), extension) != commonTextFilesExt.end()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileTextO); } else if (std::find(commonArchiveFilesExt.begin(), commonArchiveFilesExt.end(), extension) != commonArchiveFilesExt.end()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileArchiveO); } else if (std::find(commonAudioFilesExt.begin(), commonAudioFilesExt.end(), extension) != commonAudioFilesExt.end()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileAudioO); } else if (std::find(commonImageFilesExt.begin(), commonImageFilesExt.end(), extension) != commonImageFilesExt.end()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileImageO); } else if (std::find(commonVideoFilesExt.begin(), commonVideoFilesExt.end(), extension) != commonVideoFilesExt.end()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileVideoO); } else if (std::find(commonDevFilesExt.begin(), commonDevFilesExt.end(), extension) != commonDevFilesExt.end()) { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileCodeO); } else if (extension == "pdf") { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FilePdfO); } else if (extension == "doc" || extension == "docx") { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileWordO); } else if (extension == "xls" || extension == "xlsx") { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FileExcelO); } else if (extension == "ppt" || extension == "pptx") { _fontAwesomeIcon->setNodeValue(n, tlp::TulipFontAwesome::FilePowerpointO); } } return n; }
//! [6] GeneralTab::GeneralTab(const QFileInfo &fileInfo, QWidget *parent) : QWidget(parent) { QLabel *fileNameLabel = new QLabel(tr("File Name:")); QLineEdit *fileNameEdit = new QLineEdit(fileInfo.fileName()); QLabel *pathLabel = new QLabel(tr("Path:")); QLabel *pathValueLabel = new QLabel(fileInfo.absoluteFilePath()); pathValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); QLabel *sizeLabel = new QLabel(tr("Size:")); qlonglong size = fileInfo.size()/1024; QLabel *sizeValueLabel = new QLabel(tr("%1 K").arg(size)); sizeValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); QLabel *lastReadLabel = new QLabel(tr("Last Read:")); QLabel *lastReadValueLabel = new QLabel(fileInfo.lastRead().toString()); lastReadValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); QLabel *lastModLabel = new QLabel(tr("Last Modified:")); QLabel *lastModValueLabel = new QLabel(fileInfo.lastModified().toString()); lastModValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); QSlider* redSlider = new QSlider(Qt::Horizontal); redSlider->setTickPosition(QSlider::TicksBelow); redSlider->setTickInterval(5); QSlider* greenSlider = new QSlider(Qt::Horizontal); greenSlider->setTickPosition(QSlider::TicksBelow); greenSlider->setTickInterval(5); QSlider* blueSlider = new QSlider(Qt::Horizontal); blueSlider->setTickPosition(QSlider::TicksBelow); blueSlider->setTickInterval(5); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(fileNameLabel); mainLayout->addWidget(fileNameEdit); mainLayout->addWidget(pathLabel); mainLayout->addWidget(pathValueLabel); mainLayout->addWidget(sizeLabel); mainLayout->addWidget(sizeValueLabel); mainLayout->addWidget(lastReadLabel); mainLayout->addWidget(lastReadValueLabel); mainLayout->addWidget(lastModLabel); mainLayout->addWidget(lastModValueLabel); mainLayout->addWidget(redSlider); mainLayout->addWidget(greenSlider); mainLayout->addWidget(blueSlider); mainLayout->addStretch(1); setLayout(mainLayout); }
void QLocalFs::operationListChildren( QNetworkOperation *op ) { #ifdef QLOCALFS_DEBUG qDebug( "QLocalFs: operationListChildren" ); #endif op->setState( StInProgress ); dir = QDir( url()->path() ); dir.setNameFilter( url()->nameFilter() ); dir.setMatchAllDirs( TRUE ); if ( !dir.isReadable() ) { QString msg = tr( "Could not read directory\n%1" ).arg( url()->path() ); op->setState( StFailed ); op->setProtocolDetail( msg ); op->setErrorCode( (int)ErrListChildren ); emit finished( op ); return; } const QFileInfoList *filist = dir.entryInfoList( QDir::All | QDir::Hidden | QDir::System ); if ( !filist ) { QString msg = tr( "Could not read directory\n%1" ).arg( url()->path() ); op->setState( StFailed ); op->setProtocolDetail( msg ); op->setErrorCode( (int)ErrListChildren ); emit finished( op ); return; } emit start( op ); QFileInfoListIterator it( *filist ); QFileInfo *fi; QValueList<QUrlInfo> infos; while ( ( fi = it.current() ) != 0 ) { ++it; infos << QUrlInfo( fi->fileName(), convertPermissions(fi), fi->owner(), fi->group(), fi->size(), fi->lastModified(), fi->lastRead(), fi->isDir(), fi->isFile(), fi->isSymLink(), fi->isWritable(), fi->isReadable(), fi->isExecutable() ); } emit newChildren( infos, op ); op->setState( StDone ); emit finished( op ); }
void Q3LocalFs::operationListChildren( Q3NetworkOperation *op ) { #ifdef QLOCALFS_DEBUG qDebug( "Q3LocalFs: operationListChildren" ); #endif op->setState( StInProgress ); dir = QDir( url()->path() ); dir.setNameFilter( url()->nameFilter() ); dir.setMatchAllDirs( true ); if ( !dir.isReadable() ) { QString msg = tr( "Could not read directory\n%1" ).arg( url()->path() ); op->setState( StFailed ); op->setProtocolDetail( msg ); op->setErrorCode( (int)ErrListChildren ); emit finished( op ); return; } QFileInfoList filist = dir.entryInfoList(QDir::All | QDir::Hidden | QDir::System); if ( filist.isEmpty() ) { QString msg = tr( "Could not read directory\n%1" ).arg( url()->path() ); op->setState( StFailed ); op->setProtocolDetail( msg ); op->setErrorCode( (int)ErrListChildren ); emit finished( op ); return; } emit start( op ); Q3ValueList<QUrlInfo> infos; for (int i = 0; i < filist.size(); ++i) { QFileInfo fi = filist.at(i); infos << QUrlInfo( fi.fileName(), convertPermissions(&fi), fi.owner(), fi.group(), fi.size(), fi.lastModified(), fi.lastRead(), fi.isDir(), fi.isFile(), fi.isSymLink(), fi.isWritable(), fi.isReadable(), fi.isExecutable() ); } emit newChildren( infos, op ); op->setState( StDone ); emit finished( op ); }
//////////////////////////////////////////////////////////////////////////////// // // GeneralTab // //////////////////////////////////////////////////////////////////////////////// GeneralTab::GeneralTab(const QFileInfo& fileInfo, QWidget* parent) { auto fileNameLabel = new QLabel(tr("File Name:")); auto fileNameEdit = new QLineEdit(fileInfo.fileName()); auto pathLabel = new QLabel(tr("Path:")); auto pathValueLabel = new QLabel(fileInfo.absoluteFilePath()); pathValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); auto sizeLabel = new QLabel(tr("Size:")); auto size = fileInfo.size() / 1024; auto sizeValueLabel = new QLabel(tr("%1 K").arg(size)); sizeValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); auto lastReadLabel = new QLabel(tr("Last Read:")); auto lastReadValueLabel = new QLabel(fileInfo.lastRead().toString()); lastReadValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); auto lastModLabel = new QLabel(tr("Last Modified:")); auto lastModValueLabel = new QLabel(fileInfo.lastModified().toString()); lastModValueLabel->setFrameStyle(QFrame::Panel | QFrame::Sunken); auto layout = new QVBoxLayout; layout->addWidget(fileNameLabel); layout->addWidget(fileNameEdit); layout->addWidget(pathLabel); layout->addWidget(pathValueLabel); layout->addWidget(sizeLabel); layout->addWidget(sizeValueLabel); layout->addWidget(lastReadLabel); layout->addWidget(lastReadValueLabel); layout->addWidget(lastModLabel); layout->addWidget(lastModValueLabel); layout->addStretch(1); this->setLayout(layout); }
/*! returns a string containing the general information about the file \c name and some content specific information (number of columns and lines for ASCII, color-depth for images etc.). */ QString FileDataSource::fileInfoString(const QString &name){ QString infoString; QFileInfo fileInfo; QString fileTypeString; QIODevice *file = new QFile(name); QString fileName; if (name.at(0) != QDir::separator()) { fileName = QDir::homePath() + QDir::separator() + name; } else { fileName = name; } if(file==0) file = new QFile(fileName); if (file->open(QIODevice::ReadOnly)){ QStringList infoStrings; //general information about the file infoStrings << "<u><b>" + fileName + "</b></u><br>"; fileInfo.setFile(fileName); infoStrings << i18n("Readable: %1", fileInfo.isReadable() ? i18n("yes") : i18n("no")); infoStrings << i18n("Writable: %1", fileInfo.isWritable() ? i18n("yes") : i18n("no")); infoStrings << i18n("Executable: %1", fileInfo.isExecutable() ? i18n("yes") : i18n("no")); infoStrings << i18n("Created: %1", fileInfo.created().toString()); infoStrings << i18n("Last modified: %1", fileInfo.lastModified().toString()); infoStrings << i18n("Last read: %1", fileInfo.lastRead().toString()); infoStrings << i18n("Owner: %1", fileInfo.owner()); infoStrings << i18n("Group: %1", fileInfo.group()); infoStrings << i18n("Size: %1", i18np("%1 cByte", "%1 cBytes", fileInfo.size())); #ifdef HAVE_FITS if (fileName.endsWith(QLatin1String(".fits"))) { FITSFilter* fitsFilter = new FITSFilter; infoStrings << i18n("Images: %1", QString::number(fitsFilter->imagesCount(fileName) )); infoStrings << i18n("Tables: %1", QString::number(fitsFilter->tablesCount(fileName) )); delete fitsFilter; } #endif // file type and type specific information about the file #ifdef Q_OS_LINUX QProcess *proc = new QProcess(); QStringList args; args<<"-b"<<fileName; proc->start( "file", args); if(proc->waitForReadyRead(1000) == false){ infoStrings << i18n("Could not open file %1 for reading.", fileName); }else{ fileTypeString = proc->readLine(); if( fileTypeString.contains(i18n("cannot open")) ) fileTypeString=""; else { fileTypeString.remove(fileTypeString.length()-1,1); // remove '\n' } } infoStrings << i18n("File type: %1", fileTypeString); #endif //TODO depending on the file type, generate additional information about the file: //Number of lines for ASCII, color-depth for images etc. Use the specific filters here. // port the old labplot1.6 code. if( fileTypeString.contains("ASCII")){ infoStrings << "<br/>"; infoStrings << i18n("Number of columns: %1", AsciiFilter::columnNumber(fileName)); infoStrings << i18n("Number of lines: %1", AsciiFilter::lineNumber(fileName)); } infoString += infoStrings.join("<br/>"); } else{ infoString += i18n("Could not open file %1 for reading.", fileName); } return infoString; }