本文整理汇总了C++中Folder::dir方法的典型用法代码示例。如果您正苦于以下问题:C++ Folder::dir方法的具体用法?C++ Folder::dir怎么用?C++ Folder::dir使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Folder
的用法示例。
在下文中一共展示了Folder::dir方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testIfFolderIsAddable
void FileSystemScanner::testIfFolderIsAddable(QDir* dir, bool recursive) const throw(EngineException*)
{
tracer->sinvoked(__func__) << dir->absPath() << ", recursive: " << recursive << "..." << endl;
// test if the given folder is already added
Folder* folder;
for (folder = m_engine->sourceDirs()->first(); folder; folder = m_engine->sourceDirs()->next() ) {
if (*(folder->dir()) == *dir) {
QString detailMsg = QString(i18n("The folder you have chosen is already added to KPhotoBook.\n"
"Folder: %1")).arg(folder->dir()->absPath());
throw new EngineException(
i18n("You cannot add the same folder more than once to KPhotoBook."),
detailMsg
);
}
QString folderPath = folder->dir()->absPath();
QString newFolderPath = dir->absPath();
if (folder->recursive()) {
// test if the new folder is a subfolder of the current sourceFolder
if (newFolderPath.startsWith(folderPath)) {
QString detailMsg = QString(i18n("The folder you have chosen is a subfolder of a recursively added folder.\n"
"Folder: %1\nNew folder: %2")).arg(folderPath).arg(newFolderPath);
throw new EngineException(
i18n("You cannot add a folder which is a subfolder of an already recursively added folder because"
"the chosen folder is already added implicitely."),
detailMsg
);
}
}
if (recursive) {
// test if the current folder is a subfolder of the new folder
if (folderPath.startsWith(newFolderPath)) {
QString detailMsg = QString(i18n("The folder you have chosen to add recursively is the parentfolder of at least "
"one already added folders.\nFolder: %1\nNew folder: %2")).arg(folderPath).arg(newFolderPath);
throw new EngineException(
i18n("You cannot add the parentfolder of an already added folder recursively."),
detailMsg
);
}
}
}
tracer->debug(__func__, "ended");
}
示例2: rescanFolders
void FileSystemScanner::rescanFolders(QPtrList<Folder>* folders, bool forceEXIF, bool fast)
{
Folder* folder = 0;
for (folder = folders->first(); folder; folder = folders->next()) {
QString currentFolderPath = folder->dir()->absPath();
tracer->sdebug(__func__) << "rescanning folder: " << folder->id() << ": " << currentFolderPath << endl;
if (folder->dir()->exists()) {
folder->setFound(true);
if (!fast) {
rescanFolder(folder, forceEXIF);
if (m_cancel) {
return;
}
}
if (folder->children() && folder->children()->count()) {
rescanFolders(folder->children(), forceEXIF, fast);
}
// scan the filesystem for new folders
if (!fast && folder->recursive()) {
delete m_loopDetectionHelper;
m_loopDetectionHelper = new QPtrList<QString>;
m_loopDetectionHelper->setAutoDelete(true);
m_loopDetectionHelper->append(new QString(folder->dir()->canonicalPath()));
addFolders(folder);
}
} else {
folder->setFound(false);
tracer->sdebug(__func__) << "folder: " << folder->id() << ": '" << currentFolderPath << "' not found" << endl;
emit(progress_folderNotFound(currentFolderPath));
}
}
}
示例3: initData
void ImageImporter::initData() {
const KMountPoint::List lst = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions);
for ( KMountPoint::List::ConstIterator it = lst.begin() ; it != lst.end() ; ++it ) {
//so, I only show devices that are mountable by a user
if (getuid() == 0 || (*it)->mountOptions().grep("user").size() > 0) {
QString x = QString("%1 (%2)").arg((*it)->mountedFrom()).arg((*it)->mountPoint());
m_cmbSourceDevice->insertItem(x);
}
}
//after adding all available mountpoints, check the status of the current
slotUpdateMountStatus();
m_cmbSourceFolder->insertItem(Settings::imageImporterSourceFolder());
m_cmbSourceFolder->setCurrentText(Settings::imageImporterSourceFolder());
m_cmbSourceDevice->setCurrentText(Settings::imageImporterSourceDevice());
m_txtSourceFilename->setText(Settings::imageImporterSourceFilenameRegexp());
m_chkIgnoreCase->setChecked(Settings::imageImporterFilenameIgnoreCase());
m_chkSrcIncludeSubfolders->setChecked(Settings::imageImporterSourceIncludeSubfolders());
m_chkSrcRemoveFilesFromSrc->setChecked(Settings::imageImporterSourceRemoveAfterTransfer());
m_groupArchive->setChecked(Settings::imageImporterArchiveImages());
m_txtArchiveBaseFolder->setText(Settings::imageImporterArchiveBaseFolder());
m_txtArchiveSubfolders->setText(Settings::imageImporterArchiveSubfolders());
m_txtArchiveFilename->setText(Settings::imageImporterArchiveFilename());
m_chkArchiveLowercase->setChecked(Settings::imageImporterArchiveLowercaseFilenames());
//add all dirs from the album to the list of target folders
Folder* sourceDir;
for (
sourceDir = m_photobook->engine()->sourceDirs()->first();
sourceDir;
sourceDir = m_photobook->engine()->sourceDirs()->next()
)
{
m_cmbDestBasefolder->insertItem(sourceDir->dir()->absPath());
}
if (m_cmbDestBasefolder->count() == 0) {
QMessageBox::information( this, "No Folders Available",
"There are no Folders in your album!<br>"
"Either create a new album and add Folders to "
"it, or open another available album." );
}
//m_cmbDestBasefolder->insertItem(Settings::imageImporterDestBaseFolder());
m_cmbDestBasefolder->setCurrentText(Settings::imageImporterDestBaseFolder());
m_txtDestSubfolders->setText(Settings::imageImporterDestSubfolders());
m_txtDestFilename->setText(Settings::imageImporterDestFilenames());
m_chkDestLowercase->setChecked(Settings::imageImporterDestLowercaseFilenames());
}
示例4: addFolder
Folder* FileSystemScanner::addFolder(QDir* dir, bool recursive) throw(EngineException*)
{
// test if the given folder is addable
testIfFolderIsAddable(dir, recursive);
tracer->sdebug(__func__) << "adding folder: " << dir->absPath() << ", recursive: " << recursive << "..." << endl;
reset();
m_engine->dirtyfy();
Folder* folder = new Folder(m_engine->m_nextSourceDirId++, dir, recursive);
folder->setFound(true);
m_engine->m_sourceDirs->append(folder);
m_engine->m_sourceDirDict->insert(folder->id(), folder);
// add all files in the folder
rescanFolder(folder, false);
emit(newFolder(folder));
if (m_cancel) {
return folder;
}
// add all folders below the given folder
if (recursive) {
delete m_loopDetectionHelper;
m_loopDetectionHelper = new QPtrList<QString>;
m_loopDetectionHelper->setAutoDelete(true);
m_loopDetectionHelper->append(new QString(folder->dir()->canonicalPath()));
addFolders(folder);
}
return folder;
}
示例5: addFolders
void FileSystemScanner::addFolders(Folder* parent)
{
tracer->sinvoked(__func__) << "with folder: " << parent->dir()->absPath() << endl;
// get all folders in the current directory
const QFileInfoList* subfolderlist = parent->dir()->entryInfoList(QDir::Dirs);
if (subfolderlist) {
QFileInfoListIterator iterator(*subfolderlist);
QFileInfo* fileInfo = 0;
while ((fileInfo = iterator.current()) != 0) {
// ignore ./.. and hidden folders (beginning with .)
// and ignore folders called 'ThumbNails'
if (!fileInfo->fileName().startsWith(".")
&& mustHandleFolder(fileInfo->fileName())
) {
QDir subfolder(fileInfo->absFilePath());
tracer->sdebug(__func__) << "handling subfolder: " << subfolder.absPath() << endl;
bool loopDetected = false;
// we have to test if this folder is part of a loop or if it is the superfolder of an already added dir
QString* alreadyAddedFolder;
for (alreadyAddedFolder = m_loopDetectionHelper->first(); alreadyAddedFolder; alreadyAddedFolder = m_loopDetectionHelper->next()) {
if (*alreadyAddedFolder == subfolder.canonicalPath()) {
loopDetected = true;
tracer->swarning(__func__) << "loop detected, not adding folder again: '" << fileInfo->absFilePath()
<< "' is pointing to '" << *alreadyAddedFolder << "'" << endl;
emit(progress_loopDetected(fileInfo->absFilePath(), *alreadyAddedFolder));
break;
}
if ((*alreadyAddedFolder).startsWith(subfolder.canonicalPath(), true)) {
loopDetected = true;
tracer->swarning(__func__) << "loop detected, not adding folder because it is a super directory ("
<< subfolder.canonicalPath() << ") of an already added folder: '" << *alreadyAddedFolder << "'" << endl;
emit(progress_loopDetected(subfolder.canonicalPath(), *alreadyAddedFolder));
break;
}
}
if (!loopDetected) {
Folder* existingFolder = 0;
// we have to test if the folder is already processed to prevent endless loops
QIntDictIterator<Folder> it(*m_engine->m_sourceDirDict);
while (!existingFolder && it.current()) {
Folder* current = it.current();
if (current->dir()->canonicalPath() == subfolder.canonicalPath()) {
existingFolder = current;
tracer->sdebug(__func__) << "folder is already added: " << current->dir()->canonicalPath() << endl;
emit(progress_folderAlreadyAdded(current->dir()->canonicalPath()));
}
++it;
}
if (existingFolder) {
// add the directory to the list of handled directories for detecting loops
m_loopDetectionHelper->append(new QString(existingFolder->dir()->canonicalPath()));
// make recursive call
addFolders(existingFolder);
} else {
tracer->sdebug(__func__) << "found new folder to add " << fileInfo->absFilePath() << endl;
// create the new folder
Folder* child = new Folder(m_engine->m_nextSourceDirId++, new QDir(fileInfo->absFilePath()), false);
child->setFound(true);
// add the current directory to the tree
child->setParent(parent);
// put the folder into the folder dictionary (id to folder map)
m_engine->m_sourceDirDict->insert(child->id(), child);
// add the directory to the list of handled directories for detcting loops
m_loopDetectionHelper->append(new QString(child->dir()->canonicalPath()));
// add all files in the current folder
rescanFolder(child, false);
emit(newFolder(child));
if (m_cancel) {
return;
}
// make recursive call
addFolders(child);
}
}
}
++iterator;
//.........这里部分代码省略.........