Skip to content
Snippets Groups Projects
Commit e06f0b7e authored by SeeLook's avatar SeeLook
Browse files

Accidentals page of level creator

parent 494eb1ee
Branches
Tags
No related merge requests found
......@@ -22,6 +22,7 @@ TRANSLATION CONTEXT CHANGES
TscoreActions & TmelMan - MainScore
Einstrument - Tinstrument (or simply Instrument)
TtoolBar - MainWindow
accidssettings -> AccidsPage (but remove line breaks from descriptions)
NameStyleSelector - text "Naming style of note. The main difference is the 7th note.<br>Is it B and B flat, or H and B?" has to go into ScorePage or its sub-page with name settings
TnoteNameSettings - ScorePage or its sub-page
......@@ -60,8 +61,6 @@ MINOR:
if it is started from creator - there is highlight of message
but when started from 'start' menu - there is not
- changing to/from grand staff overrides TscoreNote ambitus - there is no problem as long as ambitus is unused
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@ FEATURES FOR FURTHER RELEASES @@@@@@@@@@@@@@@@@@@@@@@
......@@ -75,7 +74,6 @@ MINOR:
- bring back isVoice() audio param - average pitch of all chunks or min duration will depend on it
- divide TexamExecutor class !!!!!
- rhythms in score
- in occasion of implementing rhythms,
- dialog to configure generated melody and its rhythms
......@@ -85,7 +83,6 @@ MINOR:
- stop sniffer when melody dialogues are opening
- Class that manages recent exams menu list and has colored item 'recent opened exams',
use recent exams list for analyzer the same as start exam dialog has (common class or method)
- add extra marks over score when it is in record mode or melody is playing
- managing melodies in levels, adding set of melodies to the level
- settings for keyboard shortcuts
- sophisticated and configurable algorithm to generate random melodies
......
1.5.0 alpha1
- added support for rhythms to the score
- import/export to/from music XML files
- porting visible part into QML
- porting visible part into QML - rendering with graphics device
- many improvements of user interface
- option for enable/disable animations
1.4.3
ANDROID
- attempt to fix random crashes related to audio input
Mac
- improved look of checkable buttons (note name)
BUGS FIXES
- removed a few memory leaks
1.4.2
- added standalone AppImage for Linux
BUGS FIXES
......
......@@ -151,6 +151,16 @@ QString TnootkaQML::majAndMinKeyName(int key) {
}
QStringList TnootkaQML::keyComboModel() {
QStringList model;
for (int i = -7; i < 8; i++) {
TkeySignature k(i);
model << QLatin1String("(") + k.accidNumber() + QLatin1String(") ") + k.getMajorName() + QLatin1String(" / ") + k.getMinorName();
}
return model;
}
QString TnootkaQML::getLicense() {
QFile file(Tpath::main + QLatin1String("gpl"));
QString license;
......
......@@ -72,6 +72,7 @@ public:
Q_INVOKABLE QString majorKeyName(int key);
Q_INVOKABLE QString minorKeyName(int key);
Q_INVOKABLE QString majAndMinKeyName(int key);
Q_INVOKABLE QStringList keyComboModel();
Q_INVOKABLE QString getLicense();
Q_INVOKABLE QString getChanges();
Q_INVOKABLE bool isAndroid();
......
......@@ -3,11 +3,138 @@
* on the terms of GNU GPLv3 license (http://www.gnu.org/licenses) */
import QtQuick 2.7
import QtQuick.Controls 2.0
import "../"
Item {
Text {
text: "Not implemented yet"
anchors.centerIn: parent
Flickable {
width: parent.width; height: parent.height
clip: true
contentHeight: accidsCol.height + nootkaWindow.fontSize * 2
contentWidth: width
ScrollBar.vertical: ScrollBar { active: !Noo.isAndroid() }
Grid {
columns: parent.width > nootkaWindow.fontSize * 60 ? 2 : 1
id: accidsCol
width: parent.width
spacing: nootkaWindow.fontSize / 4
horizontalItemAlignment: Grid.AlignHCenter
Frame {
width: accidsCol.columns === 1 ? Math.max(parent.width * 0.9, dblAccidsChB.width) : parent.width * 0.35
Column {
spacing: nootkaWindow.fontSize / 2
width: parent.width
Text { text: qsTr("accidentals"); anchors.horizontalCenter: parent.horizontalCenter }
Tile {
CheckBox {
id: sharpsChB
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("# - sharps")
}
description: qsTr("Sharps will be used in questions and answers.<br>It has to be checked, if keys with sharps are used.")
}
Tile {
CheckBox {
id: flatsChB
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("b - flats")
}
description: qsTr("Flats will be used in questions and answers.<br>It has to be checked, if keys with flats are used.")
}
Tile {
CheckBox {
id: dblAccidsChB
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("x, bb - double accidentals")
}
}
Tile {
CheckBox {
id: forceAccChB
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("force using appropriate accidental")
}
description: qsTr("if checked, it is possible to select a note<br>with given accidental only.")
}
}
}
Frame {
width: accidsCol.columns === 1 ? parent.width * 0.96 : parent.width * 0.64
Column {
spacing: nootkaWindow.fontSize / 2
width: parent.width
CheckBox {
id: useKeysChB
text: qsTr("use key signatures")
anchors.horizontalCenter: parent.horizontalCenter
checked: true
}
ButtonGroup { id: keysGr }
Tile {
enabled: useKeysChB.checked
RadioButton {
text: qsTr("single key")
ButtonGroup.group: keysGr
anchors.horizontalCenter: parent.horizontalCenter
}
description: qsTr("only one, selected key signature for whole exam.")
}
Tile {
enabled: useKeysChB.checked
RadioButton {
text: qsTr("range of keys")
ButtonGroup.group: keysGr
anchors.horizontalCenter: parent.horizontalCenter
}
description: qsTr("random key signature from selected range.")
}
Tile {
enabled: useKeysChB.checked
Row {
spacing: nootkaWindow.fontSize / 2
anchors.horizontalCenter: parent.horizontalCenter
ComboBox {
id: fromCombo
model: Noo.keyComboModel()
delegate: ItemDelegate { text: modelData }
width: nootkaWindow.fontSize * 12
currentIndex: 7 // C-major
}
Rectangle { color: activPal.text; width: nootkaWindow.fontSize * 1.3; height: nootkaWindow.fontSize / 4; anchors.verticalCenter: parent.verticalCenter }
ComboBox {
id: toCombo
model: Noo.keyComboModel()
delegate: ItemDelegate { text: modelData }
width: nootkaWindow.fontSize * 12
currentIndex: 7
}
}
description: qsTr("Select a key signature. Appropriate accidentals used in the level will be selected automatically.")
}
Tile {
enabled: useKeysChB.checked
CheckBox {
id: keyInAnswersChB
text: qsTr("select a key signature manually")
anchors.horizontalCenter: parent.horizontalCenter
}
description: qsTr("if checked, in exam user have to select a key signature, otherwise it is shown by application.")
}
Tile {
CheckBox {
id: currKeyOnlyChB
text: qsTr("notes in current key signature only")
anchors.horizontalCenter: parent.horizontalCenter
}
description: qsTr("Only notes from current key signature are taken. If key signature is disabled accidentals are not used.")
}
}
}
} // main column
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment