/*! */ void QFoldPanel::mousePressEvent(QMouseEvent *e) { if ( !editor() || !editor()->languageDefinition() || (e->button() != Qt::LeftButton) ) { QPanel::mousePressEvent(e); return; } bool act = false; QDocument *doc = editor()->document(); QLanguageDefinition *def = editor()->languageDefinition(); for ( int i = 0; i < m_rects.count(); ++i ) { if ( !m_rects.at(i).contains(e->pos()) ) continue; int ln = m_lines.at(i); QDocumentLine b = doc->line(ln); if ( b.hasFlag(QDocumentLine::CollapsedBlockStart) ) def->expand(doc, ln); else if ( def->blockFlags(doc, ln, 0) & QLanguageDefinition::Collapsible ) def->collapse(doc, ln); act = true; } if ( act ) editor()->setFocus(); else QPanel::mousePressEvent(e); }
/*! */ void QFoldPanel::mousePressEvent(QMouseEvent *e) { if ( !editor() || !editor()->languageDefinition() || (e->button() != Qt::LeftButton) ) { QPanel::mousePressEvent(e); return; } QDocument *doc = editor()->document(); QLanguageDefinition *def = editor()->languageDefinition(); int ln = mapRectPosToLine(e->pos()); if ( ln != -1 ){ QDocumentLine b = doc->line(ln); if ( b.hasFlag(QDocumentLine::CollapsedBlockStart) ) def->expand(doc, ln); else //if ( def->blockFlags(doc, ln, 0) & QLanguageDefinition::Collapsible ) collapse checks if it can collapse the line def->collapse(doc, ln); editor()->setFocus(); } else QPanel::mousePressEvent(e); }