X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d143b6689b9ce3f02398d1ee4129f6a21024183..bc9d3d911cfb51f612a699d7fb00f57eb5b2097c:/samples/fswatcher/fswatcher.cpp diff --git a/samples/fswatcher/fswatcher.cpp b/samples/fswatcher/fswatcher.cpp index f8cd8976e5..0a9753d9f5 100644 --- a/samples/fswatcher/fswatcher.cpp +++ b/samples/fswatcher/fswatcher.cpp @@ -17,7 +17,7 @@ #include "wx/wx.h" #endif -#ifndef __WXMSW__ +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "../sample.xpm" #endif @@ -351,15 +351,18 @@ void MyFrame::AddEntry(wxFSWPathType type, wxString filename) filename, type == wxFSWPath_Dir ? "directory" : "directory tree"); + wxString prefix; bool ok = false; switch ( type ) { case wxFSWPath_Dir: ok = m_watcher->Add(wxFileName::DirName(filename)); + prefix = "Dir: "; break; case wxFSWPath_Tree: ok = m_watcher->AddTree(wxFileName::DirName(filename)); + prefix = "Tree: "; break; case wxFSWPath_File: @@ -373,7 +376,10 @@ void MyFrame::AddEntry(wxFSWPathType type, wxString filename) return; } - m_filesList->InsertItem(m_filesList->GetItemCount(), filename); + // Prepend 'prefix' to the filepath, partly for display + // but mostly so that OnRemove() can work out the correct way to remove it + m_filesList->InsertItem(m_filesList->GetItemCount(), + prefix + wxFileName::DirName(filename).GetFullPath()); } void MyFrame::OnRemove(wxCommandEvent& WXUNUSED(event)) @@ -383,10 +389,23 @@ void MyFrame::OnRemove(wxCommandEvent& WXUNUSED(event)) if (idx == -1) return; - wxString path = m_filesList->GetItemText(idx); - + bool ret; + wxString path; // TODO we know it is a dir, but it doesn't have to be - if (!m_watcher->Remove(wxFileName::DirName(path))) + if (m_filesList->GetItemText(idx).StartsWith("Dir: ", &path)) + { + ret = m_watcher->Remove(wxFileName::DirName(path)); + } + else if (m_filesList->GetItemText(idx).StartsWith("Tree: ", &path)) + { + ret = m_watcher->RemoveTree(wxFileName::DirName(path)); + } + else + { + wxFAIL_MSG("Unexpected item in wxListView."); + } + + if (!ret) { wxLogError("Error removing '%s' from watched paths", path); }