void BackgroundParser::parse() { KTextEditor::EditInterface *ied = 0; ied = dynamic_cast<KTextEditor::EditInterface*>(m_ownerDoc->view()->document()); if(ied) { doParse(ied->text()); } }
virtual QString contents( const QString& fileName ) { QString contents = QString::null; if ( !m_readFromDisk ) { m_deadlock.unlock(); // GET LOCK kapp->lock (); //kdDebug(9007) << "-------> kapp locked" << endl; QPtrList<KParts::Part> parts( *m_cppSupport->partController() ->parts() ); QPtrListIterator<KParts::Part> it( parts ); while ( it.current() ) { KTextEditor::Document * doc = dynamic_cast<KTextEditor::Document*>( it.current() ); ++it; KTextEditor::EditInterface* editIface = dynamic_cast<KTextEditor::EditInterface*>( doc ); if ( !doc || !editIface || doc->url().path() != fileName ) continue; contents = QString( editIface->text().ascii() ); // deep copy //kdDebug(9007) << "-------> kapp unlocked" << endl; break; } // RELEASE LOCK kapp->unlock(); m_deadlock.lock(); //kdDebug(9007) << "-------> kapp unlocked" << endl; } if( m_readFromDisk || contents == QString::null ) { QFile f( fileName ); if ( f.open( IO_ReadOnly ) ) { QTextStream stream( &f ); contents = stream.read(); f.close(); } } return contents; }
virtual QString contents( const QString& fileName ) { if( !m_readFromDisk ){ //kdDebug(9013) << "-------> kapp is locked = " << kapp->locked() << endl; bool needToLock = kapp->locked() == false; if( needToLock ) kapp->lock(); //kdDebug(9013) << "-------> kapp locked" << endl; QPtrList<KParts::Part> parts( *m_javaSupport->partController()->parts() ); QPtrListIterator<KParts::Part> it( parts ); while( it.current() ){ KTextEditor::Document* doc = dynamic_cast<KTextEditor::Document*>( it.current() ); ++it; KTextEditor::EditInterface* editIface = dynamic_cast<KTextEditor::EditInterface*>( doc ); if( !doc || !editIface || doc->url().path() != fileName ) continue; QString contents = QString( editIface->text().ascii() ); // deep copy if( needToLock ) kapp->unlock(); //kdDebug(9013) << "-------> kapp unlocked" << endl; return contents; } if( needToLock ) kapp->unlock(); //kdDebug(9013) << "-------> kapp unlocked" << endl; } QFile f( fileName ); QTextStream stream( &f ); if( f.open(IO_ReadOnly) ){ QString contents = stream.read(); f.close(); return contents; } return QString::null; }
QStringList PHPFile::readFromEditor() { QStringList contents; kapp->lock(); QPtrList<KParts::Part> parts( *m_part->partController()->parts() ); QPtrListIterator<KParts::Part> it( parts ); while( it.current() ){ KTextEditor::Document* doc = dynamic_cast<KTextEditor::Document*>( it.current() ); ++it; KTextEditor::EditInterface* editIface = dynamic_cast<KTextEditor::EditInterface*>( doc ); if ( !doc || !editIface || doc->url().path() != fileName() ) continue; contents = QStringList::split("\n", editIface->text().ascii(), true); break; } kapp->unlock(); return contents; }
void AStylePart::beautifySource() { KTextEditor::EditInterface *iface = dynamic_cast<KTextEditor::EditInterface*>(partController()->activePart()); if (!iface) return; bool has_selection = false; KTextEditor::SelectionInterface *sel_iface = dynamic_cast<KTextEditor::SelectionInterface*>(partController()->activePart()); if (sel_iface && sel_iface->hasSelection()) has_selection = true; //if there is a selection, we only format it. ASStringIterator is(has_selection ? sel_iface->selection() : iface->text()); KDevFormatter formatter(m_project); formatter.init(&is); QString output; QTextStream os(&output, IO_WriteOnly); // put the selection back to the same indent level. // taking note of the config options. unsigned int indentCount=0; QString indentWith(""); if ( has_selection){ QString original = sel_iface->selection(); for (;indentCount<original.length();indentCount++){ QChar ch = original[indentCount]; if ( ch.isSpace()){ if ( ch == QChar('\n') || ch == QChar('\r')){ indentWith=""; } else{ indentWith+=original[indentCount]; } } else{ break; } } int wsCount = m_project["FillCount"].toInt(); if (m_project["Fill"].toString() == "Tabs") { // tabs and wsCount spaces to be a tab QString replace; for (int i =0;i<wsCount;i++) replace+=' '; indentWith=indentWith.replace(replace, QChar('\t')); indentWith=indentWith.remove(' '); } else { if ( m_project["FillForce"].toBool()){ //convert tabs to spaces QString replace; for (int i =0;i<wsCount;i++) replace+=' '; indentWith=indentWith.replace(QChar('\t'),replace); } } } while (formatter.hasMoreLines()){ if ( has_selection ){ os << indentWith; } os << QString::fromUtf8(formatter.nextLine().c_str()) << endl; } uint col = 0; uint line = 0; if(has_selection) //there was a selection, so only change the part of the text related to it { //remove the final newline character, unless it should be there if ( !sel_iface->selection().endsWith( "\n" ) ) output.setLength(output.length()-1); sel_iface->removeSelectedText(); cursorPos( partController()->activePart(), &col, &line ); iface->insertText( col, line, output); return; } cursorPos( partController()->activePart(), &col, &line ); iface->setText( output ); setCursorPos( partController()->activePart(), col, line ); }