bool MainView::event( QEvent *event ) { bool result = false; switch (event->type()) { case QEvent::KeyPress : { QKeyEvent *k = (QKeyEvent *)event; keyPressEvent(k); if (k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab ) event->accept(); result = true; } break; case QEvent::KeyRelease : { QKeyEvent *k = (QKeyEvent *)event; keyReleaseEvent(k); if (k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab ) event->accept(); result = true; } break; default: result = View::event( event ); break; } // The checks below are necessary to avoid infinite recursion. if ( event->type() != QEvent::ChildAdded && event->type() != QEvent::ChildRemoved && event->type() != QEvent::ChildPolished) updateInfoLabels(); return result; }
/** FFT rate changed. */ void DockFft::on_fftRateComboBox_currentIndexChanged(const QString & text) { int fps = fftRate(); Q_UNUSED(text); emit fftRateChanged(fps); updateInfoLabels(); }
void DockFft::setSampleRate(float sample_rate) { if (sample_rate < 0.1f) return; m_sample_rate = sample_rate; updateInfoLabels(); }
/** * @brief Select new FFT rate in the combo box. * @param rate The new rate. * @returns The actual FFT rate selected. */ int DockFft::setFftRate(int fft_rate) { int idx = -1; QString rate_str = QString("%1 fps").arg(fft_rate); qDebug() << __func__ << "to" << rate_str; idx = ui->fftRateComboBox->findText(rate_str, Qt::MatchExactly); if(idx != -1) ui->fftRateComboBox->setCurrentIndex(idx); updateInfoLabels(); return fftRate(); }
/** * @brief Select new FFT size in the combo box. * @param rate The new FFT size. * @returns The actual FFT size selected. */ int DockFft::setFftSize(int fft_size) { int idx = -1; QString size_str = QString::number(fft_size); qDebug() << __func__ << "to" << size_str; idx = ui->fftSizeComboBox->findText(size_str, Qt::MatchExactly); if(idx != -1) ui->fftSizeComboBox->setCurrentIndex(idx); updateInfoLabels(); return fftSize(); }
/** FFT size changed. */ void DockFft::on_fftSizeComboBox_currentIndexChanged(const QString &text) { int value = text.toInt(); emit fftSizeChanged(value); updateInfoLabels(); }
void MainView::keyPressEvent(QKeyEvent *event) { if ( (event->modifiers() & Qt::ControlModifier || event->modifiers() & Qt::ShiftModifier) && event->key() == Qt::Key_Print) { event->accept(); QPrinter printer; printer.setOutputFormat(QPrinter::PdfFormat); printer.setFullPage(true); printer.setResolution(300); QSvgGenerator svggen; svggen.setResolution(90); if (event->modifiers() & Qt::ShiftModifier) { // Print scene printer.setOutputFileName("screenshot-scene.pdf"); printer.setPaperSize(scene()->sceneRect().size().toSize(), QPrinter::Point); QPainter painter(&printer); painter.setRenderHint(QPainter::Antialiasing); scene()->render( &painter ); svggen.setFileName("screenshot-scene.svg"); svggen.setSize(scene()->sceneRect().size().toSize()); QPainter svgPainter(&svggen); svgPainter.setRenderHint(QPainter::Antialiasing); scene()->render(&svgPainter); QImage image(2 * scene()->sceneRect().size().toSize(), QImage::Format_ARGB32); image.fill(Qt::transparent); QPainter pmapPainter(&image); pmapPainter.setRenderHint(QPainter::Antialiasing); //pmapPainter.scale(2,2); scene()->render(&pmapPainter); image.save("screenshot-scene.png"); } else { // Print view printer.setOutputFileName("screenshot-view.pdf"); printer.setPaperSize(viewport()->rect().size(), QPrinter::Point); QPainter painter(&printer); painter.setRenderHint(QPainter::Antialiasing); render(&painter); svggen.setFileName("screenshot-view.svg"); svggen.setSize(viewport()->rect().size()); QPainter svgPainter(&svggen); svgPainter.setRenderHint(QPainter::Antialiasing); render(&svgPainter); QImage image(2 * viewport()->rect().size(), QImage::Format_ARGB32); image.fill(Qt::transparent); QPainter pmapPainter(&image); pmapPainter.setRenderHint(QPainter::Antialiasing); render(&pmapPainter); image.save("screenshot-view.png"); } } else if (event->modifiers() == Qt::NoModifier && event->key() == Qt::Key_F11) { event->accept(); QWidget* window = this; while (window->parentWidget()) window = window->parentWidget(); if (window->isFullScreen()) window->showNormal(); else window->showFullScreen(); } else if (event->modifiers() == Qt::NoModifier && event->key() == Qt::Key_F10) { event->accept(); if (miniMap->width() == MINIMAP_DEFAULT_WIDTH && miniMap->height() == MINIMAP_DEFAULT_HEIGHT) setMiniMapSize(width(), height()); else setMiniMapSize(MINIMAP_DEFAULT_WIDTH, MINIMAP_DEFAULT_HEIGHT); } else if (event->modifiers() == Qt::NoModifier && event->key() == Qt::Key_F9) { event->accept(); if (miniMap->isVisible()) miniMap->hide(); else miniMap->show(); } else if (event->modifiers() == Qt::NoModifier && event->key() == Qt::Key_F7) { event->accept(); showTimers_ = ~showTimers_; updateInfoLabels(); } else View::keyPressEvent(event); }