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

📄 trwindow.cpp

📁 QT 开发环境里面一个很重要的文件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
            return true; // found a unfinished context        }    }    return false; // done}bool TrWindow::setNextMessage(QModelIndex *currentIndex, bool checkUnfinished){    bool found = false;    if (currentIndex->isValid()) {        QModelIndex idx = *currentIndex;        do {            int row = 0;            QModelIndex par = idx.parent();            if (par.isValid()) {                row = idx.row() + 1;            } else {        //In case we are located on a top-level node                par = idx;            }            if (row >= cmdl->rowCount(par)) {                int toprow = par.row() + 1;                if (toprow >= cmdl->rowCount()) toprow = 0;                par = cmdl->index(toprow, 0);                row = 0;                idx = cmdl->index(row, 1, par);            } else {                idx = cmdl->index(row, 1, par);            }            found = checkUnfinished ? !cmdl->finished(idx) : true;            if (idx == *currentIndex) break;        } while(!found);        if (found) {            *currentIndex = idx;            tv->setCurrentIndex(*currentIndex);        }    }    return found;}bool TrWindow::setPrevMessage(QModelIndex *currentIndex, bool checkUnfinished){    bool found = false;    Q_ASSERT(currentIndex);    QModelIndex idx = currentIndex->isValid() ? *currentIndex : cmdl->index(0, 0);    do {        int row = idx.row() - 1;        QModelIndex par = idx.parent();        if (!par.isValid()) {   //In case we are located on a top-level node            par = idx;            row = -1;        }        if (row < 0) {            int toprow = par.row() - 1;            if (toprow < 0) toprow = cmdl->rowCount() - 1;            par = cmdl->index(toprow, 0);            row = cmdl->rowCount(par) - 1;            idx = cmdl->index(row, 1, par);        } else {            idx = cmdl->index(row, 1, par);        }        found = checkUnfinished ? !cmdl->finished(idx) : true;        if (idx == *currentIndex) break;    } while(!found);    if (found) {        *currentIndex = idx;        tv->setCurrentIndex(*currentIndex);    }    return found;}void TrWindow::nextUnfinished(){    if (m_ui.actionNextUnfinished->isEnabled()) {        if (!next(true)) {            // If no Unfinished message is left, the user has finished the job.  We            // congratulate on a job well done with this ringing bell.            statusBar()->showMessage(tr("No untranslated phrases left."), MessageMS);            qApp->beep();        }    }}void TrWindow::prevUnfinished(){    if (m_ui.actionNextUnfinished->isEnabled()) {        if (!prev(true)) {            // If no Unfinished message is left, the user has finished the job.  We            // congratulate on a job well done with this ringing bell.            statusBar()->showMessage(tr("No untranslated phrases left."), MessageMS);            qApp->beep();        }    }}void TrWindow::prev(){    prev(false);}bool TrWindow::prev(bool checkUnfinished){    QModelIndex current = tv->currentIndex();    return setPrevMessage(&current, checkUnfinished);    }bool TrWindow::next(bool checkUnfinished){    QModelIndex current = tv->currentIndex();    return setNextMessage(&current, checkUnfinished);}void TrWindow::next(){    next(false);}void TrWindow::findNext(const QString &text, int where, bool matchCase){    if (text.isEmpty())        return;    findText = text;    findWhere = where;    findMatchCase = matchCase;    m_ui.actionFindNext->setEnabled(true);    findAgain();}void TrWindow::revalidate(){    if (cmdl->contextsInList() <= 0)        return;    ContextItem *c;    MessageItem *m;    for (int ci=0; ci<cmdl->contextsInList(); ++ci) {        c = cmdl->contextItem(cmdl->index(ci, 0));        for (int mi=0; mi<c->messageItemsInList(); ++mi) {            m = c->messageItem(mi);            updateDanger(m);            //if (cmdl->contextItem() == c)            //    cmdl->updateItem(cmdl->index(mi, 0));        }        cmdl->updateItem(cmdl->index(ci, 0));    }}QString TrWindow::friendlyString(const QString& str){    QString f = str.toLower();    f.replace(QRegExp(QString("[.,:;!?()-]")), QString(" "));    f.replace("&", QString(""));    f = f.simplified();    f = f.toLower();    return f;}void TrWindow::setupMenuBar(){    m_ui.setupUi(this);    m_ui.actionAccelerators->setIcon(QIcon(rsrcString + "/accelerator.png"));    m_ui.actionOpenPhraseBook->setIcon(QIcon(rsrcString + "/book.png"));    m_ui.actionDoneAndNext->setIcon(QIcon(rsrcString + "/doneandnext.png"));    m_ui.actionCopy->setIcon(QIcon(rsrcString + "/editcopy.png"));    m_ui.actionCut->setIcon(QIcon(rsrcString + "/editcut.png"));    m_ui.actionPaste->setIcon(QIcon(rsrcString + "/editpaste.png"));    m_ui.actionOpen->setIcon(QIcon(rsrcString + "/fileopen.png"));    m_ui.actionSave->setIcon(QIcon(rsrcString + "/filesave.png"));    m_ui.actionNext->setIcon(QIcon(rsrcString + "/next.png"));    m_ui.actionNextUnfinished->setIcon(QIcon(rsrcString + "/nextunfinished.png"));    m_ui.actionPhraseMatches->setIcon(QIcon(rsrcString + "/phrase.png"));    m_ui.actionEndingPunctuation->setIcon(QIcon(rsrcString + "/punctuation.png"));    m_ui.actionPrev->setIcon(QIcon(rsrcString + "/prev.png"));    m_ui.actionPrevUnfinished->setIcon(QIcon(rsrcString + "/prevunfinished.png"));    m_ui.actionPrint->setIcon(QIcon(rsrcString + "/print.png"));    m_ui.actionRedo->setIcon(QIcon(rsrcString + "/redo.png"));    m_ui.actionFind->setIcon(QIcon(rsrcString + "/searchfind.png"));    m_ui.actionUndo->setIcon(QIcon(rsrcString + "/undo.png"));    m_ui.actionPlaceMarkerMatches->setIcon(QIcon(rsrcString + "/validateplacemarkers.png"));    m_ui.actionWhatsThis->setIcon(QIcon(rsrcString + "/whatsthis.png"));        // File menu    connect(m_ui.actionOpen, SIGNAL(triggered()), this, SLOT(open()));    connect(m_ui.actionSave, SIGNAL(triggered()), this, SLOT(save()));    connect(m_ui.actionSaveAs, SIGNAL(triggered()), this, SLOT(saveAs()));    connect(m_ui.actionRelease, SIGNAL(triggered()), this, SLOT(release()));    connect(m_ui.actionReleaseAs, SIGNAL(triggered()), this, SLOT(releaseAs()));    connect(m_ui.actionPrint, SIGNAL(triggered()), this, SLOT(print()));    connect(m_ui.actionExit, SIGNAL(triggered()), this, SLOT(close()));    // Edit menu    connect(m_ui.actionUndo, SIGNAL(triggered()), me, SLOT(undo()));    connect(me, SIGNAL(undoAvailable(bool)), m_ui.actionUndo, SLOT(setEnabled(bool)));    connect(m_ui.actionRedo, SIGNAL(triggered()), me, SLOT(redo()));    connect(me, SIGNAL(redoAvailable(bool)), m_ui.actionRedo, SLOT(setEnabled(bool)));    connect(m_ui.actionCopy, SIGNAL(triggered()), me, SLOT(copy()));    connect(me, SIGNAL(copyAvailable(bool)), m_ui.actionCopy, SLOT(setEnabled(bool)));    connect(me, SIGNAL(cutAvailable(bool)), m_ui.actionCut, SLOT(setEnabled(bool)));    connect(m_ui.actionCut, SIGNAL(triggered()), me, SLOT(cut()));    connect(me, SIGNAL(pasteAvailable(bool)), m_ui.actionPaste, SLOT(setEnabled(bool)));    connect(m_ui.actionPaste, SIGNAL(triggered()), me, SLOT(paste()));    connect(m_ui.actionSelectAll, SIGNAL(triggered()), me, SLOT(selectAll()));    connect(m_ui.actionFind, SIGNAL(triggered()), this, SLOT(find()));    connect(m_ui.actionFindNext, SIGNAL(triggered()), this, SLOT(findAgain()));    connect(m_ui.actionSearchAndTranslate, SIGNAL(triggered()), this, SLOT(showTranslateDialog()));    connect(m_ui.actionBatchTranslation, SIGNAL(triggered()), this, SLOT(showBatchTranslateDialog()));        connect( m_ui.actionTranslationFileSettings, SIGNAL(triggered()), this, SLOT(showTranslationSettings()) );    // Translation menu    // when updating the accelerators, remember the status bar    connect(m_ui.actionPrevUnfinished, SIGNAL(triggered()), this, SLOT(prevUnfinished()));    connect(m_ui.actionNextUnfinished, SIGNAL(triggered()), this, SLOT(nextUnfinished()));    connect(m_ui.actionNext, SIGNAL(triggered()), this, SLOT(next()));    connect(m_ui.actionPrev, SIGNAL(triggered()), this, SLOT(prev()));    connect(m_ui.actionDoneAndNext, SIGNAL(triggered()), this, SLOT(doneAndNext()));    connect(m_ui.actionBeginFromSource, SIGNAL(triggered()), me, SLOT(beginFromSource()));    connect(me, SIGNAL(updateActions(bool)), m_ui.actionBeginFromSource, SLOT(setEnabled(bool)));    // Phrasebook menu    connect(m_ui.actionNewPhraseBook, SIGNAL(triggered()), this, SLOT(newPhraseBook()));    connect(m_ui.actionOpenPhraseBook, SIGNAL(triggered()), this, SLOT(openPhraseBook()));    connect(m_ui.menuClosePhraseBook, SIGNAL(triggered(QAction*)),        this, SLOT(closePhraseBook(QAction*)));    connect(m_ui.menuEditPhraseBook, SIGNAL(triggered(QAction*)),        this, SLOT(editPhraseBook(QAction*)));    connect(m_ui.menuPrintPhraseBook, SIGNAL(triggered(QAction*)),        this, SLOT(printPhraseBook(QAction*)));    // Validation menu    connect(m_ui.actionAccelerators, SIGNAL(triggered()), this, SLOT(revalidate()));    connect(m_ui.actionEndingPunctuation, SIGNAL(triggered()), this, SLOT(revalidate()));    connect(m_ui.actionPhraseMatches, SIGNAL(triggered()), this, SLOT(revalidate()));    connect(m_ui.actionPlaceMarkerMatches, SIGNAL(triggered()), this, SLOT(revalidate()));    // View menu    connect(m_ui.actionRevertSorting, SIGNAL(triggered()), this, SLOT(revertSorting()));    connect(m_ui.actionDisplayGuesses, SIGNAL(triggered()), this, SLOT(toggleGuessing()));    connect(m_ui.actionStatistics, SIGNAL(triggered()), this, SLOT(toggleStatistics()));    connect(m_ui.menuView, SIGNAL(aboutToShow()), this, SLOT(updateViewMenu()));    m_ui.menuViewViews->addAction( dwScope->toggleViewAction() );    m_ui.menuViewViews->addAction( me->phraseDockWnd()->toggleViewAction() );    // Tools menu    connect(m_batchTranslateDlg, SIGNAL(finished()), this, SLOT(finishedBatchTranslation()));    connect(m_ui.actionPreviewForm, SIGNAL(triggered()), this, SLOT(previewForm()));#if defined(Q_WS_MAC)    // Window menu    QMenu *windowMenu = new QMenu(tr("&Window"), this);    menuBar()->insertMenu(m_ui.menuHelp->menuAction(), windowMenu);    windowMenu->addAction(tr("Minimize"), this,        SLOT(showMinimized()), QKeySequence(tr("Ctrl+M")));#endif    // Help    connect(m_ui.actionManual, SIGNAL(triggered()), this, SLOT(manual()));    connect(m_ui.actionAbout, SIGNAL(triggered()), this, SLOT(about()));    connect(m_ui.actionAboutQt, SIGNAL(triggered()), this, SLOT(aboutQt()));    connect(m_ui.actionWhatsThis, SIGNAL(triggered()), this, SLOT(onWhatsThis()));    connect(m_ui.menuFile, SIGNAL(aboutToShow()), this,        SLOT(setupRecentFilesMenu()));    connect(m_ui.menuRecentlyOpenedFiles, SIGNAL(triggered(QAction*)), this,        SLOT(recentFileActivated(QAction*)));    m_ui.actionManual->setWhatsThis(tr("Display the manual for %1.").arg(tr("Qt Linguist")));    m_ui.actionAbout->setWhatsThis(tr("Display information about %1.").arg(tr("Qt Linguist")));    m_ui.actionDoneAndNext->setShortcuts(QList<QKeySequence>()                                            << QKeySequence("Ctrl+Return")                                            << QKeySequence("Ctrl+Enter"));    // Disable the Close/Edit/Print phrasebook menuitems if they are not loaded    connect(m_ui.menuPhrases, SIGNAL(aboutToShow()), this, SLOT(setupPhrase()));}void TrWindow::updateViewMenu(){    if (stats)        m_ui.actionStatistics->setChecked(stats->isVisible());    else        m_ui.actionStatistics->setChecked(false);}void TrWindow::onWhatsThis(){    QWhatsThis::enterWhatsThisMode();}void TrWindow::setupToolBars(){    QToolBar *filet = new QToolBar(this);    filet->setObjectName("FileToolbar");    filet->setWindowTitle(tr("File"));	this->addToolBar(filet);    m_ui.menuToolbars->addAction(filet->toggleViewAction());    QToolBar *editt = new QToolBar(this);    editt->setVisible(false);    editt->setObjectName("EditToolbar");    editt->setWindowTitle(tr("Edit"));    this->addToolBar(editt);    m_ui.menuToolbars->addAction(editt->toggleViewAction());    QToolBar *translationst = new QToolBar(this);    translationst->setObjectName("TranslationToolbar");    translationst->setWindowTitle(tr("Translation"));	this->addToolBar(translationst);    m_ui.menuToolbars->addAction(translationst->toggleViewAction());    QToolBar *validationt = new QToolBar(this);    validationt->setObjectName("ValidationToolbar");    validationt->setWindowTitle(tr("Validation"));	this->addToolBar(validationt);    m_ui.menuToolbars->addAction(validationt->toggleViewAction());    QToolBar *helpt = new QToolBar(this);    helpt->setVisible(false);    helpt->setObjectName("HelpToolbar");    helpt->setWindowTitle(tr("Help"));	this->addToolBar(helpt);    m_ui.menuToolbars->addAction(helpt->toggleViewAction());    filet->addAction(m_ui.actionOpen);    filet->addAction(m_ui.actionSave);    filet->addAction(m_ui.actionPrint);    filet->addSeparator();    filet->addAction(m_ui.actionOpenPhraseBook);    editt->addAction(m_ui.actionUndo);    editt->addAction(m_ui.actionRedo);    editt->addSeparator();    editt->addAction(m_ui.actionCut);    editt->addAction(m_ui.actionCopy);    editt->addAction(m_ui.actionPaste);    editt->addSeparator();    editt->addAction(m_ui.actionFind);    translationst->addAction(m_ui.actionPrev);    translationst->addAction(m_ui.actionNext);    translationst->addAction(m_ui.actionPrevUnfinished);    translationst->addAction(m_ui.actionNextUnfinished);    translationst->addAction(m_ui.actionDoneAndNext);    validationt->addAction(m_ui.actionAccelerators);    validationt->addAction(m_ui.actionEndingPunctuation);    validationt->addAction(m_ui.actionPhraseMatches);    validationt->addAction(m_ui.actionPlaceMarkerMatches);    helpt->addAction(m_ui.actionWhatsThis);}void TrWindow::setCurrentContext(const QModelIndex &indx){    tv->setCurrentIndex(indx);    tv->scrollTo(indx);}void TrWindow::setCurrentContextRow(int row){    QModelIndex mdlI = cmdl->index(row,1);    tv->setCurrentIndex(mdlI);    tv->scrollTo(mdlI);}void TrWindow::setCurrentMessage(const QModelIndex &indx){    tv->setCurrentIndex(indx);    tv->scrollTo(indx);}bool TrWindow::openPhraseBook(const QString& name){    PhraseBook pb;    if (!pb.load(name)) {

⌨️ 快捷键说明

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