Beispiel #1
0
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;
}
Beispiel #2
0
void EffectDock::Explore(){
    QDesktopServices::openUrl(QUrl::fromLocalFile(CurrentPath()));
}
Beispiel #3
0
void EffectDock::AddFolder(){
    QString srcDir = QFileDialog::getExistingDirectory(this,QStringLiteral("添加目录"),".",
        QFileDialog::ShowDirsOnly|QFileDialog::DontResolveSymlinks);
    FAIL_RET_VOID(!srcDir.isEmpty());
    FolderCopyDlg(srcDir,CurrentPath()).Run();
}