void clTreeCtrlPanel::GetSelections(wxArrayString& folders, wxArrayTreeItemIds& folderItems, wxArrayString& files, wxArrayTreeItemIds& fileItems) { folders.clear(); files.clear(); folderItems.clear(); fileItems.clear(); wxArrayTreeItemIds items; if(GetTreeCtrl()->GetSelections(items)) { for(size_t i = 0; i < items.size(); ++i) { clTreeCtrlData* cd = GetItemData(items.Item(i)); if(cd) { if(cd->IsFile()) { files.Add(cd->GetPath()); fileItems.Add(items.Item(i)); } else if(cd->IsFolder()) { folders.Add(cd->GetPath()); folderItems.Add(items.Item(i)); } } } } }
bool GuideCamera::EnumCameras(wxArrayString& names, wxArrayString& ids) { names.clear(); names.push_back(wxString::Format(_("Camera %d"), 1)); ids.clear(); ids.push_back(DEFAULT_CAMERA_ID); return false; }
void wxCmdLineParserData::SetArguments(int argc, char **argv) { m_arguments.clear(); // Command-line arguments are supposed to be in the user locale encoding // (what else?) but wxLocale probably wasn't initialized yet as we're // called early during the program startup and so our locale might not have // been set from the environment yet. To work around this problem we // temporarily change the locale here. The only drawback is that changing // the locale is thread-unsafe but precisely because we're called so early // it's hopefully safe to assume that no other threads had been created yet. char * const locOld = SetAllLocaleFacets(""); wxON_BLOCK_EXIT1( SetAllLocaleFacets, locOld ); for ( int n = 0; n < argc; n++ ) { // try to interpret the string as being in the current locale wxString arg(argv[n]); // but just in case we guessed wrongly and the conversion failed, do // try to salvage at least something if ( arg.empty() && argv[n][0] != '\0' ) arg = wxString(argv[n], wxConvISO8859_1); m_arguments.push_back(arg); } }
void SearchThread::GetFiles(const SearchData* data, wxArrayString& files) { std::set<wxString> scannedFiles; const wxArrayString& rootDirs = data->GetRootDirs(); files = data->GetFiles(); // Remove files that do not match our search criteria FilterFiles(files, data); // Populate "scannedFiles" with list of files to scan scannedFiles.insert(files.begin(), files.end()); for(size_t i = 0; i < rootDirs.size(); ++i) { // make sure it's really a dir (not a fifo, etc.) DirTraverser traverser(data->GetExtensions()); wxDir dir(rootDirs.Item(i)); dir.Traverse(traverser); wxArrayString& someFiles = traverser.GetFiles(); for(size_t j = 0; j < someFiles.Count(); ++j) { if(scannedFiles.count(someFiles.Item(j)) == 0) { files.Add(someFiles.Item(j)); scannedFiles.insert(someFiles.Item(j)); } } } files.clear(); std::for_each(scannedFiles.begin(), scannedFiles.end(), [&](const wxString& file) { files.Add(file); }); }
void SearchThread::GetFiles(const SearchData* data, wxArrayString& files) { wxStringSet_t scannedFiles; const wxArrayString& rootDirs = data->GetRootDirs(); files = data->GetFiles(); // Populate "scannedFiles" with list of files to scan scannedFiles.insert(files.begin(), files.end()); for(size_t i = 0; i < rootDirs.size(); ++i) { // make sure it's really a dir (not a fifo, etc.) clFilesScanner scanner; std::vector<wxString> filesV; if(scanner.Scan(rootDirs.Item(i), filesV, data->GetExtensions())) { std::for_each(filesV.begin(), filesV.end(), [&](const wxString& file) { scannedFiles.insert(file); }); } } files.clear(); files.Alloc(scannedFiles.size()); std::for_each(scannedFiles.begin(), scannedFiles.end(), [&](const wxString& file) { files.Add(file); }); // Filter all non matching files FilterFiles(files, data); }
void wxCmdLineParserData::SetArguments(int argc, wxChar **argv) { m_arguments.clear(); for ( int n = 0; n < argc; n++ ) { m_arguments.push_back(argv[n]); } }
void wxCmdLineParserData::SetArguments(int argc, char **argv) { m_arguments.clear(); for ( int n = 0; n < argc; n++ ) { m_arguments.push_back(wxString::FromAscii(argv[n])); } }
void PHPWorkspace::GetWorkspaceFiles(wxArrayString& workspaceFiles, wxProgressDialog* progress) const { wxStringSet_t files; GetWorkspaceFiles(files, progress); workspaceFiles.clear(); wxStringSet_t::const_iterator iter = files.begin(); for(; iter != files.end(); ++iter) { workspaceFiles.Add(*iter); } }
void wxCmdLineParserData::SetArguments(const wxString& cmdLine) { m_arguments.clear(); m_arguments.push_back(wxTheApp->GetAppName()); wxArrayString args = wxCmdLineParser::ConvertStringToArgs(cmdLine); WX_APPEND_ARRAY(m_arguments, args); }
void tcScenarioDialog::GetSideList(wxArrayString& sideList) { sideList.clear(); for (size_t n=0; n<countrySelection.size(); n++) { wxString s = countrySelection[n]->GetValue(); if (s.size() > 0) sideList.push_back(s); } }
void wxGenericDirCtrl::GetPaths(wxArrayString& paths) const { paths.clear(); wxArrayTreeItemIds items; m_treeCtrl->GetSelections(items); for ( unsigned n = 0; n < items.size(); n++ ) { wxTreeItemId treeid = items[n]; paths.push_back(GetPath(treeid)); } }
void wxGenericDirCtrl::GetPaths(wxArrayString& paths) const { paths.clear(); wxArrayTreeItemIds items; m_treeCtrl->GetSelections(items); for ( unsigned n = 0; n < items.size(); n++ ) { wxTreeItemId treeid = items[n]; wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(treeid); paths.Add(data->m_path); } }
void wxCmdLineParserData::SetArguments(const wxString& cmdLine) { m_arguments.clear(); if(wxTheApp && wxTheApp->argc > 0) m_arguments.push_back(wxTheApp->argv[0]); else m_arguments.push_back(wxEmptyString); wxArrayString args = wxCmdLineParser::ConvertStringToArgs(cmdLine); WX_APPEND_ARRAY(m_arguments, args); }
size_t LocalWorkspace::GetPinnedProjects(wxArrayString& projects) { projects.clear(); if(!SanityCheck()) { return 0; } wxXmlNode* node = XmlUtils::FindFirstByTagName(m_doc.GetRoot(), "PinnedProjects"); if(!node) return 0; // Read all projects wxXmlNode* child = node->GetChildren(); while(child) { if(child->GetName() == "Project") { projects.Add(child->GetAttribute("Name")); } child = child->GetNext(); } return projects.size(); }
bool Config::getValue(const wxString& key, wxArrayString& value) { wxString s; if (!getValue(key, s)) return false; value.clear(); wxString item; size_t pos = 0, sep = s.find(','); while (sep != wxString::npos) { item = s.substr(pos, sep - pos); if (!item.empty()) value.push_back(item); sep = s.find(',', pos = sep + 1); } if (!(item = s.substr(pos)).empty()) value.push_back(item); return true; }
void wxGenericFileCtrl::DoGetFilenames(wxArrayString& filenames, bool fullPath) const { filenames.clear(); const wxString dir = m_list->GetDir(); const wxString value = m_text->GetValue(); if ( !value.empty() ) { wxFileName fn(value); if ( fn.IsRelative() ) fn.MakeAbsolute(dir); filenames.push_back(GetFileNameOrPath(fn, fullPath)); return; } const int numSel = m_list->GetSelectedItemCount(); if ( !numSel ) return; filenames.reserve(numSel); wxListItem item; item.m_mask = wxLIST_MASK_TEXT; item.m_itemId = -1; for ( ;; ) { item.m_itemId = m_list->GetNextItem(item.m_itemId, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if ( item.m_itemId == -1 ) break; m_list->GetItem(item); const wxFileName fn(dir, item.m_text); filenames.push_back(GetFileNameOrPath(fn, fullPath)); } }
// this function is used to properly interpret '..' in path void wxSplitPath(wxArrayString& aParts, const wxString& path) { aParts.clear(); wxString strCurrent; wxString::const_iterator pc = path.begin(); for ( ;; ) { if ( pc == path.end() || *pc == wxCONFIG_PATH_SEPARATOR ) { if ( strCurrent == wxT(".") ) { // ignore } else if ( strCurrent == wxT("..") ) { // go up one level if ( aParts.size() == 0 ) { wxLogWarning(_("'%s' has extra '..', ignored."), path); } else { aParts.erase(aParts.end() - 1); } strCurrent.Empty(); } else if ( !strCurrent.empty() ) { aParts.push_back(strCurrent); strCurrent.Empty(); } //else: // could log an error here, but we prefer to ignore extra '/' if ( pc == path.end() ) break; } else strCurrent += *pc; ++pc; } }
// this function is used to properly interpret '..' in path void wxSplitPath(wxArrayString& aParts, const wxChar *sz) { aParts.clear(); wxString strCurrent; const wxChar *pc = sz; for ( ;; ) { if ( *pc == wxT('\0') || *pc == wxCONFIG_PATH_SEPARATOR ) { if ( strCurrent == wxT(".") ) { // ignore } else if ( strCurrent == wxT("..") ) { // go up one level if ( aParts.size() == 0 ) wxLogWarning(_("'%s' has extra '..', ignored."), sz); else aParts.erase(aParts.end() - 1); strCurrent.Empty(); } else if ( !strCurrent.empty() ) { aParts.push_back(strCurrent); strCurrent.Empty(); } //else: // could log an error here, but we prefer to ignore extra '/' if ( *pc == wxT('\0') ) break; } else strCurrent += *pc; pc++; } }
bool PoeditApp::OnInit() { if (!wxApp::OnInit()) return false; #if defined(__WXMAC__) wxSystemOptions::SetOption(wxMAC_TEXTCONTROL_USE_SPELL_CHECKER, 1); #endif #ifdef __WXMAC__ SetExitOnFrameDelete(false); #endif #if defined(__UNIX__) && !defined(__WXMAC__) wxStandardPaths::Get().SetInstallPrefix(POEDIT_PREFIX); wxString home = wxGetHomeDir() + "/"; // create Poedit cfg dir, move ~/.poedit to ~/.poedit/config // (upgrade from older versions of Poedit which used ~/.poedit file) if (!wxDirExists(home + ".poedit")) { if (wxFileExists(home + ".poedit")) wxRenameFile(home + ".poedit", home + ".poedit2"); wxMkdir(home + ".poedit"); if (wxFileExists(home + ".poedit2")) wxRenameFile(home + ".poedit2", home + ".poedit/config"); } #endif SetVendorName("Vaclav Slavik"); SetAppName("Poedit"); #if defined(__WXMAC__) #define CFG_FILE (wxStandardPaths::Get().GetUserConfigDir() + "/net.poedit.Poedit.cfg") #elif defined(__UNIX__) #define CFG_FILE (home + ".poedit/config") #else #define CFG_FILE wxEmptyString #endif #ifdef __WXMAC__ // upgrade from the old location of config file: wxString oldcfgfile = wxStandardPaths::Get().GetUserConfigDir() + "/poedit.cfg"; if (wxFileExists(oldcfgfile) && !wxFileExists(CFG_FILE)) { wxRenameFile(oldcfgfile, CFG_FILE); } #endif wxConfigBase::Set( new wxConfig(wxEmptyString, wxEmptyString, CFG_FILE, wxEmptyString, wxCONFIG_USE_GLOBAL_FILE | wxCONFIG_USE_LOCAL_FILE)); wxConfigBase::Get()->SetExpandEnvVars(false); wxImage::AddHandler(new wxPNGHandler); wxXmlResource::Get()->InitAllHandlers(); #if defined(__WXMAC__) wxXmlResource::Get()->Load(wxStandardPaths::Get().GetResourcesDir() + "/*.xrc"); #elif defined(__WXMSW__) wxStandardPaths::Get().DontIgnoreAppSubDir(); wxXmlResource::Get()->Load(wxStandardPaths::Get().GetResourcesDir() + "\\Resources\\*.xrc"); #else InitXmlResource(); #endif SetDefaultCfg(wxConfig::Get()); #if defined(__WXMAC__) || defined(__WXMSW__) u_setDataDirectory(wxStandardPaths::Get().GetResourcesDir().mb_str()); #endif #ifndef __WXMAC__ wxArtProvider::PushBack(new PoeditArtProvider); #endif SetupLanguage(); #ifdef __WXMAC__ wxMenuBar *bar = wxXmlResource::Get()->LoadMenuBar("mainmenu_mac_global"); TweakOSXMenuBar(bar); wxMenuBar::MacSetCommonMenuBar(bar); // so that help menu is correctly merged with system-provided menu // (see http://sourceforge.net/tracker/index.php?func=detail&aid=1600747&group_id=9863&atid=309863) s_macHelpMenuTitleName = _("&Help"); #endif FileHistory().Load(*wxConfig::Get()); // NB: It's important to do this before TM is used for the first time. if ( !MigrateLegacyTranslationMemory() ) return false; // NB: opening files or creating empty window is handled differently on // Macs, using MacOpenFiles() and MacNewFile(), so don't create empty // window if no files are given on command line; but still support // passing files on command line if (!gs_filesToOpen.empty()) { OpenFiles(gs_filesToOpen); gs_filesToOpen.clear(); } #ifndef __WXMAC__ else { OpenNewFile(); } #endif // !__WXMAC__ #ifdef USE_SPARKLE Sparkle_Initialize(CheckForBetaUpdates()); #endif // USE_SPARKLE #ifdef __WXMSW__ const char *appcast = "http://releases.poedit.net/appcast-win"; if ( CheckForBetaUpdates() ) { // Beta versions use unstable feed. appcast = "http://releases.poedit.net/appcast-win/beta"; } win_sparkle_set_appcast_url(appcast); win_sparkle_init(); #endif return true; }