19 #include <QApplication>
75 #if defined(Q_OS_LINUX)
117 #if defined(Q_OS_WIN)
159 #if defined(Q_OS_MAC)
202 class PianoKeybd::PianoKeybdPrivate {
204 PianoKeybdPrivate(): m_rotation(0), m_scene(nullptr), m_rawMap(nullptr)
206 ~PianoKeybdPrivate() =
default;
247 d->m_scene->setRawKeyboardMode(
false);
260 return d->m_scene->getPianoHandler();
273 d->m_scene->setPianoHandler(handler);
282 return d->m_scene->getHighlightPalette();
293 d->m_scene->setHighlightPalette(p);
302 return d->m_scene->getBackgroundPalette();
311 d->m_scene->setBackgroundPalette(p);
321 return d->m_scene->getForegroundPalette();
331 d->m_scene->setForegroundPalette(p);
340 return d->m_scene->showColorScale();
349 d->m_scene->setShowColorScale(show);
363 d->m_scene->useCustomNoteNames(names);
372 d->m_scene->useStandardNoteNames();
381 return d->m_scene->customNoteNames();
390 return d->m_scene->standardNoteNames();
400 d->m_scene->retranslate();
412 d->m_scene =
new PianoScene(base, num, strt, c,
this);
417 setScene(d->m_scene);
426 setAttribute(Qt::WA_AcceptTouchEvents);
427 setAttribute(Qt::WA_InputMethodEnabled,
false);
428 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
429 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
430 setCacheMode(CacheBackground);
431 setViewportUpdateMode(MinimalViewportUpdate);
432 setRenderHints(QPainter::Antialiasing|QPainter::TextAntialiasing|QPainter::SmoothPixmapTransform);
433 setOptimizationFlag(DontClipPainter,
true);
434 setOptimizationFlag(DontSavePainterState,
true);
435 setOptimizationFlag(DontAdjustForAntialiasing,
true);
436 setBackgroundBrush(QApplication::palette().window());
447 QGraphicsView::resizeEvent(event);
448 fitInView(d->m_scene->sceneRect(), Qt::KeepAspectRatio);
460 if ( numKeys != d->m_scene->numKeys() ||
startKey != d->m_scene->startKey() )
462 QByteArray dataBuffer;
463 int baseOctave = d->m_scene->baseOctave();
464 QColor color = d->m_scene->getKeyPressedColor();
466 KeyboardMap* keyMap = d->m_scene->getKeyboardMap();
467 d->m_scene->saveData(dataBuffer);
470 d->m_scene->loadData(dataBuffer);
471 d->m_scene->setPianoHandler(handler);
472 d->m_scene->setKeyboardMap(keyMap);
473 d->m_scene->hideOrShowKeys();
474 d->m_scene->refreshKeys();
475 d->m_scene->refreshLabels();
476 fitInView(d->m_scene->sceneRect(), Qt::KeepAspectRatio);
486 if (r != d->m_rotation) {
489 rotate(d->m_rotation);
490 fitInView(d->m_scene->sceneRect(), Qt::KeepAspectRatio);
500 return mapFromScene(sceneRect()).boundingRect().size();
506 if (d->m_scene->isKeyboardEnabled() && d->m_rawMap !=
nullptr && d->m_rawMap->contains(keycode)) {
507 d->m_scene->keyOn(d->m_rawMap->value(keycode));
515 if (d->m_scene->isKeyboardEnabled() && d->m_rawMap !=
nullptr && d->m_rawMap->contains(keycode)) {
516 d->m_scene->keyOff(d->m_rawMap->value(keycode));
530 d->m_scene->setKeyPicture(natural, pix);
540 return d->m_scene->getKeyPicture(natural);
549 d->m_scene->setUseKeyPictures(enable);
558 return d->m_scene->getUseKeyPictures();
566 int PianoKeybd::baseOctave()
const
568 return d->m_scene->baseOctave();
577 d->m_scene->setBaseOctave(baseOctave);
585 int PianoKeybd::numKeys()
const
587 return d->m_scene->numKeys();
596 return d->m_scene->startKey();
605 return d->m_rotation;
614 return d->m_scene->getKeyPressedColor();
625 d->m_scene->setKeyPressedColor(c);
633 d->m_scene->resetKeyPressedColor();
643 return d->m_scene->showLabels();
653 d->m_scene->setShowLabels(show);
663 return d->m_scene->alterations();
673 d->m_scene->setAlterations(use);
683 return d->m_scene->getOrientation();
693 d->m_scene->setOrientation(orientation);
703 return d->m_scene->getOctave();
713 d->m_scene->setOctave(octave);
723 return d->m_scene->getTranspose();
733 d->m_scene->setTranspose(t);
742 return d->m_scene->getChannel();
751 d->m_scene->setChannel(c);
761 return d->m_scene->getVelocity();
771 d->m_scene->setVelocity(v);
780 return d->m_scene->isKeyboardEnabled();
789 d->m_scene->setKeyboardEnabled(enable);
798 return d->m_scene->isMouseEnabled();
807 d->m_scene->setMouseEnabled(enable);
816 return d->m_scene->isTouchEnabled();
825 d->m_scene->setTouchEnabled(enable);
834 return d->m_scene->velocityTint();
844 d->m_scene->setVelocityTint(enable);
852 d->m_scene->allKeysOff();
861 d->m_scene->setKeyboardMap(m);
870 return d->m_scene->getKeyboardMap();
887 return d->m_scene->getRawKeyboardMode();
896 d->m_scene->setRawKeyboardMode(b);
933 d->m_scene->showNoteOn(note, color, vel);
943 d->m_scene->showNoteOn(note, vel);
953 d->m_scene->showNoteOff(note, vel);
962 QWidget::setFont(font);
963 d->m_scene->setFont(font);
964 d->m_scene->refreshLabels();
The QGraphicsView class provides a widget for displaying the contents of a QGraphicsScene.
PianoScene class declaration.