void SciDoc::print() { QsciPrinter prn; QPrintDialog dlg(&prn, this); if (dlg.exec() == QDialog::Accepted) { prn.setWrapMode(EditorSettings::get(EditorSettings::WrapWords) || PrintSettings::get(PrintSettings::AlwaysWrap) ? QsciScintilla::WrapWord : QsciScintilla::WrapNone); int line1(-1), line2(-1), col1(-1), col2(-1); JuffScintilla* edit = int_->curEdit_; if ( edit ) { QsciLexer* lexer = edit->lexer(); if ( !PrintSettings::get(PrintSettings::KeepBgColor) ) { lexer->setDefaultPaper(Qt::white); lexer->setPaper(Qt::white); lexer->setDefaultColor(Qt::black); } if ( !PrintSettings::get(PrintSettings::KeepColors) ) { lexer->setColor(Qt::black); } edit->getSelection(&line1, &col1, &line2, &col2); if (line1 >=0 && line2 >= 0 && col1 >= 0 && col2 >= 0) { // We have selection. Print it. --line2; prn.printRange(edit, line1, line2); } else { // We don't have selection. Print the whole text. prn.printRange(edit, 0); } QFont font = EditorSettings::font(); LexerStorage::instance()->updateLexers(font); } } }