Ejemplo n.º 1
0
BufferView::BufferView(QWidget* parent) : QWidget(parent)
{
    d.buffer = 0;

    d.titleBar = new TitleBar(this);
    d.listView = new ListView(this);
    d.textInput = new TextInput(this);
    d.textBrowser = new TextBrowser(this);
    d.textBrowser->setBuddy(d.textInput);

    d.textBrowser->setFocusPolicy(Qt::ClickFocus);
    d.textBrowser->viewport()->setAttribute(Qt::WA_AcceptTouchEvents, false);

    d.splitter = new QSplitter(this);
    d.splitter->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);

    QShortcut* zoomIn = new QShortcut(QKeySequence::ZoomIn, this);
    zoomIn->setContext(Qt::WidgetWithChildrenShortcut);
    connect(zoomIn, SIGNAL(activated()), d.textBrowser, SLOT(zoomIn()));

    QShortcut* zoomOut = new QShortcut(QKeySequence::ZoomOut, this);
    zoomOut->setContext(Qt::WidgetWithChildrenShortcut);
    connect(zoomOut, SIGNAL(activated()), d.textBrowser, SLOT(zoomOut()));

    QShortcut* resetZoom = new QShortcut(QKeySequence("Ctrl+0"), this);
    resetZoom->setContext(Qt::WidgetWithChildrenShortcut);
    connect(resetZoom, SIGNAL(activated()), d.textBrowser, SLOT(resetZoom()));

    QShortcut* pageDown = new QShortcut(QKeySequence::MoveToNextPage, this);
    pageDown->setContext(Qt::WidgetWithChildrenShortcut);
    connect(pageDown, SIGNAL(activated()), d.textBrowser, SLOT(scrollToNextPage()));

    QShortcut* pageUp = new QShortcut(QKeySequence::MoveToPreviousPage, this);
    pageUp->setContext(Qt::WidgetWithChildrenShortcut);
    connect(pageUp, SIGNAL(activated()), d.textBrowser, SLOT(scrollToPreviousPage()));

    QVBoxLayout* layout = new QVBoxLayout(this);
    layout->setSpacing(0);
    layout->setMargin(0);
    layout->addWidget(d.splitter);
    layout->addWidget(d.textInput);
    layout->setStretchFactor(d.splitter, 1);

    connect(d.titleBar, SIGNAL(offsetChanged(int)), d.textBrowser, SLOT(moveShadow(int)));
    d.titleBar->raise();

    d.splitter->addWidget(d.textBrowser);
    d.splitter->addWidget(d.listView);
    d.splitter->setStretchFactor(0, 1);

    connect(d.listView, SIGNAL(queried(QString)), this, SLOT(query(QString)));
    connect(d.textBrowser, SIGNAL(queried(QString)), this, SLOT(query(QString)));
}
bool CWidgetReturnEmitTextEdit::event(QEvent* event)
{
	if (event->type() == QEvent::ShortcutOverride) {
		QKeyEvent* ke = static_cast<QKeyEvent*>(event);
		if (ke == QKeySequence::MoveToStartOfDocument) {
			emit scrollToTop();
			event->accept();
			return true;
		} else if (ke == QKeySequence::MoveToEndOfDocument) {
			emit scrollToBottom();
			event->accept();
			return true;
		} else if (ke == QKeySequence::MoveToNextPage) {
			emit scrollToNextPage();
			event->accept();
			return true;
		} else if (ke == QKeySequence::MoveToPreviousPage) {
			emit scrollToPreviousPage();
			event->accept();
			return true;
		}
	}
	return QTextEdit::event(event);
}