~x3lectric/xbmc/svn-trunk

« back to all changes in this revision

Viewing changes to xbmc/GUIDialogFileBrowser.cpp

  • Committer: spiff_
  • Date: 2010-04-26 19:33:27 UTC
  • Revision ID: svn-v4:568bbfeb-2a22-0410-94d2-cc84cf5bfa90:trunk:29518
added: ability to browse for a file in single-list mode

Show diffs side-by-side

added added

removed removed

Lines of Context:
680
680
}
681
681
 
682
682
// same as above, starting in a single directory
683
 
bool CGUIDialogFileBrowser::ShowAndGetFile(const CStdString &directory, const CStdString &mask, const CStdString &heading, CStdString &path, bool useThumbs /* = false */, bool useFileDirectories /* = false */)
 
683
bool CGUIDialogFileBrowser::ShowAndGetFile(const CStdString &directory, const CStdString &mask, const CStdString &heading, CStdString &path, bool useThumbs /* = false */, bool useFileDirectories /* = false */, bool singleList /* = false */)
684
684
{
685
685
  CGUIDialogFileBrowser *browser = new CGUIDialogFileBrowser();
686
686
  if (!browser)
688
688
  g_windowManager.AddUniqueInstance(browser);
689
689
 
690
690
  browser->m_useFileDirectories = useFileDirectories;
 
691
  browser->m_browsingForImages = useThumbs;
 
692
  browser->SetHeading(heading);
691
693
 
692
694
  // add a single share for this directory
693
 
  VECSOURCES shares;
694
 
  CMediaSource share;
695
 
  share.strPath = directory;
696
 
  CUtil::RemoveSlashAtEnd(share.strPath); // this is needed for the dodgy code in WINDOW_INIT
697
 
  shares.push_back(share);
698
 
  browser->m_browsingForImages = useThumbs;
699
 
  browser->SetHeading(heading);
700
 
  browser->SetSources(shares);
 
695
  if (!singleList)
 
696
  {
 
697
    VECSOURCES shares;
 
698
    CMediaSource share;
 
699
    share.strPath = directory;
 
700
    CUtil::RemoveSlashAtEnd(share.strPath); // this is needed for the dodgy code in WINDOW_INIT
 
701
    shares.push_back(share);
 
702
    browser->SetSources(shares);
 
703
  }
 
704
  else
 
705
  {
 
706
    browser->m_vecItems->Clear();
 
707
    CDirectory::GetDirectory(directory,*browser->m_vecItems);
 
708
    CFileItemPtr item(new CFileItem("file://Browse", false));
 
709
    item->SetLabel(g_localizeStrings.Get(20153));
 
710
    item->SetIconImage("DefaultFolder.png");
 
711
    browser->m_vecItems->Add(item);
 
712
    browser->m_singleList = true;
 
713
  }
701
714
  CStdString strMask = mask;
702
715
  if (mask == "/")
703
716
    browser->m_browsingForFolders=1;
717
730
  bool confirmed(browser->IsConfirmed());
718
731
  if (confirmed)
719
732
    path = browser->m_selectedPath;
 
733
  if (path == "file://Browse")
 
734
  { // "Browse for thumb"
 
735
    g_windowManager.Remove(browser->GetID());
 
736
    delete browser;
 
737
    VECSOURCES shares;
 
738
    g_mediaManager.GetLocalDrives(shares);
 
739
 
 
740
    return ShowAndGetFile(shares, mask, heading, path, useThumbs,useFileDirectories);
 
741
  }
720
742
  g_windowManager.Remove(browser->GetID());
721
743
  delete browser;
722
744
  return confirmed;