ShowTextDlg::ShowTextDlg(const QString &fname, bool rich, QWidget *parent, const char *name) :QDialog(parent, name, FALSE, WDestructiveClose) { QString text; QFile f(fname); if(f.open(IO_ReadOnly)) { QTextStream t(&f); while(!t.eof()) text += t.readLine() + '\n'; f.close(); } QVBoxLayout *vb1 = new QVBoxLayout(this, 8); QTextEdit *te = new QTextEdit(this); te->setReadOnly(TRUE); te->setTextFormat(rich ? QTextEdit::RichText : QTextEdit::PlainText); te->setText(text); vb1->addWidget(te); QHBoxLayout *hb1 = new QHBoxLayout(vb1); hb1->addStretch(1); QPushButton *pb = new QPushButton(tr("&OK"), this); connect(pb, SIGNAL(clicked()), SLOT(accept())); hb1->addWidget(pb); hb1->addStretch(1); resize(560, 384); }
RKReadLineDialog::RKReadLineDialog (QWidget *parent, const QString &caption, const QString &prompt, RCommand *command) : KDialogBase (parent, 0, true, caption, KDialogBase::Ok | KDialogBase::Cancel) { RK_TRACE (DIALOGS); RK_ASSERT (command); QVBox *page = makeVBoxMainWidget (); new QLabel (caption, page); int screen_width = qApp->desktop ()->width () - 2*marginHint() - 2*spacingHint (); // TODO is this correct on xinerama? QString context = command->fullOutput (); if (!context.isEmpty ()) { new QLabel (i18n ("Context:"), page); QTextEdit *output = new QTextEdit (page); output->setUndoRedoEnabled (false); output->setTextFormat (QTextEdit::PlainText); output->setCurrentFont (QFont ("Courier")); output->setWordWrap (QTextEdit::NoWrap); output->setText (context); output->setReadOnly (true); int cwidth = output->contentsWidth (); output->setMinimumWidth (screen_width < cwidth ? screen_width : cwidth); output->scrollToBottom (); output->setFocusPolicy (QWidget::NoFocus); } QLabel *promptl = new QLabel (prompt, page); promptl->setAlignment (Qt::WordBreak | promptl->alignment ()); input = new QLineEdit (QString (), page); input->setMinimumWidth (fontMetrics ().maxWidth ()*20); input->setFocus (); }
void TextEdit::fileNew() { QTextEdit *edit = new QTextEdit( tabWidget ); edit->setTextFormat( RichText ); doConnections( edit ); tabWidget->addTab( edit, tr( "noname" ) ); tabWidget->showPage( edit ); edit->viewport()->setFocus(); }
void TextEdit::load( const QString &f ) { if ( !QFile::exists( f ) ) return; QTextEdit *edit = new QTextEdit( tabWidget ); doConnections( edit ); tabWidget->addTab( edit, QFileInfo( f ).fileName() ); QFile fl( f ); fl.open( IO_ReadOnly ); QByteArray array = fl.readAll(); array.resize( array.size() +1 ); array[ (int)array.size() - 1 ] = '\0'; QString text = ( f.find( "bidi.txt" ) != -1 ? QString::fromUtf8( array.data() ) : QString::fromLatin1( array.data() ) ); edit->setText( text ); edit->viewport()->setFocus(); edit->setTextFormat( Qt::RichText ); }
void TextEdit::load( const QString &f ) { if ( !QFile::exists( f ) ) return; QTextEdit *edit = new QTextEdit( tabWidget ); edit->setTextFormat( RichText ); doConnections( edit ); tabWidget->addTab( edit, QFileInfo( f ).fileName() ); QFile file( f ); if ( !file.open( IO_ReadOnly ) ) return; QTextStream ts( &file ); QString txt = ts.read(); if ( !QStyleSheet::mightBeRichText( txt ) ) txt = QStyleSheet::convertFromPlainText( txt, QStyleSheetItem::WhiteSpacePre ); edit->setText( txt ); tabWidget->showPage( edit ); edit->viewport()->setFocus(); filenames.replace( edit, f ); }
int QUimTextUtil::acquireSelectionTextInQTextEdit( enum UTextOrigin origin, int former_req_len, int latter_req_len, char **former, char **latter ) { QTextEdit *edit = (QTextEdit *)mWidget; QString text; int len, offset, newline; int start_para, start_index, end_para, end_index; int para, index; bool cursor_at_beginning = false; TextFormat format; if ( ! edit->hasSelectedText() ) return -1; format = edit->textFormat(); edit->setTextFormat( Qt::PlainText ); edit->getCursorPosition( ¶, &index ); edit->getSelection(&start_para, &start_index, &end_para, &end_index, 0 ); if ( para == start_para && index == start_index ) cursor_at_beginning = true; text = edit->selectedText(); len = text.length(); if ( origin == UTextOrigin_Beginning || ( origin == UTextOrigin_Cursor && cursor_at_beginning ) ) { *former = NULL; offset = 0; if ( latter_req_len >= 0 ) { if ( len > latter_req_len ) offset = len - latter_req_len; } else { if (! ( ~latter_req_len & ( ~UTextExtent_Line | ~UTextExtent_Full ) ) ) { edit->setTextFormat( format ); return -1; } if ( latter_req_len == UTextExtent_Line && ( ( newline = text.find( '\n' ) ) != -1 ) ) offset = len - newline; } *latter = strdup( text.left( len - offset ).utf8() ); } else if ( origin == UTextOrigin_End || ( origin == UTextOrigin_Cursor && !cursor_at_beginning ) ) { offset = 0; if ( former_req_len >= 0 ) { if ( len > former_req_len ) offset = len - former_req_len; } else { if (! ( ~former_req_len & ( ~UTextExtent_Line | ~UTextExtent_Full ) ) ) { edit->setTextFormat( format ); return -1; } if ( former_req_len == UTextExtent_Line && ( ( newline = text.findRev( '\n' ) ) != -1 ) ) offset = newline + 1; } *former = strdup( text.mid( offset, len - offset ).utf8() ); *latter = NULL; } else { edit->setTextFormat( format ); return -1; } edit->setTextFormat( format ); return 0; }
int QUimTextUtil::acquirePrimaryTextInQTextEdit( enum UTextOrigin origin, int former_req_len, int latter_req_len, char **former, char **latter ) { QTextEdit *edit = (QTextEdit *)mWidget; QString text; int i; int start_para, start_index, end_para, end_index, para, index; int n_para; int preedit_len, preedit_cursor_pos; int sel_start_para, sel_start_index, sel_end_para, sel_end_index; TextFormat format; format = edit->textFormat(); edit->setTextFormat( Qt::PlainText ); edit->getCursorPosition( ¶, &index ); // including preedit string // keep current selection edit->getSelection( &sel_start_para, &sel_start_index, &sel_end_para, &sel_end_index, 0 ); preedit_len = mIc->getPreeditString().length(); preedit_cursor_pos = mIc->getPreeditCursorPosition(); n_para = edit->paragraphs(); switch ( origin ) { case UTextOrigin_Cursor: start_index = index - preedit_cursor_pos; start_para = para; end_index = start_index + preedit_len; end_para = para; if ( former_req_len >= 0 ) { for ( i = 0; i < former_req_len; i++ ) QTextEditPositionBackward( &start_para, &start_index ); } else { if ( former_req_len == UTextExtent_Line ) start_index = 0; else if ( former_req_len == UTextExtent_Full ) { start_para = 0; start_index = 0; } else { edit->setTextFormat( format ); return -1; } } edit->setSelection( start_para, start_index, para, index - preedit_cursor_pos, 0 ); *former = strdup( edit->selectedText().utf8() ); if ( latter_req_len >= 0 ) { for ( i = 0; i < latter_req_len; i++ ) QTextEditPositionForward( &end_para, &end_index ); } else { if ( latter_req_len == UTextExtent_Line ) { end_index = edit->paragraphLength( end_para ); } else if ( latter_req_len == UTextExtent_Full ) { end_para = n_para - 1; end_index = edit->paragraphLength( end_para ); } else { edit->setTextFormat( format ); return -1; } } edit->setSelection( para, index - preedit_cursor_pos + preedit_len, end_para, end_index, 0 ); *latter = strdup( edit->selectedText().utf8() ); break; case UTextOrigin_Beginning: *former = NULL; start_para = 0; start_index = 0; end_para = start_para; end_index = start_index; if ( latter_req_len >= 0 ) { for ( i = 0; i < latter_req_len; i++ ) QTextEditPositionForward( &end_para, &end_index ); } else { if ( latter_req_len == UTextExtent_Line ) end_index = edit->paragraphLength( end_para ); else if ( latter_req_len == UTextExtent_Full ) { end_para = n_para - 1; end_index = edit->paragraphLength( end_para ); } else { edit->setTextFormat( format ); return -1; } } if ( end_para < para || ( end_para == para && end_index <= ( index - preedit_cursor_pos ) ) ) { edit->setSelection( start_para, start_index, end_para, end_index, 0 ); text = edit->selectedText(); } else { edit->setSelection( start_para, start_index, para, index - preedit_cursor_pos, 0 ); text = edit->selectedText(); edit->setSelection( para, index - preedit_cursor_pos + preedit_len, end_para, end_index, 0 ); text += edit->selectedText(); } *latter = strdup( text.utf8() ); break; case UTextOrigin_End: end_para = n_para - 1; end_index = edit->paragraphLength( end_para ); start_para = end_para; start_index = end_index; if ( former_req_len >= 0 ) { for ( i = 0; i < former_req_len; i++ ) QTextEditPositionBackward( &start_para, &start_index ); } else { if ( former_req_len == UTextExtent_Line ) start_index = 0; else if ( former_req_len == UTextExtent_Full ) { start_para = 0; start_index = 0; } else { edit->setTextFormat( format ); return -1; } } if ( start_para > para || ( start_para == para && start_index >= ( index - preedit_cursor_pos + preedit_len ) ) ) { edit->setSelection( start_para, start_index, end_para, end_index, 0 ); text = edit->selectedText(); } else { edit->setSelection( start_para, start_index, para, index - preedit_cursor_pos, 0 ); text = edit->selectedText(); edit->setSelection( para, index - preedit_cursor_pos + preedit_len, end_para, end_index, 0 ); text += edit->selectedText(); } *former = strdup( text.utf8() ); *latter = NULL; break; case UTextOrigin_Unspecified: default: edit->setTextFormat( format ); return -1; } if ( sel_start_para != -1 && sel_start_index != -1 && sel_end_para != -1 && sel_end_index != -1 ) edit->setSelection( sel_start_index, sel_start_index, sel_end_para, sel_end_index, 0 ); else edit->removeSelection( 0 ); edit->setCursorPosition( para, index ); edit->setTextFormat( format ); return 0; }