Cursor::Cursor(Screen* screen) : QObject(screen) , m_screen(screen) , m_current_text_style(screen->defaultTextStyle()) , m_position(0,0) , m_new_position(0,0) , m_document_width(screen->width()) , m_document_height(screen->height()) , m_top_margin(0) , m_bottom_margin(0) , m_scroll_margins_set(false) , m_origin_at_margin(false) , m_notified(false) , m_visible(true) , m_new_visibillity(true) , m_blinking(false) , m_new_blinking(false) , m_wrap_around(true) , m_content_height_changed(false) , m_insert_mode(Replace) { connect(screen, SIGNAL(widthAboutToChange(int)), this, SLOT(setDocumentWidth(int))); connect(screen, SIGNAL(heightAboutToChange(int, int, int)), this, SLOT(setDocumentHeight(int, int, int))); connect(screen, SIGNAL(contentHeightChanged()), this, SLOT(contentHeightChanged())); m_gl_text_codec = QTextCodec::codecForName("utf-8")->makeDecoder(); m_gr_text_codec = QTextCodec::codecForName("utf-8")->makeDecoder(); for (int i = 0; i < m_document_width; i++) { if (i % 8 == 0) { m_tab_stops.append(i); } } }
QtFlickProvider::QtFlickProvider(QQuickWebView* viewItem, QQuickWebPage* pageItem) : QObject(viewItem) { ASSERT(viewItem); ASSERT(pageItem); QDeclarativeEngine* engine = qmlEngine(viewItem); QDeclarativeContext* context = qmlContext(viewItem); ASSERT(engine); ASSERT(context); QDeclarativeComponent component(engine, viewItem); // Create the internal Flickable instance dynamically. // We only use public QML API so that we do not depend // on private API of the QtDeclarative module. component.setData(QByteArrayLiteral("import QtQuick 2.0\nFlickable {}"), QUrl()); m_flickable = qobject_cast<QQuickItem*>(component.create(context)); QMetaProperty content = resolveMetaProperty(m_flickable, "contentItem"); m_contentItem = content.read(m_flickable).value<QQuickItem*>(); ASSERT(m_contentItem); // Resolve meta methods and properties of the Flickable instance. m_returnToBoundsMethod = resolveMetaMethod(m_flickable, "returnToBounds()"); m_cancelFlickMethod = resolveMetaMethod(m_flickable, "cancelFlick()"); m_contentWidth = resolveMetaProperty(m_flickable, "contentWidth"); m_contentHeight = resolveMetaProperty(m_flickable, "contentHeight"); m_contentX = resolveMetaProperty(m_flickable, "contentX"); m_contentY = resolveMetaProperty(m_flickable, "contentY"); m_moving = resolveMetaProperty(m_flickable, "moving"); m_dragging = resolveMetaProperty(m_flickable, "dragging"); m_flicking = resolveMetaProperty(m_flickable, "flicking"); m_flickableData = resolveMetaProperty(m_flickable, "flickableData"); // Set the viewItem as the parent of the flickable instance // and reparent the page so it is placed on the flickable contentItem. m_flickable->setParentItem(viewItem); pageItem->setParentItem(m_contentItem); // Propagate flickable signals. connect(m_flickable, SIGNAL(movementStarted()), SIGNAL(movementStarted()), Qt::DirectConnection); connect(m_flickable, SIGNAL(movementEnded()), SIGNAL(movementEnded()), Qt::DirectConnection); connect(m_flickable, SIGNAL(flickingChanged()), SIGNAL(flickingChanged()), Qt::DirectConnection); connect(m_flickable, SIGNAL(draggingChanged()), SIGNAL(draggingChanged()), Qt::DirectConnection); connect(m_flickable, SIGNAL(contentWidthChanged()), SIGNAL(contentWidthChanged()), Qt::DirectConnection); connect(m_flickable, SIGNAL(contentHeightChanged()), SIGNAL(contentHeightChanged()), Qt::DirectConnection); connect(m_flickable, SIGNAL(contentXChanged()), SIGNAL(contentXChanged()), Qt::DirectConnection); connect(m_flickable, SIGNAL(contentYChanged()), SIGNAL(contentYChanged()), Qt::DirectConnection); }
void HexView::setContentHeight(int contentHeight) { if (contentHeight != contentHeight_ ) { contentHeight_ = contentHeight; emit contentHeightChanged(); } }
void Viewport::setContentHeight(const float &contentHeight) { if (m_contentHeight != contentHeight) { m_contentHeight = contentHeight; emit contentHeightChanged(); } }
void QQuickPane::setContentHeight(qreal height) { Q_D(QQuickPane); if (d->contentHeight != height) { d->contentHeight = height; emit contentHeightChanged(); } }
void BooksListWatcher::setListView(QQuickItem* aView) { if (iListView != aView) { const QSize oldSize(iSize); if (iListView) iListView->disconnect(this); iListView = aView; if (iListView) { connect(iListView, SIGNAL(widthChanged()), SLOT(onWidthChanged())); connect(iListView, SIGNAL(heightChanged()), SLOT(onHeightChanged())); connect(iListView, SIGNAL(contentXChanged()), SLOT(onContentXChanged())); connect(iListView, SIGNAL(contentYChanged()), SLOT(onContentYChanged())); connect(iListView, SIGNAL(contentWidthChanged()), SLOT(onContentSizeChanged())); connect(iListView, SIGNAL(contentHeightChanged()), SLOT(onContentSizeChanged())); iContentX = contentX(); iContentY = contentY(); updateCurrentIndex(); } else { iContentX = iContentY = 0; iSize = QSize(0,0); } Q_EMIT listViewChanged(); if (oldSize != iSize) { Q_EMIT sizeChanged(); } if (oldSize.width() != iSize.width()) { Q_EMIT widthChanged(); } if (oldSize.height() != iSize.height()) { Q_EMIT heightChanged(); } } }
void ScreenData::dispatchLineEvents() { if (!m_block_count) return; const int scrollback_height = m_scrollback->height(); int i = 0; for (auto it = m_screen_blocks.begin(); it != m_screen_blocks.end(); ++it) { int line = scrollback_height + i; (*it)->setLine(line); //(*it)->setScreenIndex(i); (*it)->dispatchEvents(); i+= (*it)->lineCount(); } if (contentHeight() != m_old_total_lines) { m_old_total_lines = contentHeight(); emit contentHeightChanged(); } }