commit
7d613f0a01
|
@ -28,17 +28,22 @@ ENDIF(WIN32)
|
|||
PROJECT( pianobooster )
|
||||
|
||||
# enable warnings
|
||||
ADD_DEFINITIONS(-Wall)
|
||||
add_compile_options(-Wall)
|
||||
|
||||
FIND_PACKAGE( OpenGL REQUIRED )
|
||||
SET(FTGL_INCLUDE_DIR "/usr/include/freetype2")
|
||||
SET(FTGL_LIBRARY "ftgl")
|
||||
|
||||
include(FindPkgConfig)
|
||||
FIND_PACKAGE( PkgConfig REQUIRED )
|
||||
|
||||
pkg_check_modules(FTGL ftgl)
|
||||
SET(FTGL_INCLUDE_DIR ${FTGL_INCLUDE_DIRS})
|
||||
SET(FTGL_LIBRARY ${FTGL_LIBRARIES})
|
||||
|
||||
# Finds Qt5 libraries
|
||||
FIND_PACKAGE( Qt5 REQUIRED COMPONENTS Core Gui Widgets LinguistTools OpenGL Xml )
|
||||
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
|
||||
add_definitions(-fPIC)
|
||||
add_compile_options(-fPIC)
|
||||
|
||||
IF (USE_PCH)
|
||||
INCLUDE(precompile/PCHSupport_26.cmake)
|
||||
|
|
|
@ -340,30 +340,30 @@ void QtWindow::createActions()
|
|||
{
|
||||
m_openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
|
||||
m_openAct->setShortcut(tr("Ctrl+O"));
|
||||
m_openAct->setStatusTip(tr("Open an existing file"));
|
||||
m_openAct->setToolTip(tr("Open an existing file"));
|
||||
connect(m_openAct, SIGNAL(triggered()), this, SLOT(open()));
|
||||
|
||||
m_exitAct = new QAction(tr("E&xit"), this);
|
||||
m_exitAct->setShortcut(tr("Ctrl+Q"));
|
||||
m_exitAct->setStatusTip(tr("Exit the application"));
|
||||
m_exitAct->setToolTip(tr("Exit the application"));
|
||||
connect(m_exitAct, SIGNAL(triggered()), this, SLOT(close()));
|
||||
|
||||
m_aboutAct = new QAction(tr("&About"), this);
|
||||
m_aboutAct->setStatusTip(tr("Show the application's About box"));
|
||||
m_aboutAct->setToolTip(tr("Show the application's About box"));
|
||||
connect(m_aboutAct, SIGNAL(triggered()), this, SLOT(about()));
|
||||
|
||||
m_shortcutAct = new QAction(tr("&PC Shortcut Keys"), this);
|
||||
m_shortcutAct->setStatusTip(tr("The PC Keyboard shortcut keys"));
|
||||
m_shortcutAct->setToolTip(tr("The PC Keyboard shortcut keys"));
|
||||
connect(m_shortcutAct, SIGNAL(triggered()), this, SLOT(keyboardShortcuts()));
|
||||
|
||||
m_setupMidiAct = new QAction(tr("&Midi Setup ..."), this);
|
||||
m_setupMidiAct->setShortcut(tr("Ctrl+S"));
|
||||
m_setupMidiAct->setStatusTip(tr("Setup the Midi input an output"));
|
||||
m_setupMidiAct->setToolTip(tr("Setup the Midi input an output"));
|
||||
connect(m_setupMidiAct, SIGNAL(triggered()), this, SLOT(showMidiSetup()));
|
||||
|
||||
m_setupKeyboardAct = new QAction(tr("Piano &Keyboard Setting ..."), this);
|
||||
m_setupKeyboardAct->setShortcut(tr("Ctrl+K"));
|
||||
m_setupKeyboardAct->setStatusTip(tr("Change the piano keyboard settings"));
|
||||
m_setupKeyboardAct->setToolTip(tr("Change the piano keyboard settings"));
|
||||
connect(m_setupKeyboardAct, SIGNAL(triggered()), this, SLOT(showKeyboardSetup()));
|
||||
|
||||
m_fullScreenStateAct = new QAction(tr("&Fullscreen"), this);
|
||||
|
@ -422,6 +422,7 @@ void QtWindow::createActions()
|
|||
void QtWindow::createMenus()
|
||||
{
|
||||
m_fileMenu = menuBar()->addMenu(tr("&File"));
|
||||
m_fileMenu->setToolTipsVisible(true);
|
||||
m_fileMenu->addAction(m_openAct);
|
||||
m_separatorAct = m_fileMenu->addSeparator();
|
||||
for (int i = 0; i < MAX_RECENT_FILES; ++i)
|
||||
|
@ -431,18 +432,22 @@ void QtWindow::createMenus()
|
|||
updateRecentFileActions();
|
||||
|
||||
m_viewMenu = menuBar()->addMenu(tr("&View"));
|
||||
m_viewMenu->setToolTipsVisible(true);
|
||||
m_viewMenu->addAction(m_sidePanelStateAct);
|
||||
m_viewMenu->addAction(m_fullScreenStateAct);
|
||||
|
||||
m_songMenu = menuBar()->addMenu(tr("&Song"));
|
||||
m_songMenu->setToolTipsVisible(true);
|
||||
m_songMenu->addAction(m_songDetailsAct);
|
||||
|
||||
m_setupMenu = menuBar()->addMenu(tr("Set&up"));
|
||||
m_setupMenu->setToolTipsVisible(true);
|
||||
m_setupMenu->addAction(m_setupMidiAct);
|
||||
m_setupMenu->addAction(m_setupKeyboardAct);
|
||||
m_setupMenu->addAction(m_setupPreferencesAct);
|
||||
|
||||
m_helpMenu = menuBar()->addMenu(tr("&Help"));
|
||||
m_helpMenu->setToolTipsVisible(true);
|
||||
|
||||
QAction* act;
|
||||
act = new QAction(tr("&Help"), this);
|
||||
|
@ -574,18 +579,19 @@ void QtWindow::about()
|
|||
QMessageBox msgBox(this);
|
||||
msgBox.setWindowTitle (tr("About Piano Booster"));
|
||||
msgBox.setText(
|
||||
tr(
|
||||
"<b>PianoBooster - Version %1</b> <br><br>"
|
||||
"<b>Boost</b> your <b>Piano</b> playing skills!<br><br>"
|
||||
"<a href=\"http://pianobooster.sourceforge.net/\" ><b>http://pianobooster.sourceforge.net</b></a><br><br>"
|
||||
"Copyright(c) L. J. Barman, 2008-2009; All rights reserved.<br><br>"
|
||||
"Copyright(c) Olivier Humbert, 2018 pour la traduction en français (for the French translation).<br><br>"
|
||||
"This program is made available "
|
||||
tr("<b>PianoBooster - Version %1</b> <br><br>").arg(PB_VERSION) +
|
||||
tr("<b>Boost</b> your <b>Piano</b> playing skills!<br><br>") +
|
||||
tr("<a href=\"http://pianobooster.sourceforge.net/\" ><b>http://pianobooster.sourceforge.net</b></a><br><br>") +
|
||||
tr("Copyright(c) L. J. Barman, 2008-2009; All rights reserved.<br><br>") +
|
||||
tr("Copyright(c) Olivier Humbert, 2018 pour la traduction en français (for the French translation).<br><br>") +
|
||||
tr("This program is made available "
|
||||
"under the terms of the GNU General Public License version 3 as published by "
|
||||
"the Free Software Foundation.<br><br>"
|
||||
"This program also contains RtMIDI: realtime MIDI i/o C++ classes<br>"
|
||||
) +
|
||||
tr("This program also contains RtMIDI: realtime MIDI i/o C++ classes<br>"
|
||||
"Copyright(c) 2003-2007 Gary P. Scavone"
|
||||
).arg(PB_VERSION));
|
||||
)
|
||||
);
|
||||
msgBox.setMinimumWidth(600);
|
||||
msgBox.exec();
|
||||
}
|
||||
|
|
|
@ -29,7 +29,10 @@ HEADERS = precompile/precompile.h \
|
|||
GuiKeyboardSetupDialog.h \
|
||||
GuiPreferencesDialog.h \
|
||||
GuiSongDetailsDialog.h \
|
||||
GuiLoopingPopup.h
|
||||
GuiLoopingPopup.h \
|
||||
Settings.h \
|
||||
Draw.h \
|
||||
TrackList.h
|
||||
|
||||
FORMS = GuiTopBar.ui \
|
||||
GuiSidePanel.ui \
|
||||
|
@ -80,6 +83,9 @@ INCLUDEPATH += rtmidi
|
|||
|
||||
OBJECTS_DIR = tmp
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += ftgl
|
||||
|
||||
win32 {
|
||||
DEFINES += __WINDOWS_MM__ _WIN32
|
||||
LIBS += libwinmm
|
||||
|
|
|
@ -4,37 +4,37 @@
|
|||
<context>
|
||||
<name>CDraw</name>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="140"/>
|
||||
<location filename="../src/Draw.cpp" line="107"/>
|
||||
<source>C</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="141"/>
|
||||
<location filename="../src/Draw.cpp" line="108"/>
|
||||
<source>D</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="142"/>
|
||||
<location filename="../src/Draw.cpp" line="109"/>
|
||||
<source>E</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="143"/>
|
||||
<location filename="../src/Draw.cpp" line="110"/>
|
||||
<source>F</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="144"/>
|
||||
<location filename="../src/Draw.cpp" line="111"/>
|
||||
<source>G</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="145"/>
|
||||
<location filename="../src/Draw.cpp" line="112"/>
|
||||
<source>A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/Draw.cpp" line="146"/>
|
||||
<location filename="../src/Draw.cpp" line="113"/>
|
||||
<source>B</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -42,17 +42,17 @@
|
|||
<context>
|
||||
<name>CGLView</name>
|
||||
<message>
|
||||
<location filename="../src/GlView.cpp" line="225"/>
|
||||
<location filename="../src/GlView.cpp" line="226"/>
|
||||
<source>Accuracy:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GlView.cpp" line="232"/>
|
||||
<location filename="../src/GlView.cpp" line="233"/>
|
||||
<source>Song: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GlView.cpp" line="255"/>
|
||||
<location filename="../src/GlView.cpp" line="256"/>
|
||||
<source>Bar: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1145,92 +1145,92 @@
|
|||
<context>
|
||||
<name>GuiSidePanel</name>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="19"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="20"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="39"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="40"/>
|
||||
<source>Book:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="65"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="66"/>
|
||||
<source>Song:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="107"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="108"/>
|
||||
<source>Skill</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="113"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="114"/>
|
||||
<source>Listen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="134"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="135"/>
|
||||
<source>Play Along</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="150"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="151"/>
|
||||
<source>Hands</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="158"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="159"/>
|
||||
<source>Right</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="165"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="166"/>
|
||||
<source>Both</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="172"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="173"/>
|
||||
<source>Left</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="187"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="188"/>
|
||||
<source>Adjust the volume of your piano</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="212"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="211"/>
|
||||
<source>Rhythm Tapping with:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="228"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="223"/>
|
||||
<source>Parts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="269"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="263"/>
|
||||
<source>Adjust the volume of the selected part</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="234"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="229"/>
|
||||
<source>Mute the currently selected part</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="120"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="121"/>
|
||||
<source>Rhythm Tap</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="127"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="128"/>
|
||||
<source>Follow You</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GuiSidePanel.ui" line="237"/>
|
||||
<location filename="../src/GuiSidePanel.ui" line="232"/>
|
||||
<source>Mute your part when playing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1505,12 +1505,12 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtMain.cpp" line="59"/>
|
||||
<location filename="../src/QtMain.cpp" line="61"/>
|
||||
<source>OpenGL support</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtMain.cpp" line="60"/>
|
||||
<location filename="../src/QtMain.cpp" line="62"/>
|
||||
<source>This system does not support OpenGL which is needed to run Piano Booster.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -1746,87 +1746,117 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="577"/>
|
||||
<source><b>PianoBooster - Version </source>
|
||||
<source><b>PianoBooster - Version %1</b> <br><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="606"/>
|
||||
<location filename="../src/QtWindow.cpp" line="578"/>
|
||||
<source><b>Boost</b> your <b>Piano</b> playing skills!<br><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="579"/>
|
||||
<source><a href="http://pianobooster.sourceforge.net/" ><b>http://pianobooster.sourceforge.net</b></a><br><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="580"/>
|
||||
<source>Copyright(c) L. J. Barman, 2008-2009; All rights reserved.<br><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="581"/>
|
||||
<source>Copyright(c) Olivier Humbert, 2018 pour la traduction en français (for the French translation).<br><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="582"/>
|
||||
<source>This program is made available under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="586"/>
|
||||
<source>This program also contains RtMIDI: realtime MIDI i/o C++ classes<br>Copyright(c) 2003-2007 Gary P. Scavone</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="607"/>
|
||||
<source>PC Keyboard Short Cuts</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="608"/>
|
||||
<location filename="../src/QtWindow.cpp" line="609"/>
|
||||
<source><h2><center>Keyboard short cuts</center></h2><p>The following PC keyboard short cuts have been defined.</p><center><table border='1' cellspacing='0' cellpadding='4' ></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="614"/>
|
||||
<location filename="../src/QtWindow.cpp" line="615"/>
|
||||
<source><tr><th>Action</th><th>Key</th></tr></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="620"/>
|
||||
<location filename="../src/QtWindow.cpp" line="621"/>
|
||||
<source>Choose the right hand</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="621"/>
|
||||
<location filename="../src/QtWindow.cpp" line="622"/>
|
||||
<source>Choose both hands</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="622"/>
|
||||
<location filename="../src/QtWindow.cpp" line="623"/>
|
||||
<source>Choose the left Hand</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="623"/>
|
||||
<location filename="../src/QtWindow.cpp" line="624"/>
|
||||
<source>Play from start toggle</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="624"/>
|
||||
<location filename="../src/QtWindow.cpp" line="625"/>
|
||||
<source>Play Pause Toggle</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="625"/>
|
||||
<location filename="../src/QtWindow.cpp" line="626"/>
|
||||
<location filename="../src/QtWindow.cpp" line="627"/>
|
||||
<source>Increase the speed by 5%</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="627"/>
|
||||
<location filename="../src/QtWindow.cpp" line="628"/>
|
||||
<source>Change to the Next Song</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="628"/>
|
||||
<location filename="../src/QtWindow.cpp" line="629"/>
|
||||
<source>Change to the Previous Song</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="629"/>
|
||||
<location filename="../src/QtWindow.cpp" line="630"/>
|
||||
<source>Change to the Next Book</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="630"/>
|
||||
<location filename="../src/QtWindow.cpp" line="631"/>
|
||||
<source>Change to the Previous Book</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="632"/>
|
||||
<location filename="../src/QtWindow.cpp" line="633"/>
|
||||
<source><tr><td>Fake Piano keys</td><td>X is middle C</td></tr></table> </center><br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="653"/>
|
||||
<location filename="../src/QtWindow.cpp" line="654"/>
|
||||
<source>Open Midi File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/QtWindow.cpp" line="654"/>
|
||||
<location filename="../src/QtWindow.cpp" line="655"/>
|
||||
<source>Midi Files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in New Issue
Block a user