diff --git a/TODO b/TODO index ca27d65838263461f69732410bcfda8afd17a8e7..f96c588ed3e975fe3c026c990660b0429a92f6d6 100644 --- a/TODO +++ b/TODO @@ -19,11 +19,8 @@ ANDROID: - disable sniffing/note by note when audio input is off - hide 'clear score' one when undesired (single mode, exam with playing): innerWidget->flyActions()->append(bar->scoreDeleteAll()); // TODO: idea is brilliant but needs more efforts - - no level/exam icon in file manager, not all file managers support opening Nootka files - HOME button would be switching available menus or get rid of score menu (merge with the main) -- duration of animation of note correction was decreased to 200ms to work properly under Android, - but it would be better to signal when it is finished and perform some routines in main score after that ============================================================================ - TexamExecutor has many, many un-wrapped strings, many "" - Use int and enumerations between plugins and main window instead of text messages (level plugin to do) @@ -39,12 +36,9 @@ Test scaling of alpha under Windows - NotaData of Tartini might be cleaned MINOR: -- clef selecting menu lost highlight when mouse is over item text - try to use QActionWidget - when instrument in new exercise changes: if it is started from creator - there is highlight of message but when started from 'start' menu - there is not -- try to avoid many resizeEvent-s of TmultiScore during window size change - - changing tool bar auto-hiding causes sometimes locked melody menu - auto hidden tool bar remains big after decreased window size @@ -105,9 +99,6 @@ MINOR: ANDROID: - unlock left-handed guitar then implement frets zoom to respect transforms -Tnote - - change class name to Tpitch (???) - - overload + and - operators to raise/drop a note TEXAMEXECUTOR - think about hide octave in note name format when octaves are not required in answers. diff --git a/changes b/changes index 88345883e52fa6dc4e37cd3cd9c3208175c85bbe..5f0d7d2276da892160e1ef5920f9dc282848249f 100644 --- a/changes +++ b/changes @@ -1,5 +1,10 @@ +1.??? + - improved look of sound views, better fit to high DPI screens ANDROID - - added quick volume settings and pitch preview invoked with vol keys + - reduced paint operations, application works even 2-4 times faster + - volume settings and pitch preview can be invoked with volume keys + BUGS FIXES + - other small fixes 1.2A.7 rc3 ANDROID diff --git a/src/libs/main/score/tmainscore.cpp b/src/libs/main/score/tmainscore.cpp index 9b363d5e118fe0c0e09b8e075f507768dbbe2161..a0594669f0a33fbc912a1dcb5c6c3d341721971a 100644 --- a/src/libs/main/score/tmainscore.cpp +++ b/src/libs/main/score/tmainscore.cpp @@ -852,7 +852,7 @@ void TmainScore::strikeBlinkingFinished() { deleteNoteName(m_correctNoteNr); TscoreNote *sn = noteFromId(m_correctNoteNr); sn->setColor(qApp->palette().text().color()); - sn->enableNoteAnim(true, 200); + sn->enableNoteAnim(true, 300); sn->markNote(-1); bool animEnabled = isAccidToKeyAnimEnabled(); enableAccidToKeyAnim(false); // prevent animations - it looks ugly with correction animations diff --git a/src/libs/sound/widgets/tmelodyitem.cpp b/src/libs/sound/widgets/tmelodyitem.cpp index 47003bdc0678d4d2d8a1e9a7f976c0d5cf8e9da3..cbb1ac4c92cfd9ae3923bb3952559aab12c472c9 100644 --- a/src/libs/sound/widgets/tmelodyitem.cpp +++ b/src/libs/sound/widgets/tmelodyitem.cpp @@ -57,7 +57,7 @@ class TflyItem : public QGraphicsItem public: TflyItem(const QIcon& icon, QGraphicsItem* parent = 0) : QGraphicsItem(parent), - m_pixmap(icon.pixmap(Tmtr::fingerPixels() * 0.85)) + m_pixmap(icon.pixmap(qRound(Tmtr::fingerPixels() * 0.85))) { setBgColor(Qt::black); setGraphicsEffect(new TdropShadowEffect); @@ -83,7 +83,7 @@ protected: painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter->setPen(QPen(Qt::black, 2)); painter->setBrush(QBrush(m_bgColor)); - painter->drawEllipse(0, 0, boundingRect().width(), boundingRect().height()); + painter->drawEllipse(QRectF(0, 0, boundingRect().width(), boundingRect().height())); painter->drawPixmap((boundingRect().width() - m_pixmap.width()) / 2, (boundingRect().height() - m_pixmap.height()) / 2, m_pixmap); } @@ -120,17 +120,17 @@ TmelodyItem::TmelodyItem() : TmelodyItem::~TmelodyItem() { - m_instance = 0; + m_instance = nullptr; } bool TmelodyItem::audioInEnabled() { - return (bool)TaudioIN::instance(); + return static_cast<bool>(TaudioIN::instance()); } bool TmelodyItem::audioOutEnabled() { - return (bool)TaudioOUT::instance(); + return static_cast<bool>(TaudioOUT::instance()); } @@ -193,7 +193,7 @@ void TmelodyItem::initialAnim() { else hint->setPos(m_flyList[i]->x() + Tmtr::fingerPixels() * 1.7, m_flyList[i]->y() + (m_flyList[i]->boundingRect().height() - hint->realH()) / 2.0); - fingerPoint->addMove(QPointF(x() + 10.0, y() + boundingRect().height() / 2.0), QPointF(m_flyList[i]->x() + radius, m_flyList[i]->y() + radius), 300, 750); + fingerPoint->addMove(QPointF(x() + 10.0, y() + boundingRect().height() / 2.0), QPointF(m_flyList[i]->x() + radius, m_flyList[i]->y() + radius), 500, 750); } connect(fingerPoint, &TfingerPointer::moved, [=](int s){ m_flyList[s]->setBgColor(qApp->palette().highlight().color()); @@ -205,7 +205,7 @@ void TmelodyItem::initialAnim() { QTimer::singleShot(10, [=]{ fingerPoint->start(); }); }); - auto gotIt = new TgraphicsTextTip(qTR("QDialogButtonBox", "OK") + QLatin1String(" !")); + auto gotIt = new TgraphicsTextTip(qTR("QDialogButtonBox", "OK") + QLatin1String(" !"), qApp->palette().highlight().color()); gotIt->setDefaultTextColor(qApp->palette().base().color()); gotIt->setParentItem(bgRect); gotIt->setScale(3.0); @@ -222,6 +222,7 @@ void TmelodyItem::initialAnim() { fingerPoint->start(); } + QRectF TmelodyItem::boundingRect() const { return QRectF(0, 0, Tmtr::fingerPixels(), Tmtr::fingerPixels()); } diff --git a/src/plugins/exam/tnootkacertificate.cpp b/src/plugins/exam/tnootkacertificate.cpp index 8dc6cd2f74a43f391527b63c9ff0af47e3a42d13..125172de693969c255c6d655ba748534de5cf835 100644 --- a/src/plugins/exam/tnootkacertificate.cpp +++ b/src/plugins/exam/tnootkacertificate.cpp @@ -126,17 +126,13 @@ TnootkaCertificate::TnootkaCertificate(QGraphicsView* view, Texam* exam) : waterMark->setGraphicsEffect(new QGraphicsBlurEffect); waterMark->setPos((m_width - waterMark->boundingRect().width()) / 2, (m_height - waterMark->boundingRect().height()) / 2 ); -#if defined (Q_OS_ANDROID) - m_stampPixmap->setPos((width() - m_stampPixmap->boundingRect().width()) / 2, stampYpos); -#else m_stampPixmap->setScale(3.0); TcombinedAnim *flyingStamp = new TcombinedAnim(m_stampPixmap, this); - flyingStamp->setDuration(400); + flyingStamp->setDuration(800); flyingStamp->setMoving(QPointF(width() + 50.0, stampYpos - 100.0), QPointF((width() - m_stampPixmap->boundingRect().width()) / 2, stampYpos)); flyingStamp->setScaling(1.0); flyingStamp->startAnimations(); connect(flyingStamp, SIGNAL(finished()), scene(), SLOT(update())); -#endif if (height() != m_view->sceneRect().height() * 0.96) { m_cert->setScale((m_view->sceneRect().height() * 0.96) / height()); diff --git a/src/plugins/exam/tquestiontip.cpp b/src/plugins/exam/tquestiontip.cpp index 71b3ceff0915768f0682d96909e183211aeee12f..cdbaa679a89efa4262c01389f11e6a159f3234d6 100644 --- a/src/plugins/exam/tquestiontip.cpp +++ b/src/plugins/exam/tquestiontip.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2012-2015 by Tomasz Bojczuk * + * Copyright (C) 2012-2016 by Tomasz Bojczuk * * seelook@gmail.com * * * * This program is free software; you can redistribute it and/or modify * @@ -69,6 +69,7 @@ TquestionTip::TquestionTip(Texam* exam, double scale) : { setOpacity(0.0); m_fadeInAnim = new TfadeAnim(this); + m_fadeInAnim->setDuration(300); m_fadeInAnim->setEasingCurveType(QEasingCurve::OutCubic); m_fadeInAnim->startFade(1.0); setAcceptHoverEvents(true);