⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trwindow.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    int index = printPhraseBookp->indexOf( id );    int pageNum = 0;    if ( printer.setup(this) ) {	printer.setDocName( phraseBookNames[index] );	statusBar()->message( tr("Printing...") );	PrintOut pout( &printer );	PhraseBook *phraseBook = phraseBooks.at( index );	PhraseBook::Iterator p;	pout.setRule( PrintOut::ThinRule );	for ( p = phraseBook->begin(); p != phraseBook->end(); ++p ) {	    pout.setGuide( (*p).source() );	    pout.addBox( 29, (*p).source() );	    pout.addBox( 4 );	    pout.addBox( 29, (*p).target() );	    pout.addBox( 4 );	    pout.addBox( 34, (*p).definition(), PrintOut::Emphasis );	    if ( pout.pageNum() != pageNum ) {		pageNum = pout.pageNum();		statusBar()->message( tr("Printing... (page %1)")				      .arg(pageNum) );	    }	    pout.setRule( PrintOut::NoRule );	    pout.flushLine( TRUE );	}	pout.flushLine( TRUE );	statusBar()->message( tr("Printing completed"), MessageMS );    } else {	statusBar()->message( tr("Printing aborted"), MessageMS );    }}void TrWindow::revertSorting(){    lv->setSorting( 0 );    slv->setSorting( 0 );}void TrWindow::manual(){    QString path = QDir::cleanDirPath( QString( qInstallPath() ) +				       QDir::separator() + "bin/" );#if defined(Q_OS_MACX)    path += QDir::separator() + ".app/Contents/MacOS/";#endif    QAssistantClient *ac = new QAssistantClient( path, this );    ac->showPage( QString( qInstallPath() ) + "/doc/html/linguist-manual.html" );}void TrWindow::about(){    AboutDialog about( this, 0, TRUE );    about.versionLabel->setText( tr("Version %1").arg(QT_VERSION_STR) );    about.exec();}void TrWindow::aboutQt(){    QMessageBox::aboutQt( this, tr("Qt Linguist") );}void TrWindow::setupPhrase(){    bool enabled = !phraseBooks.isEmpty();    phrasep->setItemEnabled( closePhraseBookId, enabled );    phrasep->setItemEnabled( editPhraseBookId, enabled );    phrasep->setItemEnabled( printPhraseBookId, enabled );}void TrWindow::closeEvent( QCloseEvent *e ){    if ( maybeSave() )	e->accept();    else	e->ignore();}bool TrWindow::maybeSave(){    if ( dirty ) {	switch ( QMessageBox::information(this, tr("Qt Linguist"),				  tr("Do you want to save '%1'?")				  .arg(filename),				  QMessageBox::Yes | QMessageBox::Default,				  QMessageBox::No,				  QMessageBox::Cancel | QMessageBox::Escape ) )	{	    case QMessageBox::Cancel:		return FALSE;	    case QMessageBox::Yes:		save();		break;	    case QMessageBox::No:		break;	}    }    return TRUE;}void TrWindow::updateCaption(){    QString cap;    bool enable = !filename.isEmpty();    saveAct->setEnabled( enable );    saveAsAct->setEnabled( enable );    releaseAct->setEnabled( enable );    printAct->setEnabled( enable );    acceleratorsAct->setEnabled( enable );    endingPunctuationAct->setEnabled( enable );    phraseMatchesAct->setEnabled( enable );    revertSortingAct->setEnabled( enable );    if ( filename.isEmpty() )	cap = tr( "Qt Linguist by Trolltech" );    else	cap = tr( "%1 - %2" ).arg( tr("Qt Linguist by Trolltech") )			     .arg( filename );    setCaption( cap );    modified->setEnabled( dirty );}//// New scope selected - build a new list of source text items// for that scope.//void TrWindow::showNewScope( QListViewItem *item ){    static ContextLVI * oldContext = 0;    if( item != 0 ) {	ContextLVI * c = (ContextLVI *) item;	bool upe = slv->isUpdatesEnabled();	slv->setUpdatesEnabled( FALSE );	slv->viewport()->setUpdatesEnabled( FALSE );	if ( oldContext != 0 ) {	    MessageLVI * tmp;	    slv->blockSignals( TRUE );	    while ( (tmp = (MessageLVI *) slv->firstChild()) != 0 )		oldContext->appendMessageItem( slv, tmp );	    slv->blockSignals( FALSE );	}	MessageLVI * tmp;	while ( c->messageItemsInList() ) {	    tmp = c->takeMessageItem( c->messageItemsInList() - 1);	    slv->insertItem( tmp );	    tmp->updateTranslationText();	}	slv->viewport()->setUpdatesEnabled( upe );	slv->setUpdatesEnabled( upe );	if( upe )	    slv->triggerUpdate();	oldContext = (ContextLVI *) item;	statusBar()->clear();    }}void TrWindow::showNewCurrent( QListViewItem *item ){    messageIsShown = (item != 0);    MessageLVI *m = (MessageLVI *) item;    ContextLVI *c = (ContextLVI *) m ? m->contextLVI() : 0;    if ( messageIsShown ) {	me->showMessage( m->sourceText(), m->comment(), c->fullContext(),			 m->translation(), m->message().type(),			 getPhrases(m->sourceText()) );	if ( (m->message().type() != MetaTranslatorMessage::Finished) &&	     m->danger() )	    danger( m->sourceText(), m->translation(), TRUE );	else	    statusBar()->clear();	doneAndNextAct->setEnabled( m->message().type() !=				    MetaTranslatorMessage::Obsolete );    } else {	if ( item == 0 )	    me->showNothing();	else	    me->showContext( c->fullContext(), c->finished() );	doneAndNextAct->setEnabled( FALSE );    }    doneAndNextAlt->setEnabled( doneAndNextAct->isEnabled() );    selectAllAct->setEnabled( messageIsShown );}void TrWindow::updateTranslation( const QString& translation ){    QListViewItem *item = slv->currentItem();    if ( item != 0 ) {	MessageLVI *m = (MessageLVI *) item;	if ( translation != m->translation() ) {	    bool dngr;	    m->setTranslation( translation );	    if ( m->finished() &&		 (dngr = danger( m->sourceText(), m->translation(), TRUE )) ) {		numFinished -= 1;		m->setDanger( dngr );		m->setFinished( FALSE );		m->contextLVI()->updateStatus();		updateProgress();	    }	    tor.insert( m->message() );	    if ( !dirty ) {		dirty = TRUE;		updateCaption();	    }	    m->updateTranslationText();	}    }}void TrWindow::updateFinished( bool finished ){    QListViewItem *item = slv->currentItem();    if ( item != 0 ) {	MessageLVI *m = (MessageLVI *) item;	if ( finished != m->finished() ) {	    numFinished += finished ? +1 : -1;	    updateProgress();	    m->setFinished( finished );	    bool oldDanger = m->danger();	    m->setDanger( /*m->finished() &&*/			  danger(m->sourceText(), m->translation(),			  !oldDanger) );	    if ( !oldDanger && m->danger() )		qApp->beep();	    tor.insert( m->message() );	    if ( !dirty ) {		dirty = TRUE;		updateCaption();	    }	}    }}void TrWindow::doneAndNext(){    MessageLVI * m = (MessageLVI *) slv->currentItem();    bool dngr = FALSE;    if ( !m ) return;    dngr = danger( m->sourceText(), m->translation(), TRUE );    if ( !dngr ) {	me->finishAndNext();	m->contextLVI()->updateStatus();    } else {	if ( m->danger() != dngr )	    m->setDanger( dngr );	tor.insert( m->message() );	if ( !dirty ) {	    dirty = TRUE;	    updateCaption();	}	qApp->beep();    }}void TrWindow::toggleFinished( QListViewItem *item, const QPoint& /* p */,			       int column ){    if ( item != 0 && column == 0 ) {	MessageLVI *m = (MessageLVI *) item;	bool dngr = FALSE;	if ( m->message().type() == MetaTranslatorMessage::Unfinished ) {	    dngr = danger( m->sourceText(), m->translation(), TRUE );	}	if ( !dngr && m->message().type() != MetaTranslatorMessage::Obsolete) {	    setCurrentMessageItem( m );	    me->setFinished( !m->finished() );	    m->contextLVI()->updateStatus();	} else {	    bool oldDanger = m->danger();	    m->setDanger( danger(m->sourceText(), m->translation(),				 !oldDanger) );	    if ( !oldDanger && m->danger() )		qApp->beep();	    tor.insert( m->message() );	    if ( !dirty ) {		dirty = TRUE;		updateCaption();	    }	}    }}void TrWindow::nextUnfinished(){    if ( nextUnfinishedAct->isEnabled() ) {	// Select a message to translate, grab the first available if	// there are no current selection.	QListViewItem * cItem = lv->currentItem(); // context item	QListViewItem * mItem = slv->currentItem(); // message item	// Make sure an item is selected from both the context and the	// message list.	if( (mItem == 0) && !(mItem = slv->firstChild()) ) {	    if( (cItem == 0) && !(cItem = lv->firstChild()) ) {		statusBar()->message( tr("No phrase to translate."),				      MessageMS );		qApp->beep();		return;	    } else {		showNewScope( cItem );		while( cItem && !(mItem = slv->firstChild()) ) {		    // no children in this node - try next one		    cItem = cItem->nextSibling();		    showNewScope( cItem );		}		setCurrentContextItem( cItem );		if( mItem ) {		    setCurrentMessageItem( cItem );		} else {		    statusBar()->message( tr("No phrase to translate."),					  MessageMS );		    qApp->beep();		    return;		}	    }	} else {	    setCurrentMessageItem( mItem );	}	MessageLVI * m = (MessageLVI *) mItem;	MessageLVI * n;	ContextLVI * p = (ContextLVI *) cItem;	ContextLVI * q;	// Find the next Unfinished sibling within the same context.	m = (MessageLVI *) mItem->nextSibling();	n = m;	do {	    if ( n == 0 )		break;	    if ( n && !n->finished() && n != mItem ) {		setCurrentMessageItem( n );		return;	    }	    n = (MessageLVI *) n->nextSibling();	} while ( n != m );	// If all siblings are Finished or Obsolete, look in the first	// Unfinished context.	p = (ContextLVI *) p->nextSibling();	q = p;	do {	    if ( q == 0 )		q = (ContextLVI *) lv->firstChild();	    if ( q && !q->finished() ) {		showNewScope( q );		setCurrentContextItem( q );		n = (MessageLVI *) slv->firstChild();		while ( n && n->finished() )		    n = (MessageLVI *) n->nextSibling();		if ( n && q ) {		    setCurrentMessageItem( n );		    return;		}	    }	    q = (ContextLVI *) q->nextSibling();	} while ( q != p );    }    // If no Unfinished message is left, the user has finished the job.  We    // congratulate on a job well done with this ringing bell.    statusBar()->message( tr("No untranslated phrases left."), MessageMS );    qApp->beep();}static QListViewItem * lastChild( QListView * view ){    if ( view ) {	QListViewItem * ret, * tmp;	ret = view->firstChild();	while ( ret ) {	    tmp = ret->nextSibling();	    if ( tmp == 0 )		return ret;	    ret = tmp;	}    }    return 0;}void TrWindow::prevUnfinished(){    if ( prevUnfinishedAct->isEnabled() ) {	// Select a message to translate, grab the first available if	// there are no current selection.	QListViewItem * cItem = lv->currentItem();  // context item	QListViewItem * mItem = slv->currentItem(); // message item	// Make sure an item is selected from both the context and the

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -