コード例 #1
0
ファイル: BsonTreeModel.cpp プロジェクト: davidau/robomongo
    BsonTreeModel::BsonTreeModel(const std::vector<MongoDocumentPtr> &documents, QObject *parent) :
        BaseClass(parent),
        _root(new BsonTreeItem(this))
    {
        for (int i = 0; i < documents.size(); ++i) {
            MongoDocumentPtr doc = documents[i]; 
            BsonTreeItem *child = new BsonTreeItem(doc->bsonObj(), _root);
            parseDocument(child, doc->bsonObj(), doc->bsonObj().isArray());

            QString idValue;
            BsonTreeItem *idItem = child->childByKey("_id");
            if (idItem) {
                idValue = idItem->value();
            }

            child->setKey(QString("(%1) %2").arg(i + 1).arg(idValue));

            int count = BsonUtils::elementsCount(doc->bsonObj());

            if (doc->bsonObj().isArray()) {
                child->setValue(arrayValue(count));
                child->setType(mongo::Array);
            } else {
                child->setValue(objectValue(count));
                child->setType(mongo::Object);
            }
            _root->addChild(child);
        }
    }
コード例 #2
0
    void JsonPrepareThread::run()
    {
        int position = 1; // 1-based numbering to match tree & table views
        for(std::vector<MongoDocumentPtr>::const_iterator it = _bsonObjects.begin();it!=_bsonObjects.end();++it)
        {
            MongoDocumentPtr doc = *it;
            mongo::StringBuilder sb;
            if (position == 1)
                sb << "/* 1 */\n";
            else
                sb << "\n\n/* " << position << " */\n";

            mongo::BSONObj obj = doc->bsonObj();
            std::string stdJson = BsonUtils::jsonString(obj, mongo::TenGen, 1, _uuidEncoding, _timeZone);

            if (_stop)
                break;

            sb << stdJson;
            QString json = QtUtils::toQString(sb.str());

            if (_stop)
                break;

            emit partReady(json);

            position++;
        }

        emit done();
    }
コード例 #3
0
ファイル: BsonTableModel.cpp プロジェクト: wildone/robomongo
 BsonTableModel::BsonTableModel(const std::vector<MongoDocumentPtr> &documents, QObject *parent) 
     : BaseClass(parent) ,
     _root(new BsonTableItem(this))
 {
     for (std::vector<MongoDocumentPtr>::const_iterator it = documents.begin(); it!=documents.end(); ++it)
     {
         MongoDocumentPtr doc = (*it);
         parseDocument(_root,doc->bsonObj());
     }
 }
コード例 #4
0
    CollectionStatsTreeItem::CollectionStatsTreeItem(MongoDocumentPtr document) :
    _document(document)
    {
        _obj = document->bsonObj();

        MongoNamespace ns(getString("ns"));

        setText(0, prepareValue(ns.collectionName()));
        setIcon(0, GuiRegistry::instance().collectionIcon());
        setText(1, prepareValue(QString::number(getLongLong("count"))));
        setText(2, prepareValue(MongoUtils::buildNiceSizeString(getDouble("size"))));
        setText(3, prepareValue(MongoUtils::buildNiceSizeString(getDouble("storageSize"))));
        setText(4, prepareValue(MongoUtils::buildNiceSizeString(getDouble("totalIndexSize"))));
        setText(5, prepareValue(MongoUtils::buildNiceSizeString(getDouble("avgObjSize"))));
        setText(6, prepareValue(QString::number(getDouble("paddingFactor"))));
    }
コード例 #5
0
ファイル: MongoDocument.cpp プロジェクト: kewinwang/robomongo
 std::string MongoDocument::buildJsonString(const MongoDocumentPtr &doc)
 {
     //qt4 QTextCodec::setCodecForCStrings(codec);
     std::string jsonString = doc->bsonObj().jsonString(mongo::TenGen, 1);
     return jsonString;
 }