Exemple #1
1
bool KisOpenRasterStackSaveVisitor::visit(KisGroupLayer *layer)
{
    QDomElement* previousElt = d->currentElement;

    QDomElement elt = d->layerStack.createElement("stack");
    d->currentElement = &elt;
    saveLayerInfo(elt, layer);

    visitAll(layer);

    if (previousElt) {
        previousElt->appendChild(elt);
        d->currentElement = previousElt;
    } else {
        QDomElement imageElt = d->layerStack.createElement("image");
        int width = layer->image()->width();
        int height = layer->image()->height();
        imageElt.setAttribute("w", width);
        imageElt.setAttribute("h", height);
        imageElt.appendChild(elt);
        d->layerStack.insertBefore(imageElt, QDomNode());
        d->currentElement = 0;
        d->saveContext->saveStack(d->layerStack);
    }

    return true;
}
const std::vector<GLSLAnnotation*>& AnnotationVisitor::getAnnotations(ParseTreeNode* const root)
{
    freeAnnotations();
    freeAnnotations_ = false;
    visitAll(root);
    return annotations_;
}
Exemple #3
0
bool PreprocessorVisitor::visitNode(IncludeDirective* const n) {
    if (n == 0)
        return false;

    bool res = false;
    try {
        std::string includeFile = adjustIncludeFile(n->getFileName());
        PreprocessorParser includeParser(includeFile);

        log_ << "parsing included file '" << n->getFileName() << "'...\n";
        ParseTreeNode* root = includeParser.parse();
        if (root != 0) {
            visitAll(root);
            res = true;
        } else {
            log_ << "failed to parse include directive '" << n->getFileName() << "':\n";
            log_ << includeParser.getLog().str() << "\n";
        }

        delete root;
    } catch (std::bad_alloc&) {
        log_ << "failed to open file '" << n->getFileName() << "' for inclusion!\n";
    }

    return res;
}
Exemple #4
0
std::ostringstream& PreprocessorVisitor::translate(ParseTreeNode* const root) {
    translation_.str("");

    visitAll(root);

    return translation_;
}
 virtual bool visit(KisGroupLayer* layer)
 { 
     bool result = visitAll(layer);
     if(layer == layer->image()->rootLayer()) {
         return result;
     }        
     return result && process(layer);
 }
bool KisCountVisitor::check(KisNode * node)
{
    if (m_nodeTypes.isEmpty() || inList(node)) {

        if (m_properties.isEmpty() || node->check(m_properties)) {
            m_count++;
        }
    }
    visitAll(node);

    return true;
}
const std::vector<PlotFunctionVisitor::TokenVector>& PlotFunctionVisitor::getPlotFunctionToken(ParseTreeNode* const root) {
    tokens_.clear();
    temptokens_.clear();
    getPartialTrees(root);
    if (partialTrees_.size() == 0) {
        visitAll(root);
        tokens_.resize(1);
        tokens_[0].function = temptokens_;
    }
    else {
        for (size_t i = 0; i < partialTrees_.size(); ++i) {
            tokens_.resize(partialTrees_.size());
            temptokens_.clear();
            visitAll(partialTrees_[i].function);
            tokens_[i].function = temptokens_;
            temptokens_.clear();
            visitAll(partialTrees_[i].interval);
            tokens_[i].interval = temptokens_;
        }
    }
    return tokens_;
}
bool KisMirrorVisitor::visit(KisExternalLayer* layer)
{
    if (m_orientation == Qt::Horizontal) {
        KisTransformVisitor visitor(m_image, -1.0, 1.0, 0.0, 0.0, 0.0, m_image->width(), 0, 0, 0);
        layer->accept(visitor);
    } else {
        KisTransformVisitor visitor(m_image, 1.0, -1.0, 0.0, 0.0, 0.0, 0, m_image->height(), 0, 0);
        layer->accept(visitor);
    }
    visitAll(layer);
    return true;

}
bool KisMirrorVisitor::visit(KisPaintLayer* layer)
{
    KisPaintDeviceSP dev = layer->paintDevice();

    QString name;
    if (m_orientation == Qt::Horizontal) {
        name = i18n("Mirror Layer X");
    } else {
        name = i18n("Mirror Layer Y");
    }
    KisTransaction transaction(name, dev);

    QRect dirty;
    if (m_orientation == Qt::Horizontal) {
        dirty = KisTransformWorker::mirrorX(dev, m_image->width()/2.0f);
    } else {
        dirty = KisTransformWorker::mirrorY(dev, m_image->height()/2.0f);
    }
    layer->setDirty(dirty);

    transaction.commit(m_image->undoAdapter());
    visitAll(layer);
    return true;
}
bool KisMirrorVisitor::visit(KisGroupLayer* layer)
{
    visitAll(layer);
    return true;

}
Exemple #11
0
bool KisTIFFWriterVisitor::visit(KisGroupLayer *layer)
{
    dbgFile << "Visiting on grouplayer" << layer->name() << "";
    return visitAll(layer, true);
}