bool FileEnumerator::MoveNext() { bool result = false; if (!m_StartupDir.empty()) { if (m_CurrentNonRecursiveEnumerator == NULL) m_CurrentNonRecursiveEnumerator = new NonRecursiveFileEnumerator(NULL, m_StartupDir.c_str()); // Enter directory if mode is recursive if ((m_Flags & DIRENUM_RECURSIVE_MODE) != 0 && !m_CurrentNonRecursiveEnumerator->Bof() && !m_CurrentNonRecursiveEnumerator->Eof() && IsDir(CurrentPath())) { //std::string s = m_EntriesEnumerator->StartupDir(); std::string s = JoinPath(CurrentDir(), m_CurrentNonRecursiveEnumerator->CurrentFileName()); m_CurrentNonRecursiveEnumerator = new NonRecursiveFileEnumerator(m_CurrentNonRecursiveEnumerator, s.c_str()); } // Find next entry result = m_CurrentNonRecursiveEnumerator->MoveNext(); while (!result && m_CurrentNonRecursiveEnumerator->Parent() != NULL) { // Go to the parent directory NonRecursiveFileEnumerator* p = m_CurrentNonRecursiveEnumerator; m_CurrentNonRecursiveEnumerator = p->Parent(); delete p; result = m_CurrentNonRecursiveEnumerator->MoveNext(); } m_Flags &= ~DIRENUM_CURRENT_CACHED; } return result; }
void EffectDock::Explore(){ QDesktopServices::openUrl(QUrl::fromLocalFile(CurrentPath())); }
void EffectDock::AddFolder(){ QString srcDir = QFileDialog::getExistingDirectory(this,QStringLiteral("添加目录"),".", QFileDialog::ShowDirsOnly|QFileDialog::DontResolveSymlinks); FAIL_RET_VOID(!srcDir.isEmpty()); FolderCopyDlg(srcDir,CurrentPath()).Run(); }