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); }