本文整理汇总了C++中DocumentView类的典型用法代码示例。如果您正苦于以下问题:C++ DocumentView类的具体用法?C++ DocumentView怎么用?C++ DocumentView使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DocumentView类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: activeView
Editor* UIContext::activeEditor()
{
DocumentView* view = activeView();
if (view)
return view->getEditor();
else
return NULL;
}
示例2: onWindowResize
void PreviewEditorWindow::onWindowResize()
{
Window::onWindowResize();
DocumentView* view = UIContext::instance()->activeView();
if (view)
updateUsingEditor(view->editor());
}
示例3: onCenterClicked
void PreviewEditorWindow::onCenterClicked()
{
if (m_centerButton->isSelected()) {
DocumentView* view = UIContext::instance()->activeView();
if (view)
updateUsingEditor(view->getEditor());
}
}
示例4: on_document_switched
void FindBar::on_document_switched(DocumentView& buffer) {
//Create the buffer tag if necessary
if(!buffer.buffer()->get_tag_table()->lookup(SEARCH_HIGHLIGHT_TAG)) {
L_DEBUG("Creating search highlight tag");
auto tag = buffer.buffer()->create_tag (SEARCH_HIGHLIGHT_TAG);
tag->property_background() = "#1EBCFF";
}
}
示例5: XOJ_CHECK_TYPE_OBJ
void RenderJob::rerenderRectangle(RenderJob * renderJob, Rectangle * rect) {
XOJ_CHECK_TYPE_OBJ(renderJob, RenderJob);
PageView * view = renderJob->view;
double zoom = view->xournal->getZoom();
Document * doc = view->xournal->getDocument();
doc->lock();
double pageWidth = view->page.getWidth();
double pageHeight = view->page.getHeight();
doc->unlock();
int x = rect->x * zoom;
int y = rect->y * zoom;
int width = rect->width * zoom;
int height = rect->height * zoom;
cairo_surface_t * rectBuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
cairo_t * crRect = cairo_create(rectBuffer);
cairo_translate(crRect, -x, -y);
cairo_scale(crRect, zoom, zoom);
DocumentView v;
v.limitArea(rect->x, rect->y, rect->width, rect->height);
if (view->page.getBackgroundType() == BACKGROUND_TYPE_PDF) {
int pgNo = view->page.getPdfPageNr();
XojPopplerPage * popplerPage = doc->getPdfPage(pgNo);
PdfCache * cache = view->xournal->getCache();
PdfView::drawPage(cache, popplerPage, crRect, zoom, pageWidth, pageHeight);
}
doc->lock();
v.drawPage(view->page, crRect, false);
doc->unlock();
cairo_destroy(crRect);
g_mutex_lock(view->drawingMutex);
cairo_t * crPageBuffer = cairo_create(view->crBuffer);
cairo_set_operator(crPageBuffer, CAIRO_OPERATOR_SOURCE);
cairo_set_source_surface(crPageBuffer, rectBuffer, x, y);
cairo_rectangle(crPageBuffer, x, y, width, height);
cairo_fill(crPageBuffer);
cairo_destroy(crPageBuffer);
cairo_surface_destroy(rectBuffer);
g_mutex_unlock(view->drawingMutex);
}
示例6: updateDisplayTitleBar
void App::updateDisplayTitleBar()
{
std::string defaultTitle = PACKAGE " v" VERSION;
std::string title;
DocumentView* docView = UIContext::instance()->activeView();
if (docView) {
// Prepend the document's filename.
title += docView->getDocument()->name();
title += " - ";
}
title += defaultTitle;
she::instance()->defaultDisplay()->setTitleBar(title);
}
示例7: activeView
void UIContext::onGetActiveSite(Site* site) const
{
DocumentView* view = activeView();
if (view) {
view->getSite(site);
}
// Default/dummy site (maybe for batch/command line mode)
else if (!isUIAvailable()) {
if (Document* doc = m_lastSelectedDoc) {
site->document(doc);
site->sprite(doc->sprite());
site->layer(doc->sprite()->indexToLayer(LayerIndex(0)));
site->frame(0);
}
}
}
示例8: DocumentView
void UIContext::onAddDocument(doc::Document* doc)
{
Context::onAddDocument(doc);
// We don't create views in batch mode.
if (!App::instance()->isGui())
return;
// Add a new view for this document
DocumentView* view = new DocumentView(static_cast<app::Document*>(doc), DocumentView::Normal);
// Add a tab with the new view for the document
App::instance()->getMainWindow()->getWorkspace()->addView(view);
setActiveView(view);
view->getEditor()->setDefaultScroll();
}
示例9: XOJ_INIT_TYPE
VerticalToolHandler::VerticalToolHandler(Redrawable* view, PageRef page, double y, double zoom)
{
XOJ_INIT_TYPE(VerticalToolHandler);
this->startY = y;
this->endY = y;
this->view = view;
this->page = page;
this->layer = this->page->getSelectedLayer();
this->jumpY = 0;
for (Element* e : *this->layer->getElements())
{
if (e->getY() >= y)
{
this->elements.push_back(e);
}
}
for (Element* e : this->elements)
{
this->layer->removeElement(e, false);
this->jumpY = MAX(this->jumpY, e->getY() + e->getElementHeight());
}
this->jumpY = this->page->getHeight() - this->jumpY;
this->crBuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
this->page->getWidth() * zoom, (this->page->getHeight() - y) * zoom);
cairo_t* cr = cairo_create(this->crBuffer);
cairo_scale(cr, zoom, zoom);
cairo_translate(cr, 0, -y);
DocumentView v;
v.drawSelection(cr, this);
cairo_destroy(cr);
view->rerenderPage();
}
示例10: XOJ_INIT_TYPE
VerticalToolHandler::VerticalToolHandler(Redrawable * view, PageRef page, double y, double zoom) {
XOJ_INIT_TYPE(VerticalToolHandler);
this->startY = y;
this->endY = y;
this->view = view;
this->page = page;
this->layer = this->page.getSelectedLayer();
this->elements = NULL;
this->jumpY = 0;
ListIterator<Element *> it = this->layer->elementIterator();
while (it.hasNext()) {
Element * e = it.next();
if (e->getY() >= y) {
this->elements = g_list_append(this->elements, e);
}
}
for (GList * l = this->elements; l != NULL; l = l->next) {
Element * e = (Element *) l->data;
this->layer->removeElement(e, false);
this->jumpY = MAX(this->jumpY, e->getY() + e->getElementHeight());
}
this->jumpY = this->page.getHeight() - this->jumpY;
this->crBuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, this->page.getWidth() * zoom, (this->page.getHeight() - y) * zoom);
cairo_t * cr = cairo_create(this->crBuffer);
cairo_scale(cr, zoom, zoom);
cairo_translate(cr, 0, -y);
DocumentView v;
v.drawSelection(cr, this);
cairo_destroy(cr);
view->rerenderPage();
}
示例11: qSort
void DocumentViewContainer::updateLayout()
{
// Stop update timer: this is useful if updateLayout() is called directly
// and not through scheduleLayoutUpdate()
d->mLayoutUpdateTimer->stop();
QList<DocumentView*> views = (d->mViews | d->mAddedViews).toList();
qSort(views.begin(), views.end(), viewLessThan);
bool animated = GwenviewConfig::animationMethod() != DocumentView::NoAnimation;
bool crossFade = d->mAddedViews.count() == 1 && d->mRemovedViews.count() == 1;
if (animated && crossFade) {
DocumentView* oldView = *d->mRemovedViews.begin();
DocumentView* newView = *d->mAddedViews.begin();
newView->setGeometry(rect());
newView->setEraseBorders(true);
QPropertyAnimation* anim = newView->fadeIn();
oldView->setZValue(-1);
connect(anim, SIGNAL(finished()), oldView, SLOT(hideAndDeleteLater()));
d->mRemovedViews.clear();
return;
}
if (!views.isEmpty()) {
// Compute column count
int colCount;
switch (views.count()) {
case 1:
colCount = 1;
break;
case 2:
colCount = 2;
break;
case 3:
colCount = 3;
break;
case 4:
colCount = 2;
break;
case 5:
colCount = 3;
break;
case 6:
colCount = 3;
break;
default:
colCount = 3;
break;
}
int rowCount = qCeil(views.count() / qreal(colCount));
Q_ASSERT(rowCount > 0);
int viewWidth = width() / colCount;
int viewHeight = height() / rowCount;
int col = 0;
int row = 0;
Q_FOREACH(DocumentView * view, views) {
QRect rect;
rect.setLeft(col * viewWidth);
rect.setTop(row * viewHeight);
rect.setWidth(viewWidth);
rect.setHeight(viewHeight);
if (animated) {
if (d->mViews.contains(view)) {
if (rect != view->geometry()) {
if (d->mAddedViews.isEmpty() && d->mRemovedViews.isEmpty()) {
// View moves because of a resize
view->moveTo(rect);
} else {
// View moves because the number of views changed,
// animate the change
view->moveToAnimated(rect);
}
}
} else {
view->setGeometry(rect);
view->fadeIn();
}
} else {
// Not animated, set final geometry and opacity now
view->setGeometry(rect);
view->setOpacity(1);
}
++col;
if (col == colCount) {
col = 0;
++row;
}
}
示例12: on_actionClose_Project_triggered
void MainWindow::on_actionOpen_Project_triggered()
{
if(project_open)
on_actionClose_Project_triggered();
if(project_open)
return;
editor = new DocumentEditorView(this);
editor->hide();
QDomDocument doc;
QString filename = QFileDialog::getOpenFileName(this, QString("Choose Project"), ".", "TRX Project (*.trx)");
QFile file(filename);
current_project_directory = QFileInfo(filename).absoluteDir();
current_project_name = QFileInfo(filename).baseName();
qDebug() << "filename: " << filename;
if (!file.open(QIODevice::ReadOnly | QFile::Text))
return;
QString message;
if (!doc.setContent(&file ,false, &message)) {
file.close();
return;
}
file.close();
QDomElement docEl = doc.documentElement();
QString docName = docEl.toElement().firstChild().nodeValue();
qDebug() << docEl.toElement().firstChild().nodeValue();
QDomNode child = docEl.firstChild().nextSibling();
qDebug() << child.toElement().firstChild().nodeValue();
qDebug() << QFileInfo(filename).absoluteDir().filePath(child.toElement().firstChild().nodeValue());
requirements = DocumentView::loadDocument(QFileInfo(filename).absoluteDir().filePath(child.toElement().firstChild().nodeValue()));
requirements->hide();
traceability = new TraceabilityView(requirements, this);
ui->centralWidget->layout()->addWidget(traceability);
QObject::connect(ui->showReq, SIGNAL(pressed()), this, SLOT(showRequirements()));
QObject::connect(ui->showEdit, SIGNAL(pressed()), this, SLOT(showEditor()));
QObject::connect(ui->showTrace, SIGNAL(pressed()), this, SLOT(showTraceability()));
QObject::connect(editor, SIGNAL(docAdded(DocumentView*)), traceability, SLOT(addModels(DocumentView*)));
QObject::connect(editor, SIGNAL(removeDocument(int)), traceability, SLOT(removeDocument(int)));
QHash<DocumentView*, QStandardItemModel*> *traceModelList = traceability->getTraceModelList();
bool modelset = false;
child = child.nextSibling();
while (!child.isNull())
{
QDomNode subchild = child.firstChild();
qDebug() << subchild.toElement().firstChild().nodeValue();
DocumentView* docview = DocumentView::loadDocument(current_project_directory.dirName() + "/" + subchild.toElement().firstChild().nodeValue());
subchild = subchild.nextSibling();
qDebug() << subchild.toElement().firstChild().nodeValue();
QStandardItemModel *matrix = TraceabilityView::loadMatrix(current_project_directory.dirName() + "/" + subchild.toElement().firstChild().nodeValue()+ "_matrix");
//traceability->addModels(docview, matrix);
editor->addLoadedTab(docview);
matrix->setHorizontalHeaderLabels(docview->getHeader());
traceModelList->insert(docview, matrix);
if(!modelset){
traceability->setMatrixModel(matrix);
modelset = true;
}
child = child.nextSibling();
}
traceability->addRowToDocument(requirements, -1);
traceability->updateReqListModel();
project_open = true;
ui->frame_2->hide();
ui->frame->show();
}
示例13: XOJ_CHECK_TYPE
void PreviewJob::run() {
XOJ_CHECK_TYPE(PreviewJob);
GtkAllocation alloc;
gtk_widget_get_allocation(this->sidebarPreview->widget, &alloc);
cairo_surface_t * crBuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, alloc.width, alloc.height);
double zoom = this->sidebarPreview->sidebar->getZoom();
cairo_t * cr2 = cairo_create(crBuffer);
cairo_matrix_t defaultMatrix = { 0 };
cairo_get_matrix(cr2, &defaultMatrix);
cairo_translate(cr2, Shadow::getShadowTopLeftSize() + 2, Shadow::getShadowTopLeftSize() + 2);
cairo_scale(cr2, zoom, zoom);
Document * doc = this->sidebarPreview->sidebar->getControl()->getDocument();
doc->lock();
if (this->sidebarPreview->page.getBackgroundType() == BACKGROUND_TYPE_PDF) {
int pgNo = this->sidebarPreview->page.getPdfPageNr();
XojPopplerPage * popplerPage = doc->getPdfPage(pgNo);
PdfView::drawPage(this->sidebarPreview->sidebar->getCache(), popplerPage, cr2, zoom, this->sidebarPreview->page.getWidth(), this->sidebarPreview->page.getHeight());
}
DocumentView view;
view.drawPage(this->sidebarPreview->page, cr2, true);
cairo_set_matrix(cr2, &defaultMatrix);
cairo_set_operator(cr2, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgb(cr2, 1, 1, 1);
cairo_rectangle(cr2, 0, 0, Shadow::getShadowTopLeftSize() + 2, alloc.height);
cairo_rectangle(cr2, 0, 0, alloc.height, Shadow::getShadowTopLeftSize() + 2);
cairo_rectangle(cr2, alloc.width - Shadow::getShadowBottomRightSize() - 2, 0, Shadow::getShadowBottomRightSize() + 2, alloc.height);
cairo_rectangle(cr2, 0, alloc.height - Shadow::getShadowBottomRightSize() - 2, alloc.width, Shadow::getShadowBottomRightSize() + 2);
cairo_fill(cr2);
cairo_destroy(cr2);
doc->unlock();
g_mutex_lock(this->sidebarPreview->drawingMutex);
if (this->sidebarPreview->crBuffer) {
cairo_surface_destroy(this->sidebarPreview->crBuffer);
}
this->sidebarPreview->crBuffer = crBuffer;
gdk_threads_enter();
gtk_widget_queue_draw(this->sidebarPreview->widget);
gdk_threads_leave();
g_mutex_unlock(this->sidebarPreview->drawingMutex);
}
示例14: XOJ_CHECK_TYPE
void RenderJob::run() {
XOJ_CHECK_TYPE(RenderJob);
if(handler == NULL) {
handler = new RepaintWidgetHandler(this->view->getXournal()->getWidget());
}
double zoom = this->view->xournal->getZoom();
g_mutex_lock(this->view->repaintRectMutex);
bool rerenderComplete = this->view->rerenderComplete;
GList * rerenderRects = this->view->rerenderRects;
this->view->rerenderRects = NULL;
this->view->rerenderComplete = false;
g_mutex_unlock(this->view->repaintRectMutex);
if (rerenderComplete) {
Document * doc = this->view->xournal->getDocument();
int dispWidth = this->view->getDisplayWidth();
int dispHeight = this->view->getDisplayHeight();
cairo_surface_t * crBuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, dispWidth, dispHeight);
cairo_t * cr2 = cairo_create(crBuffer);
cairo_scale(cr2, zoom, zoom);
XojPopplerPage * popplerPage = NULL;
doc->lock();
if (this->view->page.getBackgroundType() == BACKGROUND_TYPE_PDF) {
int pgNo = this->view->page.getPdfPageNr();
popplerPage = doc->getPdfPage(pgNo);
}
DocumentView view;
int width = this->view->page.getWidth();
int height = this->view->page.getHeight();
PdfView::drawPage(this->view->xournal->getCache(), popplerPage, cr2, zoom, width, height);
view.drawPage(this->view->page, cr2, false);
cairo_destroy(cr2);
g_mutex_lock(this->view->drawingMutex);
if (this->view->crBuffer) {
cairo_surface_destroy(this->view->crBuffer);
}
this->view->crBuffer = crBuffer;
g_mutex_unlock(this->view->drawingMutex);
doc->unlock();
handler->repaintComplete();
} else {
for (GList * l = rerenderRects; l != NULL; l = l->next) {
Rectangle * rect = (Rectangle *) l->data;
rerenderRectangle(rect);
rect = this->view->rectOnWidget(rect->x, rect->y, rect->width, rect->height);
handler->repaintRects(rect);
}
}
// delete all rectangles
for (GList * l = rerenderRects; l != NULL; l = l->next) {
Rectangle * rect = (Rectangle *) l->data;
delete rect;
}
g_list_free(rerenderRects);
}