?? textedit.cpp
字號:
}void TextEdit::fileSave(){ if ( !currentEditor() ) return; QString fn; if ( filenames.find( currentEditor() ) == filenames.end() ) { fileSaveAs(); } else { QFile file( *filenames.find( currentEditor() ) ); if ( !file.open( IO_WriteOnly ) ) return; QTextStream ts( &file ); ts << currentEditor()->text(); }}void TextEdit::fileSaveAs(){ if ( !currentEditor() ) return; QString fn = QFileDialog::getSaveFileName( QString::null, tr( "HTML-Files (*.htm *.html);;All Files (*)" ), this ); if ( !fn.isEmpty() ) { filenames.replace( currentEditor(), fn ); fileSave(); tabWidget->setTabLabel( currentEditor(), QFileInfo( fn ).fileName() ); }}void TextEdit::filePrint(){ if ( !currentEditor() ) return;#ifndef QT_NO_PRINTER QPrinter printer; printer.setFullPage(TRUE); QPaintDeviceMetrics screen( this ); printer.setResolution( screen.logicalDpiY() ); if ( printer.setup( this ) ) { QPainter p( &printer ); QPaintDeviceMetrics metrics( p.device() ); int dpix = metrics.logicalDpiX(); int dpiy = metrics.logicalDpiY(); const int margin = 72; // pt QRect body( margin * dpix / 72, margin * dpiy / 72, metrics.width() - margin * dpix / 72 * 2, metrics.height() - margin * dpiy / 72 * 2 ); QFont font( "times", 10 ); QSimpleRichText richText( currentEditor()->text(), font, currentEditor()->context(), currentEditor()->styleSheet(), currentEditor()->mimeSourceFactory(), body.height() ); richText.setWidth( &p, body.width() ); QRect view( body ); int page = 1; do { richText.draw( &p, body.left(), body.top(), view, colorGroup() ); view.moveBy( 0, body.height() ); p.translate( 0 , -body.height() ); p.setFont( font ); p.drawText( view.right() - p.fontMetrics().width( QString::number( page ) ), view.bottom() + p.fontMetrics().ascent() + 5, QString::number( page ) ); if ( view.top() >= richText.height() ) break; printer.newPage(); page++; } while (TRUE); }#endif}void TextEdit::fileClose(){ delete currentEditor(); if ( currentEditor() ) currentEditor()->viewport()->setFocus();}void TextEdit::fileExit(){ qApp->quit();}void TextEdit::editUndo(){ if ( !currentEditor() ) return; currentEditor()->undo();}void TextEdit::editRedo(){ if ( !currentEditor() ) return; currentEditor()->redo();}void TextEdit::editCut(){ if ( !currentEditor() ) return; currentEditor()->cut();}void TextEdit::editCopy(){ if ( !currentEditor() ) return; currentEditor()->copy();}void TextEdit::editPaste(){ if ( !currentEditor() ) return; currentEditor()->paste();}void TextEdit::textBold(){ if ( !currentEditor() ) return; currentEditor()->setBold( actionTextBold->isOn() );}void TextEdit::textUnderline(){ if ( !currentEditor() ) return; currentEditor()->setUnderline( actionTextUnderline->isOn() );}void TextEdit::textItalic(){ if ( !currentEditor() ) return; currentEditor()->setItalic( actionTextItalic->isOn() );}void TextEdit::textFamily( const QString &f ){ if ( !currentEditor() ) return; currentEditor()->setFamily( f ); currentEditor()->viewport()->setFocus();}void TextEdit::textSize( const QString &p ){ if ( !currentEditor() ) return; currentEditor()->setPointSize( p.toInt() ); currentEditor()->viewport()->setFocus();}void TextEdit::textStyle( int i ){ if ( !currentEditor() ) return; if ( i == 0 ) currentEditor()->setParagType( QStyleSheetItem::DisplayBlock, QStyleSheetItem::ListDisc ); else if ( i == 1 ) currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListDisc ); else if ( i == 2 ) currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListCircle ); else if ( i == 3 ) currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListSquare ); else if ( i == 4 ) currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListDecimal ); else if ( i == 5 ) currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListLowerAlpha ); else if ( i == 6 ) currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListUpperAlpha ); currentEditor()->viewport()->setFocus();}void TextEdit::textColor(){ if ( !currentEditor() ) return; QColor col = QColorDialog::getColor( currentEditor()->color(), this ); if ( !col.isValid() ) return; currentEditor()->setColor( col ); QPixmap pix( 16, 16 ); pix.fill( col ); actionTextColor->setIconSet( pix );}void TextEdit::textAlign( QAction *a ){ if ( !currentEditor() ) return; if ( a == actionAlignLeft ) currentEditor()->setAlignment( AlignLeft ); else if ( a == actionAlignCenter ) currentEditor()->setAlignment( AlignHCenter ); else if ( a == actionAlignRight ) currentEditor()->setAlignment( AlignRight ); else if ( a == actionAlignJustify ) currentEditor()->setAlignment( AlignJustify );}void TextEdit::fontChanged( const QFont &f ){ comboFont->lineEdit()->setText( f.family() ); comboSize->lineEdit()->setText( QString::number( f.pointSize() ) ); actionTextBold->setOn( f.bold() ); actionTextItalic->setOn( f.italic() ); actionTextUnderline->setOn( f.underline() );}void TextEdit::colorChanged( const QColor &c ){ QPixmap pix( 16, 16 ); pix.fill( c ); actionTextColor->setIconSet( pix );}void TextEdit::alignmentChanged( int a ){ if ( ( a == AlignAuto ) || ( a & AlignLeft )) actionAlignLeft->setOn( TRUE ); else if ( ( a & AlignHCenter ) ) actionAlignCenter->setOn( TRUE ); else if ( ( a & AlignRight ) ) actionAlignRight->setOn( TRUE ); else if ( ( a & AlignJustify ) ) actionAlignJustify->setOn( TRUE );}void TextEdit::editorChanged( QWidget * ){ if ( !currentEditor() ) return; fontChanged( currentEditor()->font() ); colorChanged( currentEditor()->color() ); alignmentChanged( currentEditor()->alignment() );}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -