bool AllMatchExpression::matches( const BSONObj& doc, MatchDetails* details ) const { FieldRef path; path.parse(_path); bool traversedArray = false; int32_t idxPath = 0; BSONElement e = getFieldDottedOrArray( doc, path, &idxPath, &traversedArray ); string rest = pathToString( path, idxPath+1 ); if ( e.type() != Array || traversedArray || rest.size() == 0 ) { return matchesSingleElement( e ); } BSONElementSet all; BSONObjIterator i( e.Obj() ); while ( i.more() ) { BSONElement e = i.next(); if ( ! e.isABSONObj() ) continue; e.Obj().getFieldsDotted( rest, all ); } return _match( all ); }
void ImportLanguageReference() { m_lang.clear(); boost::filesystem::path binFolder; GetProgramFolder(binFolder); boost::filesystem::path path = binFolder / stringToPath(LANGREFFILE_CSV); boost::filesystem::path xml_path = binFolder / stringToPath(ReferenceFileName().GetString()); CUnicodeFile file; if (file.Open(pathToString(path).c_str())) { std::_tstring data; file.Read(data); typedef std::vector<std::_tstring> split_vector_type; split_vector_type SplitVec; boost::algorithm::split(SplitVec, data, boost::algorithm::is_any_of("\r\n"), boost::algorithm::token_compress_on); for (split_vector_type::const_iterator itr = SplitVec.begin(); itr != SplitVec.end(); ++itr) { std::_tstring line = *itr; if (line.length()) { std::vector<std::_tstring> fields; DecodeCSV(line, fields); m_lang.push_back(fields); } } } save(m_lang, xml_path.string().c_str()); }
//============================================================================== XmlElement* PaintElementPath::createXml() const { XmlElement* e = new XmlElement (getTagName()); position.applyToXml (*e); addColourAttributes (e); e->setAttribute ("nonZeroWinding", nonZeroWinding); e->addTextElement (pathToString()); return e; }
void QtSoundPlayer::playSound(const std::string& soundResource) { boost::filesystem::path resourcePath = applicationPathProvider->getResourcePath(soundResource); if (boost::filesystem::exists(resourcePath)) { QSound::play(P2QSTRING(pathToString(resourcePath))); } else if (boost::filesystem::exists(soundResource)) { QSound::play(P2QSTRING(soundResource)); } else { std::cerr << "Unable to find sound: " << soundResource << std::endl; } }
QVariant ChatListWhiteboardItem::data(int role) const { switch (role) { case Qt::DisplayRole: return P2QSTRING(chat_.chatName); case DetailTextRole: return P2QSTRING(chat_.activity); /*case Qt::TextColorRole: return textColor_; case Qt::BackgroundColorRole: return backgroundColor_; case Qt::ToolTipRole: return isContact() ? toolTipString() : QVariant(); case StatusTextRole: return statusText_;*/ case AvatarRole: return QVariant(P2QSTRING(pathToString(chat_.avatarPath))); case PresenceIconRole: return getPresenceIcon(); default: return QVariant(); } }
CLIB_API const boost::filesystem::path & GetIniPath(boost::filesystem::path & path) { boost::filesystem::path programPath; std::string leaf = pathToString(GetProgramPath(programPath).leaf()); TCHAR szFileName[_MAX_FNAME]; TCHAR szExt[_MAX_FNAME]; _tsplitpath(CA2T(leaf.c_str()), NULL, NULL, szFileName, szExt); std::_tstring iniName = szFileName; iniName += _T("."); iniName += INI; boost::filesystem::path appFolder; path = GetApplicationFolder(appFolder) / stringToPath(iniName); return path; }
QDomElement TupPathItem::toXml(QDomDocument &doc) const { QDomElement root = doc.createElement("path"); QString strPath = pathToString(); root.setAttribute("coords", strPath); root.appendChild(TupSerializer::properties(this, doc)); QBrush brush = this->brush(); root.appendChild(TupSerializer::brush(&brush, doc)); QPen pen = this->pen(); root.appendChild(TupSerializer::pen(&pen, doc)); return root; }
bool LeafMatchExpression::matches( const BSONObj& doc, MatchDetails* details ) const { //log() << "e doc: " << doc << " path: " << _path << std::endl; FieldRef path; path.parse(_path); bool traversedArray = false; int32_t idxPath = 0; BSONElement e = getFieldDottedOrArray( doc, path, &idxPath, &traversedArray ); string rest = pathToString( path, idxPath+1 ); if ( e.type() != Array || traversedArray ) { return matchesSingleElement( e ); } BSONObjIterator i( e.Obj() ); while ( i.more() ) { BSONElement x = i.next(); bool found = false; if ( rest.size() == 0 ) { found = matchesSingleElement( x ); } else if ( x.isABSONObj() ) { BSONElement y = x.Obj().getField( rest ); found = matchesSingleElement( y ); } if ( found ) { if ( !_allHaveToMatch ) { if ( details && details->needRecord() ) { // this block doesn't have to be inside the _allHaveToMatch handler // but this matches the old semantics details->setElemMatchKey( x.fieldName() ); } return true; } } else if ( _allHaveToMatch ) { return false; } } return matchesSingleElement( e ); }
bool ArrayMatchingMatchExpression::matches( const BSONObj& doc, MatchDetails* details ) const { FieldRef path; path.parse(_path); bool traversedArray = false; int32_t idxPath = 0; BSONElement e = getFieldDottedOrArray( doc, path, &idxPath, &traversedArray ); string rest = pathToString( path, idxPath+1 ); if ( rest.size() == 0 ) { if ( e.type() == Array ) return matchesArray( e.Obj(), details ); return false; } if ( e.type() != Array ) return false; BSONObjIterator i( e.Obj() ); while ( i.more() ) { BSONElement x = i.next(); if ( ! x.isABSONObj() ) continue; BSONElement sub = x.Obj().getFieldDotted( rest ); if ( sub.type() != Array ) continue; if ( matchesArray( sub.Obj(), NULL ) ) { if ( details && details->needRecord() ) { // trying to match crazy semantics?? details->setElemMatchKey( x.fieldName() ); } return true; } } return false; }
CLIB_API const boost::filesystem::path & GetApplicationFolder(boost::filesystem::path & path) { CCmdLineParser parser(::GetCommandLine()); if (parser.HasKey(_T("WF"))) { std::_tstring workspace = parser.GetVal(_T("WF")); path = stringToPath(workspace); } else { boost::filesystem::path programPath; std::string leaf = pathToString(GetProgramPath(programPath).leaf()); TCHAR szFileName[_MAX_FNAME]; TCHAR szExt[_MAX_FNAME]; _tsplitpath(CA2T(leaf.c_str()), NULL, NULL, szFileName, szExt); boost::filesystem::path companyFolder; path = GetCompanyFolder(companyFolder) / stringToPath(szFileName); } boost::filesystem::create_directories(path); return path; }
bool TypeMatchExpression::_matches( const StringData& path, const BSONObj& doc, MatchDetails* details ) const { FieldRef pathRef; pathRef.parse(path); bool traversedArray = false; int32_t idxPath = 0; BSONElement e = getFieldDottedOrArray( doc, pathRef, &idxPath, &traversedArray ); string rest = pathToString( pathRef, idxPath+1 ); if ( e.type() != Array ) { return matchesSingleElement( e ); } BSONObjIterator i( e.Obj() ); while ( i.more() ) { BSONElement x = i.next(); bool found = false; if ( rest.size() == 0 ) { found = matchesSingleElement( x ); } else if ( x.isABSONObj() ) { found = _matches( rest, x.Obj(), details ); } if ( found ) { if ( details && details->needRecord() ) { // this block doesn't have to be inside the _allHaveToMatch handler // but this matches the old semantics details->setElemMatchKey( x.fieldName() ); } return true; } } return false; }
QtSwift::QtSwift(const po::variables_map& options) : networkFactories_(&clientMainThreadCaller_), autoUpdater_(NULL), idleDetector_(&idleQuerier_, networkFactories_.getTimerFactory(), 1000) { QCoreApplication::setApplicationName(SWIFT_APPLICATION_NAME); QCoreApplication::setOrganizationName(SWIFT_ORGANIZATION_NAME); QCoreApplication::setOrganizationDomain(SWIFT_ORGANIZATION_DOMAIN); QCoreApplication::setApplicationVersion(buildVersion); qtSettings_ = new QtSettingsProvider(); xmlSettings_ = loadSettingsFile(P2QSTRING(pathToString(Paths::getExecutablePath() / "system-settings.xml"))); settingsHierachy_ = new SettingsProviderHierachy(); settingsHierachy_->addProviderToTopOfStack(xmlSettings_); settingsHierachy_->addProviderToTopOfStack(qtSettings_); networkFactories_.getTLSContextFactory()->setDisconnectOnCardRemoval(settingsHierachy_->getSetting(SettingConstants::DISCONNECT_ON_CARD_REMOVAL)); std::map<std::string, std::string> emoticons; loadEmoticonsFile(":/emoticons/emoticons.txt", emoticons); loadEmoticonsFile(P2QSTRING(pathToString(Paths::getExecutablePath() / "emoticons.txt")), emoticons); if (options.count("netbook-mode")) { splitter_ = new QtSingleWindow(qtSettings_); } else { splitter_ = NULL; } int numberOfAccounts = 1; try { numberOfAccounts = options["multi-account"].as<int>(); } catch (...) { /* This seems to fail on a Mac when the .app is launched directly (the usual path).*/ numberOfAccounts = 1; } if (options.count("debug")) { Log::setLogLevel(Swift::Log::debug); } bool enableAdHocCommandOnJID = options.count("enable-jid-adhocs") > 0; tabs_ = NULL; if (options.count("no-tabs") && !splitter_) { tabs_ = new QtChatTabsShortcutOnlySubstitute(); } else { tabs_ = new QtChatTabs(splitter_ != NULL, settingsHierachy_, options.count("trellis")); } bool startMinimized = options.count("start-minimized") > 0; applicationPathProvider_ = new PlatformApplicationPathProvider(SWIFT_APPLICATION_NAME); storagesFactory_ = new FileStoragesFactory(applicationPathProvider_->getDataDir(), networkFactories_.getCryptoProvider()); certificateStorageFactory_ = new CertificateFileStorageFactory(applicationPathProvider_->getDataDir(), tlsFactories_.getCertificateFactory(), networkFactories_.getCryptoProvider()); chatWindowFactory_ = new QtChatWindowFactory(splitter_, settingsHierachy_, qtSettings_, tabs_, "", emoticons); soundPlayer_ = new QtSoundPlayer(applicationPathProvider_); // Ugly, because the dock depends on the tray, but the temporary // multi-account hack creates one tray per account. QtSystemTray* systemTray = new QtSystemTray(); systemTrays_.push_back(systemTray); #if defined(HAVE_GROWL) notifier_ = new GrowlNotifier(SWIFT_APPLICATION_NAME); #elif defined(SWIFTEN_PLATFORM_WINDOWS) notifier_ = new WindowsNotifier(SWIFT_APPLICATION_NAME, applicationPathProvider_->getResourcePath("/images/logo-icon-32.png"), systemTray->getQSystemTrayIcon()); #elif defined(SWIFTEN_PLATFORM_LINUX) notifier_ = new FreeDesktopNotifier(SWIFT_APPLICATION_NAME); #elif defined(SWIFTEN_PLATFORM_MACOSX) notifier_ = new NotificationCenterNotifier(); #else notifier_ = new NullNotifier(); #endif #if defined(SWIFTEN_PLATFORM_MACOSX) dock_ = new MacOSXDock(&cocoaApplication_); #else dock_ = new NullDock(); #endif #if defined(SWIFTEN_PLATFORM_MACOSX) uriHandler_ = new QtURIHandler(); #elif defined(SWIFTEN_PLATFORM_WIN32) uriHandler_ = new NullURIHandler(); #else uriHandler_ = new QtDBUSURIHandler(); #endif statusCache_ = new StatusCache(applicationPathProvider_); if (splitter_) { splitter_->show(); } for (int i = 0; i < numberOfAccounts; i++) { if (i > 0) { // Don't add the first tray (see note above) systemTrays_.push_back(new QtSystemTray()); } QtUIFactory* uiFactory = new QtUIFactory(settingsHierachy_, qtSettings_, tabs_, splitter_, systemTrays_[i], chatWindowFactory_, networkFactories_.getTimerFactory(), statusCache_, startMinimized, !emoticons.empty(), enableAdHocCommandOnJID); uiFactories_.push_back(uiFactory); MainController* mainController = new MainController( &clientMainThreadCaller_, &networkFactories_, uiFactory, settingsHierachy_, systemTrays_[i], soundPlayer_, storagesFactory_, certificateStorageFactory_, dock_, notifier_, uriHandler_, &idleDetector_, emoticons, options.count("latency-debug") > 0); mainControllers_.push_back(mainController); } // PlatformAutoUpdaterFactory autoUpdaterFactory; // if (autoUpdaterFactory.isSupported()) { // autoUpdater_ = autoUpdaterFactory.createAutoUpdater(SWIFT_APPCAST_URL); // autoUpdater_->checkForUpdates(); // } }
void TupPathItem::saveOriginalPath() { QString original = pathToString(); doList << original; }
QString StyleSet::path() const { return QString::fromStdString(pathToString(mPath)); }