示例#1
0
VSearchResultItem *VSearch::searchForOutline(const VFile *p_file) const
{
    VEditTab *tab = g_mainWin->getEditArea()->getTab(p_file);
    if (!tab) {
        return NULL;
    }

    const VTableOfContent &toc = tab->getOutline();
    const QVector<VTableOfContentItem> &table = toc.getTable();
    VSearchResultItem *item = NULL;
    for (auto const & it: table) {
        if (it.isEmpty()) {
            continue;
        }

        if (!matchNonContent(it.m_name)) {
            continue;
        }

        if (!item) {
            item = new VSearchResultItem(VSearchResultItem::Note,
                                         VSearchResultItem::OutlineIndex,
                                         p_file->getName(),
                                         p_file->fetchPath());
        }

        VSearchResultSubItem sitem(it.m_index, it.m_name);
        item->m_matches.append(sitem);
    }

    return item;
}
示例#2
0
// Fetch VFileSessionInfo from @p_tabInfo.
VFileSessionInfo VFileSessionInfo::fromEditTabInfo(const VEditTabInfo *p_tabInfo)
{
    Q_ASSERT(p_tabInfo);
    VEditTab *tab = p_tabInfo->m_editTab;
    VFileSessionInfo info(tab->getFile()->fetchPath(),
                          tab->isEditMode() ? OpenFileMode::Edit : OpenFileMode::Read);
    info.m_headerIndex = p_tabInfo->m_headerIndex;
    info.m_cursorBlockNumber = p_tabInfo->m_cursorBlockNumber;
    info.m_cursorPositionInBlock = p_tabInfo->m_cursorPositionInBlock;

    return info;
}
示例#3
0
void VMdEditor::contextMenuEvent(QContextMenuEvent *p_event)
{
    QMenu *menu = createStandardContextMenu();
    menu->setToolTipsVisible(true);

    VEditTab *editTab = dynamic_cast<VEditTab *>(parent());
    Q_ASSERT(editTab);
    if (editTab->isEditMode()) {
        const QList<QAction *> actions = menu->actions();

        if (textCursor().hasSelection()) {
            initCopyAsMenu(actions.isEmpty() ? NULL : actions.last(), menu);
        } else {
            QAction *saveExitAct = new QAction(VIconUtils::menuIcon(":/resources/icons/save_exit.svg"),
                                               tr("&Save Changes And Read"),
                                               menu);
            saveExitAct->setToolTip(tr("Save changes and exit edit mode"));
            connect(saveExitAct, &QAction::triggered,
                    this, [this]() {
                        emit m_object->saveAndRead();
                    });

            QAction *discardExitAct = new QAction(VIconUtils::menuIcon(":/resources/icons/discard_exit.svg"),
                                                  tr("&Discard Changes And Read"),
                                                  menu);
            discardExitAct->setToolTip(tr("Discard changes and exit edit mode"));
            connect(discardExitAct, &QAction::triggered,
                    this, [this]() {
                        emit m_object->discardAndRead();
                    });

            menu->insertAction(actions.isEmpty() ? NULL : actions[0], discardExitAct);
            menu->insertAction(discardExitAct, saveExitAct);
        }

        if (!actions.isEmpty()) {
            menu->insertSeparator(actions[0]);
        }
    }

    menu->exec(p_event->globalPos());
    delete menu;
}