diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-11-05 13:52:31 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-11-05 13:52:31 (GMT) |
commit | f0db119873e45743c04afe87fd2d73095d42b63b (patch) | |
tree | a7d95cdec1bb5c2000e785fd8d595d6ac469811c /Source/CursesDialog | |
parent | f895a94995b918779425b178ebbb865d689d06ed (diff) | |
download | CMake-f0db119873e45743c04afe87fd2d73095d42b63b.zip CMake-f0db119873e45743c04afe87fd2d73095d42b63b.tar.gz CMake-f0db119873e45743c04afe87fd2d73095d42b63b.tar.bz2 |
Reparent file path widget, add tab completion support to path anf file path widget
Diffstat (limited to 'Source/CursesDialog')
-rw-r--r-- | Source/CursesDialog/cmCursesFilePathWidget.cxx | 2 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesFilePathWidget.h | 4 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesPathWidget.cxx | 56 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesStringWidget.cxx | 2 |
4 files changed, 5 insertions, 59 deletions
diff --git a/Source/CursesDialog/cmCursesFilePathWidget.cxx b/Source/CursesDialog/cmCursesFilePathWidget.cxx index c54d2a2..f846fad 100644 --- a/Source/CursesDialog/cmCursesFilePathWidget.cxx +++ b/Source/CursesDialog/cmCursesFilePathWidget.cxx @@ -18,7 +18,7 @@ cmCursesFilePathWidget::cmCursesFilePathWidget(int width, int height, int left, int top) : - cmCursesStringWidget(width, height, left, top) + cmCursesPathWidget(width, height, left, top) { m_Type = cmCacheManager::FILEPATH; } diff --git a/Source/CursesDialog/cmCursesFilePathWidget.h b/Source/CursesDialog/cmCursesFilePathWidget.h index 340c972..dcb1a19 100644 --- a/Source/CursesDialog/cmCursesFilePathWidget.h +++ b/Source/CursesDialog/cmCursesFilePathWidget.h @@ -17,9 +17,9 @@ #ifndef __cmCursesFilePathWidget_h #define __cmCursesFilePathWidget_h -#include "cmCursesStringWidget.h" +#include "cmCursesPathWidget.h" -class cmCursesFilePathWidget : public cmCursesStringWidget +class cmCursesFilePathWidget : public cmCursesPathWidget { public: cmCursesFilePathWidget(int width, int height, int left, int top); diff --git a/Source/CursesDialog/cmCursesPathWidget.cxx b/Source/CursesDialog/cmCursesPathWidget.cxx index e1d5066..846603a 100644 --- a/Source/CursesDialog/cmCursesPathWidget.cxx +++ b/Source/CursesDialog/cmCursesPathWidget.cxx @@ -29,49 +29,6 @@ cmCursesPathWidget::cmCursesPathWidget(int width, int height, m_CurrentIndex = 0; } -void GlobDirs(const std::string& fullPath, - std::vector<std::string>& files, - std::ofstream& of) -{ - if ( fullPath[fullPath.size()-1] != '*' ) - { - files.push_back(fullPath); - return; - } - std::string path = cmSystemTools::GetFilenamePath(fullPath); - std::string ppath = cmSystemTools::GetFilenameName(fullPath); - ppath = ppath.substr(0, ppath.size()-1); - of << "Search in directory: " << path << std::endl; - of << "Search pattern: " << ppath << std::endl; - - cmDirectory d; - if (d.Load(path.c_str())) - { - for (unsigned int i = 0; i < d.GetNumberOfFiles(); ++i) - { - if((std::string(d.GetFile(i)) != ".") - && (std::string(d.GetFile(i)) != "..")) - { - std::string fname = path; - fname +="/"; - fname += d.GetFile(i); - std::string sfname = d.GetFile(i); - if(cmSystemTools::FileIsDirectory(fname.c_str())) - { - of << "Compare: " << sfname.substr(0, ppath.size()) << " and " - << ppath << std::endl; - if ( sfname.size() >= ppath.size() && - sfname.substr(0, ppath.size()) == - ppath ) - { - files.push_back(fname); - } - } - } - } - } -} - void cmCursesPathWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW* w) { m_Cycle = false; @@ -82,7 +39,6 @@ void cmCursesPathWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW* w) void cmCursesPathWidget::OnTab(cmCursesMainForm* fm, WINDOW* w) { - std::ofstream of("lala.log"); std::string::size_type cc; if ( !this->GetString() ) { @@ -93,28 +49,24 @@ void cmCursesPathWidget::OnTab(cmCursesMainForm* fm, WINDOW* w) form_driver(form, REQ_PREV_FIELD); std::string cstr = this->GetString(); cstr = cstr.substr(0, cstr.find_last_not_of(" \t\n\r")+1); - of << "Cstr: " << cstr << " <> " << m_LastString << std::endl; if ( m_LastString != cstr ) { m_Cycle = false; m_CurrentIndex = 0; m_LastGlob = ""; - of << "Reset" << std::endl; } std::string glob; if ( m_Cycle ) { - of << "We are cycling, try same glob" << std::endl; glob = m_LastGlob; } else { glob = cstr + "*"; - of << "Try new glob: " << glob << std::endl; } std::vector<std::string> dirs; - ::GlobDirs(glob.c_str(), dirs, of); + cmSystemTools::SimpleGlob(glob.c_str(), dirs, (m_Type == cmCacheManager::PATH?-1:0)); if ( m_CurrentIndex < dirs.size() ) { cstr = dirs[m_CurrentIndex]; @@ -124,12 +76,6 @@ void cmCursesPathWidget::OnTab(cmCursesMainForm* fm, WINDOW* w) cstr = cstr.substr(0, cstr.size()-1); } - of << "Glob: " << glob << std::endl; - for ( cc =0; cc < dirs.size(); cc ++ ) - { - of << "\t" << cc << ": " << dirs[cc] << std::endl; - } - this->SetString(cstr.c_str()); touchwin(w); wrefresh(w); diff --git a/Source/CursesDialog/cmCursesStringWidget.cxx b/Source/CursesDialog/cmCursesStringWidget.cxx index 9c384af..2654998 100644 --- a/Source/CursesDialog/cmCursesStringWidget.cxx +++ b/Source/CursesDialog/cmCursesStringWidget.cxx @@ -63,7 +63,7 @@ void cmCursesStringWidget::OnReturn(cmCursesMainForm* fm, WINDOW*) } } -void cmCursesStringWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW* w) +void cmCursesStringWidget::OnType(int& key, cmCursesMainForm* fm, WINDOW*) { form_driver(fm->GetForm(), key); } |