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

📄 trwindow.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				       " suggestions are used.") );    revertSortingAct->setWhatsThis( tr("Sort the items back in the same order"				       " as in the message file.") );    doGuessesAct->setWhatsThis( tr("Set whether or not to display translation guesses.") );    manualAct->setWhatsThis( tr("Display the manual for %1.")			       .arg(tr("Qt Linguist")) );    aboutAct->setWhatsThis( tr("Display information about %1.")			    .arg(tr("Qt Linguist")) );    aboutQtAct->setWhatsThis( tr("Display information about the Qt toolkit by"				 " Trolltech.") );    whatsThisAct->setWhatsThis( tr("Enter What's This? mode.") );    beginFromSourceAct->setWhatsThis( tr("Copies the source text into"					 " the translation field.") );    nextAct->setWhatsThis( tr("Moves to the next item.") );    prevAct->setWhatsThis( tr("Moves to the previous item.") );    nextUnfinishedAct->setWhatsThis( tr("Moves to the next unfinished item.") );    prevUnfinishedAct->setWhatsThis( tr("Moves to the previous unfinished item.") );    doneAndNextAct->setWhatsThis( tr("Marks this item as done and moves to the"				     " next unfinished item.") );    doneAndNextAlt->setWhatsThis( doneAndNextAct->whatsThis() );}void TrWindow::setupToolBars(){    QToolBar *filet = new QToolBar( tr("File"), this );    QToolBar *editt = new QToolBar( tr("Edit"), this );    QToolBar *translationst = new QToolBar( tr("Translation"), this );    QToolBar *validationt   = new QToolBar( tr("Validation"), this );    QToolBar *helpt = new QToolBar( tr("Help"), this );    openAct->addToToolbar( filet, tr("Open") );    saveAct->addToToolbar( filet, tr("Save") );    printAct->addToToolbar( filet, tr("Print") );    filet->addSeparator();    openPhraseBookAct->addToToolbar( filet, tr("Open Phrase Book") );    undoAct->addToToolbar( editt, tr("Undo") );    redoAct->addToToolbar( editt, tr("Redo") );    editt->addSeparator();    cutAct->addToToolbar( editt, tr("Cut") );    copyAct->addToToolbar( editt, tr("Copy") );    pasteAct->addToToolbar( editt, tr("Paste") );    editt->addSeparator();    findAct->addToToolbar( editt, tr("Find") );#ifdef notyet    replaceAct->addToToolbar( editt, tr("Replace") );#endif    // beginFromSourceAct->addToToolbar( translationst,    //                                tr("Begin from Source"), "searchfind" );    prevAct->addToToolbar( translationst, tr("Prev") );    nextAct->addToToolbar( translationst, tr("Next") );    prevUnfinishedAct->addToToolbar( translationst, tr("Prev Unfinished") );    nextUnfinishedAct->addToToolbar( translationst, tr("Next Unfinished") );    doneAndNextAct->addToToolbar( translationst, tr("Done and Next") );    acceleratorsAct->addToToolbar( validationt, tr("Accelerators") );    endingPunctuationAct->addToToolbar( validationt, tr("Punctuation") );    phraseMatchesAct->addToToolbar( validationt, tr("Phrases") );    whatsThisAct->addToToolbar( helpt, tr("What's This?") );}void TrWindow::setCurrentContextItem( QListViewItem *item ){    lv->ensureItemVisible( item );    lv->setSelected( item, TRUE );}void TrWindow::setCurrentMessageItem( QListViewItem *item ){    slv->ensureItemVisible( item );    slv->setSelected( item, TRUE );}QString TrWindow::friendlyPhraseBookName( int k ){    return QFileInfo( phraseBookNames[k] ).fileName();}bool TrWindow::openPhraseBook( const QString& name ){    PhraseBook *pb = new PhraseBook;    if ( !pb->load(name) ) {	QMessageBox::warning( this, tr("Qt Linguist"),			      tr("Cannot read from phrase book '%1'.")			      .arg(name) );	return FALSE;    }    int index = (int) phraseBooks.count();    phraseBooks.append( pb );    phraseBookNames.append( name );    int id = closePhraseBookp->insertItem( friendlyPhraseBookName(index) );    closePhraseBookp->setWhatsThis( id, tr("Close this phrase book.") );    id = editPhraseBookp->insertItem( friendlyPhraseBookName(index) );    editPhraseBookp->setWhatsThis( id, tr("Allow you to add, modify, or delete"					  " phrases of this phrase book.") );    id = printPhraseBookp->insertItem( friendlyPhraseBookName(index) );    printPhraseBookp->setWhatsThis( id, tr("Print the entries of the phrase"					   " book.") );    updatePhraseDict();    return TRUE;}bool TrWindow::savePhraseBook( QString& name, const PhraseBook& pb ){    if ( !name.contains( ".qph" ) && !name.contains(".") )	name += ".qph";    if ( !pb.save(name) ) {	QMessageBox::warning( this, tr("Qt Linguist"),			      tr("Cannot create phrase book '%1'.")			      .arg(name) );	return FALSE;    }    return TRUE;}void TrWindow::updateProgress(){    if ( numNonobsolete == 0 )	progress->setText( QString("    " "    ") );    else	progress->setText( QString(" %1/%2 ").arg(numFinished)			   .arg(numNonobsolete) );    prevUnfinishedAct->setEnabled( numFinished != numNonobsolete );    nextUnfinishedAct->setEnabled( numFinished != numNonobsolete );    prevAct->setEnabled( lv->firstChild() != 0 );    nextAct->setEnabled( lv->firstChild() != 0 );}void TrWindow::updatePhraseDict(){    QPtrListIterator<PhraseBook> pb = phraseBooks;    PhraseBook::Iterator p;    PhraseBook *ent;    phraseDict.clear();    while ( pb.current() != 0 ) {	for ( p = (*pb)->begin(); p != (*pb)->end(); ++p ) {	    QString f = friendlyString( (*p).source() );	    if ( f.length() > 0 ) {		f = QStringList::split( QChar(' '), f ).first();		ent = phraseDict.find( f );		if ( ent == 0 ) {		    ent = new PhraseBook;		    phraseDict.insert( f, ent );		}		ent->append( *p );	    }	}	++pb;    }    revalidate();}PhraseBook TrWindow::getPhrases( const QString& source ){    PhraseBook phrases;    QString f = friendlyString( source );    QStringList lookupWords = QStringList::split( QChar(' '), f );    QStringList::Iterator w;    PhraseBook::Iterator p;    for ( w = lookupWords.begin(); w != lookupWords.end(); ++w ) {	PhraseBook *ent = phraseDict.find( *w );	if ( ent != 0 ) {	    for ( p = ent->begin(); p != ent->end(); ++p ) {		if ( f.find(friendlyString((*p).source())) >= 0 )		    phrases.append( *p );	    }	}    }    return phrases;}bool TrWindow::danger( const QString& source, const QString& translation,		       bool verbose ){    if ( acceleratorsAct->isOn() ) {	int sk = QAccel::shortcutKey( source );	int tk = QAccel::shortcutKey( translation );	if ( sk == 0 && tk != 0 ) {	    if ( verbose )		statusBar()->message( tr("Accelerator possibly superfluous in"					 " translation."), ErrorMS );	    return TRUE;	} else if ( sk != 0 && tk == 0 ) {	    if ( verbose )		statusBar()->message( tr("Accelerator possibly missing in"					 " translation."), ErrorMS );	    return TRUE;	}    }    if ( endingPunctuationAct->isOn() ) {	if ( ending(source) != ending(translation) ) {	    if ( verbose )		statusBar()->message( tr("Translation does not end with the"					 " same punctuation as the source"					 " text."), ErrorMS );	    return TRUE;	}    }    if ( phraseMatchesAct->isOn() ) {	QString fsource = friendlyString( source );	QString ftranslation = friendlyString( translation );	QStringList lookupWords = QStringList::split( QChar(' '), fsource );	QStringList::Iterator w;	PhraseBook::Iterator p;	for ( w = lookupWords.begin(); w != lookupWords.end(); ++w ) {	    PhraseBook *ent = phraseDict.find( *w );	    if ( ent != 0 ) {		for ( p = ent->begin(); p != ent->end(); ++p ) {		    if ( fsource.find(friendlyString((*p).source())) < 0 ||			 ftranslation.find(friendlyString((*p).target())) >= 0 )			break;		}		if ( p == ent->end() ) {		    if ( verbose )			statusBar()->message( tr("A phrase book suggestion for"						 " '%1' was ignored.")						 .arg(*w), ErrorMS );		    return TRUE;		}	    }	}    }    if ( verbose )	statusBar()->clear();    return FALSE;}void TrWindow::readConfig(){    QString   keybase("/Qt Linguist/3.1/");    QSettings config;    config.insertSearchPath( QSettings::Windows, "/Trolltech" );    QRect r( pos(), size() );    recentFiles = config.readListEntry( keybase + "RecentlyOpenedFiles", ',' );    if ( !config.readBoolEntry( keybase + "Geometry/MainwindowMaximized", FALSE ) ) {	r.setX( config.readNumEntry( keybase + "Geometry/MainwindowX", r.x() ) );	r.setY( config.readNumEntry( keybase + "Geometry/MainwindowY", r.y() ) );	r.setWidth( config.readNumEntry( keybase + "Geometry/MainwindowWidth", r.width() ) );	r.setHeight( config.readNumEntry( keybase + "Geometry/MainwindowHeight", r.height() ) );	QRect desk = QApplication::desktop()->geometry();	QRect inter = desk.intersect( r );	resize( r.size() );	if ( inter.width() * inter.height() > ( r.width() * r.height() / 20 ) ) {	    move( r.topLeft() );	}    }    QDockWindow * dw;    dw = (QDockWindow *) lv->parent();    int place;    place = config.readNumEntry( keybase + "Geometry/ContextwindowInDock" );    r.setX( config.readNumEntry( keybase + "Geometry/ContextwindowX" ) );    r.setY( config.readNumEntry( keybase + "Geometry/ContextwindowY" ) );    r.setWidth( config.readNumEntry( keybase +				     "Geometry/ContextwindowWidth" ) );    r.setHeight( config.readNumEntry( keybase +				      "Geometry/ContextwindowHeight" ) );    if ( place == QDockWindow::OutsideDock ) {	dw->undock();	dw->show();    }    dw->setGeometry( r );    dw = (QDockWindow *) slv->parent();    place = config.readNumEntry( keybase + "Geometry/SourcewindowInDock" );    r.setX( config.readNumEntry( keybase + "Geometry/SourcewindowX" ) );    r.setY( config.readNumEntry( keybase + "Geometry/SourcewindowY" ) );    r.setWidth( config.readNumEntry( keybase +				     "Geometry/SourcewindowWidth" ) );    r.setHeight( config.readNumEntry( keybase +				      "Geometry/SourcewindowHeight" ) );    if ( place == QDockWindow::OutsideDock ) {	dw->undock();	dw->show();    }    dw->setGeometry( r );    dw = (QDockWindow *) plv->parent()->parent();    place = config.readNumEntry( keybase + "Geometry/PhrasewindowInDock" );    r.setX( config.readNumEntry( keybase + "Geometry/PhrasewindowX" ) );    r.setY( config.readNumEntry( keybase + "Geometry/PhrasewindowY" ) );    r.setWidth( config.readNumEntry( keybase +				     "Geometry/PhrasewindowWidth" ) );    r.setHeight( config.readNumEntry( keybase +				      "Geometry/PhrasewindowHeight" ) );    if ( place == QDockWindow::OutsideDock ) {	dw->undock();	dw->show();    }    dw->setGeometry( r );    QApplication::sendPostedEvents();}void TrWindow::writeConfig(){    QString   keybase("/Qt Linguist/3.1/");    QSettings config;    config.insertSearchPath( QSettings::Windows, "/Trolltech" );    config.writeEntry( keybase + "RecentlyOpenedFiles", recentFiles, ',' );    config.writeEntry( keybase + "Geometry/MainwindowMaximized", isMaximized() );    config.writeEntry( keybase + "Geometry/MainwindowX", x() );    config.writeEntry( keybase + "Geometry/MainwindowY", y() );    config.writeEntry( keybase + "Geometry/MainwindowWidth", width() );    config.writeEntry( keybase + "Geometry/MainwindowHeight", height() );    QDockWindow * dw =(QDockWindow *) lv->parent();    config.writeEntry( keybase + "Geometry/ContextwindowInDock", dw->place() );    config.writeEntry( keybase + "Geometry/ContextwindowX", dw->x() );    config.writeEntry( keybase + "Geometry/ContextwindowY", dw->y() );    config.writeEntry( keybase + "Geometry/ContextwindowWidth", dw->width() );    config.writeEntry( keybase + "Geometry/ContextwindowHeight", dw->height() );    dw =(QDockWindow *) slv->parent();    config.writeEntry( keybase + "Geometry/SourcewindowInDock",		       dw->place() );    config.writeEntry( keybase + "Geometry/SourcewindowX", dw->geometry().x() );    config.writeEntry( keybase + "Geometry/SourcewindowY", dw->geometry().y() );    config.writeEntry( keybase + "Geometry/SourcewindowWidth", dw->width() );    config.writeEntry( keybase + "Geometry/SourcewindowHeight", dw->height() );    dw =(QDockWindow *) plv->parent()->parent();    config.writeEntry( keybase + "Geometry/PhrasewindowInDock",		       dw->place() );    config.writeEntry( keybase + "Geometry/PhrasewindowX", dw->geometry().x() );    config.writeEntry( keybase + "Geometry/PhrasewindowY", dw->geometry().y() );    config.writeEntry( keybase + "Geometry/PhrasewindowWidth", dw->width() );    config.writeEntry( keybase + "Geometry/PhrasewindowHeight", dw->height() );}void TrWindow::setupRecentFilesMenu(){    recentFilesMenu->clear();    int id = 0;    QStringList::Iterator it = recentFiles.begin();    for ( ; it != recentFiles.end(); ++it )    {	recentFilesMenu->insertItem( *it, id );	id++;    }}void TrWindow::recentFileActivated( int id ){    if ( id != -1 ) {	if ( maybeSave() )	    openFile( *recentFiles.at( id ) );    }}void TrWindow::addRecentlyOpenedFile( const QString &fn, QStringList &lst ){    if ( lst.find( fn ) != lst.end() )	return;    if ( lst.count() >= 10 )	lst.remove( lst.begin() );    lst << fn;}void TrWindow::toggleGuessing(){    me->toggleGuessing();}void TrWindow::focusSourceList(){    slv->setFocus();}void TrWindow::focusPhraseList(){    plv->setFocus();}void TrWindow::updateClosePhraseBook(){    if ( dirtyItem != -1 ) {	closePhraseBookp->removeItem( closePhraseBookp->idAt(dirtyItem) );	dirtyItem = -1;    }}

⌨️ 快捷键说明

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