Exemple #1
0
    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 );
    }
Exemple #2
0
	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;
}
Exemple #4
0
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();
		}
	}
Exemple #6
0
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;
}
Exemple #7
0
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;
}
Exemple #8
0
    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 );
    }
Exemple #9
0
    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;
    }
Exemple #10
0
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;
}
Exemple #11
0
    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;
    }
Exemple #12
0
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();
	// }
}
Exemple #13
0
void TupPathItem::saveOriginalPath()
{
    QString original = pathToString();
    doList << original;
}
QString StyleSet::path() const
{
  return QString::fromStdString(pathToString(mPath));
}