mirror of https://github.com/AxioDL/amuse.git
Use asynchronous file dialogs
This commit is contained in:
parent
4fc5dfdc76
commit
68f0f2e769
|
@ -25,6 +25,7 @@ MainWindow::MainWindow(QWidget* parent)
|
||||||
m_navIt(m_navList.begin()),
|
m_navIt(m_navList.begin()),
|
||||||
m_treeDelegate(*this, this),
|
m_treeDelegate(*this, this),
|
||||||
m_mainMessenger(this),
|
m_mainMessenger(this),
|
||||||
|
m_fileDialog(this),
|
||||||
m_undoStack(new QUndoStack(this)),
|
m_undoStack(new QUndoStack(this)),
|
||||||
m_backgroundThread(this)
|
m_backgroundThread(this)
|
||||||
{
|
{
|
||||||
|
@ -82,7 +83,7 @@ MainWindow::MainWindow(QWidget* parent)
|
||||||
connect(m_ui.actionImport_C_Headers, SIGNAL(triggered()), this, SLOT(importHeadersAction()));
|
connect(m_ui.actionImport_C_Headers, SIGNAL(triggered()), this, SLOT(importHeadersAction()));
|
||||||
connect(m_ui.actionExport_C_Headers, SIGNAL(triggered()), this, SLOT(exportHeadersAction()));
|
connect(m_ui.actionExport_C_Headers, SIGNAL(triggered()), this, SLOT(exportHeadersAction()));
|
||||||
m_ui.actionQuit->setShortcut(QKeySequence::Quit);
|
m_ui.actionQuit->setShortcut(QKeySequence::Quit);
|
||||||
connect(m_ui.actionQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
|
connect(m_ui.actionQuit, SIGNAL(triggered()), this, SLOT(close()));
|
||||||
|
|
||||||
for (int i = 0; i < MaxRecentFiles; ++i)
|
for (int i = 0; i < MaxRecentFiles; ++i)
|
||||||
{
|
{
|
||||||
|
@ -165,7 +166,7 @@ MainWindow::MainWindow(QWidget* parent)
|
||||||
m_voxEngine = boo::NewAudioVoiceEngine();
|
m_voxEngine = boo::NewAudioVoiceEngine();
|
||||||
m_voxAllocator = std::make_unique<VoiceAllocator>(*m_voxEngine);
|
m_voxAllocator = std::make_unique<VoiceAllocator>(*m_voxEngine);
|
||||||
m_engine = std::make_unique<amuse::Engine>(*m_voxAllocator);
|
m_engine = std::make_unique<amuse::Engine>(*m_voxAllocator);
|
||||||
m_voxEngine->setVolume(0.7f);
|
m_engine->setVolume(0.7f);
|
||||||
m_studioSetup->loadData(m_engine->getDefaultStudio().get());
|
m_studioSetup->loadData(m_engine->getDefaultStudio().get());
|
||||||
|
|
||||||
m_ctrlVals[7] = 127;
|
m_ctrlVals[7] = 127;
|
||||||
|
@ -302,6 +303,7 @@ bool MainWindow::setProjectPath(const QString& path)
|
||||||
connect(m_ui.projectOutline->selectionModel(),
|
connect(m_ui.projectOutline->selectionModel(),
|
||||||
SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),
|
SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)),
|
||||||
this, SLOT(onOutlineSelectionChanged(const QItemSelection&, const QItemSelection&)));
|
this, SLOT(onOutlineSelectionChanged(const QItemSelection&, const QItemSelection&)));
|
||||||
|
m_fileDialog.setDirectory(path);
|
||||||
m_ui.actionSave_Project->setEnabled(true);
|
m_ui.actionSave_Project->setEnabled(true);
|
||||||
m_ui.actionRevert_Project->setEnabled(true);
|
m_ui.actionRevert_Project->setEnabled(true);
|
||||||
m_ui.actionReload_Sample_Data->setEnabled(true);
|
m_ui.actionReload_Sample_Data->setEnabled(true);
|
||||||
|
@ -399,8 +401,14 @@ void MainWindow::timerEvent(QTimerEvent* ev)
|
||||||
if (m_voxEngine && m_engine)
|
if (m_voxEngine && m_engine)
|
||||||
{
|
{
|
||||||
m_voxEngine->pumpAndMixVoices();
|
m_voxEngine->pumpAndMixVoices();
|
||||||
if (!(m_timerFireCount % 10)) /* Rate limit voice counter */
|
|
||||||
m_ui.statusbar->setVoiceCount(int(m_engine->getNumTotalActiveVoices()));
|
m_peakVoices = std::max(int(m_engine->getNumTotalActiveVoices()), m_peakVoices);
|
||||||
|
if (!(m_timerFireCount % 10))
|
||||||
|
{
|
||||||
|
/* Rate limit voice counter */
|
||||||
|
m_ui.statusbar->setVoiceCount(m_peakVoices);
|
||||||
|
m_peakVoices = 0;
|
||||||
|
}
|
||||||
if (m_engine->getActiveVoices().empty() && m_uiDisabled)
|
if (m_engine->getActiveVoices().empty() && m_uiDisabled)
|
||||||
{
|
{
|
||||||
m_ui.projectOutline->setEnabled(true);
|
m_ui.projectOutline->setEnabled(true);
|
||||||
|
@ -790,7 +798,16 @@ void MainWindow::showEvent(QShowEvent* ev)
|
||||||
|
|
||||||
void MainWindow::newAction()
|
void MainWindow::newAction()
|
||||||
{
|
{
|
||||||
QString path = QFileDialog::getSaveFileName(this, tr("New Project"));
|
m_fileDialog.setWindowTitle(tr("New Project"));
|
||||||
|
m_fileDialog.setAcceptMode(QFileDialog::AcceptSave);
|
||||||
|
m_fileDialog.setFileMode(QFileDialog::AnyFile);
|
||||||
|
m_fileDialog.setOption(QFileDialog::ShowDirsOnly, false);
|
||||||
|
m_fileDialog.open(this, SLOT(_newAction(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::_newAction(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialog.close();
|
||||||
if (path.isEmpty())
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
if (!MkPath(path, m_mainMessenger))
|
if (!MkPath(path, m_mainMessenger))
|
||||||
|
@ -858,7 +875,16 @@ bool MainWindow::openProject(const QString& path)
|
||||||
|
|
||||||
void MainWindow::openAction()
|
void MainWindow::openAction()
|
||||||
{
|
{
|
||||||
QString path = QFileDialog::getExistingDirectory(this, tr("Open Project"));
|
m_fileDialog.setWindowTitle(tr("Open Project"));
|
||||||
|
m_fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
m_fileDialog.setFileMode(QFileDialog::Directory);
|
||||||
|
m_fileDialog.setOption(QFileDialog::ShowDirsOnly, true);
|
||||||
|
m_fileDialog.open(this, SLOT(_openAction(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::_openAction(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialog.close();
|
||||||
if (path.isEmpty())
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
openProject(path);
|
openProject(path);
|
||||||
|
@ -945,8 +971,16 @@ void MainWindow::reloadSampleDataAction()
|
||||||
|
|
||||||
void MainWindow::importAction()
|
void MainWindow::importAction()
|
||||||
{
|
{
|
||||||
QString path = QFileDialog::getOpenFileName(this, tr("Import Project"),
|
m_fileDialog.setWindowTitle(tr("Import Project"));
|
||||||
m_projectModel ? m_projectModel->dir().path() : QString());
|
m_fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
m_fileDialog.setFileMode(QFileDialog::ExistingFile);
|
||||||
|
m_fileDialog.setOption(QFileDialog::ShowDirsOnly, false);
|
||||||
|
m_fileDialog.open(this, SLOT(_importAction(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::_importAction(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialog.close();
|
||||||
if (path.isEmpty())
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1079,7 +1113,16 @@ void MainWindow::importSongsAction()
|
||||||
if (!m_projectModel)
|
if (!m_projectModel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString path = QFileDialog::getOpenFileName(this, tr("Import Songs"), m_projectModel->dir().path());
|
m_fileDialog.setWindowTitle(tr("Import Songs"));
|
||||||
|
m_fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
m_fileDialog.setFileMode(QFileDialog::ExistingFile);
|
||||||
|
m_fileDialog.setOption(QFileDialog::ShowDirsOnly, false);
|
||||||
|
m_fileDialog.open(this, SLOT(_importSongsAction(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::_importSongsAction(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialog.close();
|
||||||
if (path.isEmpty())
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1131,13 +1174,22 @@ void MainWindow::importHeadersAction()
|
||||||
"<p>Group, Song and SFX definitions are matched according to the following forms:"
|
"<p>Group, Song and SFX definitions are matched according to the following forms:"
|
||||||
"<pre>#define GRP<name> <id>\n#define SNG<name> <id>\n"
|
"<pre>#define GRP<name> <id>\n#define SNG<name> <id>\n"
|
||||||
"#define SFX<name> <id></pre></p>"
|
"#define SFX<name> <id></pre></p>"
|
||||||
"<p><strong>This operation cannot be undone! Is is recommended to "
|
"<p><strong>This operation cannot be undone! It is recommended to "
|
||||||
"make a backup of the project directory before proceeding.</strong></p>"
|
"make a backup of the project directory before proceeding.</strong></p>"
|
||||||
"<p>Continue?</p>"), QMessageBox::Yes | QMessageBox::No);
|
"<p>Continue?</p>"), QMessageBox::Yes | QMessageBox::No);
|
||||||
if (confirm == QMessageBox::No)
|
if (confirm == QMessageBox::No)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString path = QFileDialog::getExistingDirectory(this, tr("Import C Headers"), m_projectModel->dir().path());
|
m_fileDialog.setWindowTitle(tr("Import C Headers"));
|
||||||
|
m_fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
m_fileDialog.setFileMode(QFileDialog::Directory);
|
||||||
|
m_fileDialog.setOption(QFileDialog::ShowDirsOnly, true);
|
||||||
|
m_fileDialog.open(this, SLOT(_importHeadersAction(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::_importHeadersAction(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialog.close();
|
||||||
if (path.isEmpty())
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1156,7 +1208,16 @@ void MainWindow::exportHeadersAction()
|
||||||
if (!m_projectModel)
|
if (!m_projectModel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString path = QFileDialog::getExistingDirectory(this, tr("Export C Headers"), m_projectModel->dir().path());
|
m_fileDialog.setWindowTitle(tr("Export C Headers"));
|
||||||
|
m_fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
|
m_fileDialog.setFileMode(QFileDialog::Directory);
|
||||||
|
m_fileDialog.setOption(QFileDialog::ShowDirsOnly, true);
|
||||||
|
m_fileDialog.open(this, SLOT(_exportHeadersAction(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::_exportHeadersAction(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialog.close();
|
||||||
if (path.isEmpty())
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1439,6 +1500,7 @@ void MainWindow::newSoundMacroAction()
|
||||||
while (result == QDialog::Accepted && newName.isEmpty())
|
while (result == QDialog::Accepted && newName.isEmpty())
|
||||||
{
|
{
|
||||||
NewSoundMacroDialog dialog(groupName, this);
|
NewSoundMacroDialog dialog(groupName, this);
|
||||||
|
dialog.setWindowModality(Qt::WindowModal);
|
||||||
result = dialog.exec();
|
result = dialog.exec();
|
||||||
newName = dialog.getName();
|
newName = dialog.getName();
|
||||||
templ = dialog.getSelectedTemplate();
|
templ = dialog.getSelectedTemplate();
|
||||||
|
@ -1913,6 +1975,7 @@ void MainWindow::studioSetupShown()
|
||||||
|
|
||||||
void MainWindow::onBackgroundTaskFinished(int id)
|
void MainWindow::onBackgroundTaskFinished(int id)
|
||||||
{
|
{
|
||||||
|
m_backgroundDialog->close();
|
||||||
m_backgroundDialog->reset();
|
m_backgroundDialog->reset();
|
||||||
m_backgroundDialog->deleteLater();
|
m_backgroundDialog->deleteLater();
|
||||||
m_backgroundDialog = nullptr;
|
m_backgroundDialog = nullptr;
|
||||||
|
@ -1924,8 +1987,7 @@ void MainWindow::onBackgroundTaskFinished(int id)
|
||||||
if (m_mainMessenger.question(tr("Export Complete"), tr("%1?").
|
if (m_mainMessenger.question(tr("Export Complete"), tr("%1?").
|
||||||
arg(ShowInGraphicalShellString())) == QMessageBox::Yes)
|
arg(ShowInGraphicalShellString())) == QMessageBox::Yes)
|
||||||
{
|
{
|
||||||
QFileInfo
|
QFileInfo dirInfo(m_projectModel->dir(), QStringLiteral("out"));
|
||||||
dirInfo(m_projectModel->dir(), QStringLiteral("out"));
|
|
||||||
QDir dir(dirInfo.filePath());
|
QDir dir(dirInfo.filePath());
|
||||||
QStringList entryList = dir.entryList(QDir::Files);
|
QStringList entryList = dir.entryList(QDir::Files);
|
||||||
ShowInGraphicalShell(this,
|
ShowInGraphicalShell(this,
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <QStyledItemDelegate>
|
#include <QStyledItemDelegate>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
#include <QLinkedList>
|
#include <QLinkedList>
|
||||||
|
#include <QFileDialog>
|
||||||
#include "ui_MainWindow.h"
|
#include "ui_MainWindow.h"
|
||||||
#include "amuse/Engine.hpp"
|
#include "amuse/Engine.hpp"
|
||||||
#include "amuse/BooBackend.hpp"
|
#include "amuse/BooBackend.hpp"
|
||||||
|
@ -116,6 +117,7 @@ class MainWindow : public QMainWindow
|
||||||
LayersEditor* m_layersEditor = nullptr;
|
LayersEditor* m_layersEditor = nullptr;
|
||||||
SampleEditor* m_sampleEditor = nullptr;
|
SampleEditor* m_sampleEditor = nullptr;
|
||||||
StudioSetupWidget* m_studioSetup = nullptr;
|
StudioSetupWidget* m_studioSetup = nullptr;
|
||||||
|
QFileDialog m_fileDialog;
|
||||||
|
|
||||||
std::unique_ptr<boo::IAudioVoiceEngine> m_voxEngine;
|
std::unique_ptr<boo::IAudioVoiceEngine> m_voxEngine;
|
||||||
std::unique_ptr<VoiceAllocator> m_voxAllocator;
|
std::unique_ptr<VoiceAllocator> m_voxAllocator;
|
||||||
|
@ -143,6 +145,7 @@ class MainWindow : public QMainWindow
|
||||||
QThread m_backgroundThread;
|
QThread m_backgroundThread;
|
||||||
|
|
||||||
uint64_t m_timerFireCount = 0;
|
uint64_t m_timerFireCount = 0;
|
||||||
|
int m_peakVoices = 0;
|
||||||
|
|
||||||
void connectMessenger(UIMessenger* messenger, Qt::ConnectionType type);
|
void connectMessenger(UIMessenger* messenger, Qt::ConnectionType type);
|
||||||
|
|
||||||
|
@ -186,6 +189,7 @@ public:
|
||||||
amuse::ObjToken<amuse::Sequencer> startSong(amuse::GroupId groupId, amuse::SongId songId,
|
amuse::ObjToken<amuse::Sequencer> startSong(amuse::GroupId groupId, amuse::SongId songId,
|
||||||
const unsigned char* arrData);
|
const unsigned char* arrData);
|
||||||
void pushUndoCommand(EditorUndoCommand* cmd);
|
void pushUndoCommand(EditorUndoCommand* cmd);
|
||||||
|
QFileDialog& fileDialog() { return m_fileDialog; }
|
||||||
void updateFocus();
|
void updateFocus();
|
||||||
void aboutToDeleteNode(ProjectModel::INode* node);
|
void aboutToDeleteNode(ProjectModel::INode* node);
|
||||||
void closeEvent(QCloseEvent* ev);
|
void closeEvent(QCloseEvent* ev);
|
||||||
|
@ -208,17 +212,23 @@ public:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void newAction();
|
void newAction();
|
||||||
|
void _newAction(const QString& path);
|
||||||
void openAction();
|
void openAction();
|
||||||
|
void _openAction(const QString& path);
|
||||||
void openRecentFileAction();
|
void openRecentFileAction();
|
||||||
void clearRecentFilesAction();
|
void clearRecentFilesAction();
|
||||||
void saveAction();
|
void saveAction();
|
||||||
void revertAction();
|
void revertAction();
|
||||||
void reloadSampleDataAction();
|
void reloadSampleDataAction();
|
||||||
void importAction();
|
void importAction();
|
||||||
|
void _importAction(const QString& path);
|
||||||
void importSongsAction();
|
void importSongsAction();
|
||||||
|
void _importSongsAction(const QString& path);
|
||||||
void exportAction();
|
void exportAction();
|
||||||
void importHeadersAction();
|
void importHeadersAction();
|
||||||
|
void _importHeadersAction(const QString& path);
|
||||||
void exportHeadersAction();
|
void exportHeadersAction();
|
||||||
|
void _exportHeadersAction(const QString& path);
|
||||||
|
|
||||||
void newSubprojectAction();
|
void newSubprojectAction();
|
||||||
void newSFXGroupAction();
|
void newSFXGroupAction();
|
||||||
|
|
|
@ -347,6 +347,7 @@ MIDIFileFieldWidget::MIDIFileFieldWidget(QWidget* parent)
|
||||||
connect(&m_button, SIGNAL(clicked(bool)), this, SLOT(buttonPressed()));
|
connect(&m_button, SIGNAL(clicked(bool)), this, SLOT(buttonPressed()));
|
||||||
|
|
||||||
m_dialog.setFileMode(QFileDialog::ExistingFile);
|
m_dialog.setFileMode(QFileDialog::ExistingFile);
|
||||||
|
m_dialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget* MIDIFileDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
QWidget* MIDIFileDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||||
|
@ -427,7 +428,7 @@ void MIDIFileDelegate::doExportMIDI()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString inPath = g_MainWindow->projectModel()->dir().absoluteFilePath(path);
|
QString inPath = g_MainWindow->projectModel()->dir().absoluteFilePath(path);
|
||||||
std::vector<uint8_t> data;
|
m_exportData.clear();
|
||||||
{
|
{
|
||||||
QFile fi(inPath);
|
QFile fi(inPath);
|
||||||
if (!fi.open(QFile::ReadOnly))
|
if (!fi.open(QFile::ReadOnly))
|
||||||
|
@ -437,41 +438,48 @@ void MIDIFileDelegate::doExportMIDI()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto d = fi.readAll();
|
auto d = fi.readAll();
|
||||||
data.resize(d.size());
|
m_exportData.resize(d.size());
|
||||||
memcpy(&data[0], d.data(), d.size());
|
memcpy(&m_exportData[0], d.data(), d.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!memcmp(data.data(), "MThd", 4))
|
if (!memcmp(m_exportData.data(), "MThd", 4))
|
||||||
{
|
{
|
||||||
//data = amuse::SongConverter::MIDIToSong(data, 1, true);
|
//data = amuse::SongConverter::MIDIToSong(data, 1, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool isBig;
|
bool isBig;
|
||||||
if (amuse::SongState::DetectVersion(data.data(), isBig) < 0)
|
if (amuse::SongState::DetectVersion(m_exportData.data(), isBig) < 0)
|
||||||
{
|
{
|
||||||
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
||||||
tr("Invalid song data at %1").arg(inPath));
|
tr("Invalid song data at %1").arg(inPath));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int version;
|
int version;
|
||||||
data = amuse::SongConverter::SongToMIDI(data.data(), version, isBig);
|
m_exportData = amuse::SongConverter::SongToMIDI(m_exportData.data(), version, isBig);
|
||||||
}
|
}
|
||||||
|
|
||||||
QFileInfo inInfo(inPath);
|
QFileInfo inInfo(inPath);
|
||||||
QString outPath =
|
m_fileDialogMid.setDirectory(QFileInfo(inInfo.path(), inInfo.completeBaseName() + QStringLiteral(".mid")).filePath());
|
||||||
QFileDialog::getSaveFileName(g_MainWindow, tr("Export MIDI"),
|
m_fileDialogMid.setAcceptMode(QFileDialog::AcceptSave);
|
||||||
QFileInfo(inInfo.path(), inInfo.completeBaseName() + QStringLiteral(".mid")).filePath(), tr("MIDI(*.mid)"));
|
m_fileDialogMid.setFileMode(QFileDialog::AnyFile);
|
||||||
if (outPath.isEmpty())
|
m_fileDialogMid.setOption(QFileDialog::ShowDirsOnly, false);
|
||||||
|
m_fileDialogMid.open(this, SLOT(_doExportMIDI(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MIDIFileDelegate::_doExportMIDI(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialogMid.close();
|
||||||
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
QFile fo(outPath);
|
QFile fo(path);
|
||||||
if (!fo.open(QFile::WriteOnly))
|
if (!fo.open(QFile::WriteOnly))
|
||||||
{
|
{
|
||||||
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
||||||
tr("Unable to open %1 for writing: %1").arg(outPath).arg(fo.errorString()));
|
tr("Unable to open %1 for writing: %1").arg(path).arg(fo.errorString()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fo.write((char*)data.data(), data.size());
|
fo.write((char*)m_exportData.data(), m_exportData.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MIDIFileDelegate::doExportSNG()
|
void MIDIFileDelegate::doExportSNG()
|
||||||
|
@ -482,7 +490,7 @@ void MIDIFileDelegate::doExportSNG()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString inPath = g_MainWindow->projectModel()->dir().absoluteFilePath(path);
|
QString inPath = g_MainWindow->projectModel()->dir().absoluteFilePath(path);
|
||||||
std::vector<uint8_t> data;
|
m_exportData.clear();
|
||||||
{
|
{
|
||||||
QFile fi(inPath);
|
QFile fi(inPath);
|
||||||
if (!fi.open(QFile::ReadOnly))
|
if (!fi.open(QFile::ReadOnly))
|
||||||
|
@ -492,14 +500,14 @@ void MIDIFileDelegate::doExportSNG()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto d = fi.readAll();
|
auto d = fi.readAll();
|
||||||
data.resize(d.size());
|
m_exportData.resize(d.size());
|
||||||
memcpy(&data[0], d.data(), d.size());
|
memcpy(&m_exportData[0], d.data(), d.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!memcmp(data.data(), "MThd", 4))
|
if (!memcmp(m_exportData.data(), "MThd", 4))
|
||||||
{
|
{
|
||||||
data = amuse::SongConverter::MIDIToSong(data, 1, true);
|
m_exportData = amuse::SongConverter::MIDIToSong(m_exportData, 1, true);
|
||||||
if (data.empty())
|
if (m_exportData.empty())
|
||||||
{
|
{
|
||||||
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
||||||
tr("Invalid MIDI data at %1").arg(inPath));
|
tr("Invalid MIDI data at %1").arg(inPath));
|
||||||
|
@ -509,7 +517,7 @@ void MIDIFileDelegate::doExportSNG()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool isBig;
|
bool isBig;
|
||||||
if (amuse::SongState::DetectVersion(data.data(), isBig) < 0)
|
if (amuse::SongState::DetectVersion(m_exportData.data(), isBig) < 0)
|
||||||
{
|
{
|
||||||
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
||||||
tr("Invalid song data at %1").arg(inPath));
|
tr("Invalid song data at %1").arg(inPath));
|
||||||
|
@ -518,19 +526,26 @@ void MIDIFileDelegate::doExportSNG()
|
||||||
}
|
}
|
||||||
|
|
||||||
QFileInfo inInfo(inPath);
|
QFileInfo inInfo(inPath);
|
||||||
QString outPath =
|
m_fileDialogSng.setDirectory(QFileInfo(inInfo.path(), inInfo.completeBaseName() + QStringLiteral(".sng")).filePath());
|
||||||
QFileDialog::getSaveFileName(g_MainWindow, tr("Export SNG"),
|
m_fileDialogSng.setAcceptMode(QFileDialog::AcceptSave);
|
||||||
QFileInfo(inInfo.path(), inInfo.completeBaseName() + QStringLiteral(".sng")).filePath(), tr("Song(*.sng)"));
|
m_fileDialogSng.setFileMode(QFileDialog::AnyFile);
|
||||||
if (outPath.isEmpty())
|
m_fileDialogSng.setOption(QFileDialog::ShowDirsOnly, false);
|
||||||
|
m_fileDialogSng.open(this, SLOT(_doExportSNG(const QString&)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void MIDIFileDelegate::_doExportSNG(const QString& path)
|
||||||
|
{
|
||||||
|
m_fileDialogSng.close();
|
||||||
|
if (path.isEmpty())
|
||||||
return;
|
return;
|
||||||
QFile fo(outPath);
|
QFile fo(path);
|
||||||
if (!fo.open(QFile::WriteOnly))
|
if (!fo.open(QFile::WriteOnly))
|
||||||
{
|
{
|
||||||
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
g_MainWindow->uiMessenger().critical(tr("File Error"),
|
||||||
tr("Unable to open %1 for writing: %1").arg(outPath).arg(fo.errorString()));
|
tr("Unable to open %1 for writing: %1").arg(path).arg(fo.errorString()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fo.write((char*)data.data(), data.size());
|
fo.write((char*)m_exportData.data(), m_exportData.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MIDIFileDelegate::pathChanged()
|
void MIDIFileDelegate::pathChanged()
|
||||||
|
@ -538,8 +553,10 @@ void MIDIFileDelegate::pathChanged()
|
||||||
emit commitData(static_cast<MIDIFileFieldWidget*>(sender()));
|
emit commitData(static_cast<MIDIFileFieldWidget*>(sender()));
|
||||||
}
|
}
|
||||||
|
|
||||||
MIDIFileDelegate::MIDIFileDelegate(QObject* parent)
|
MIDIFileDelegate::MIDIFileDelegate(SetupTableView* parent)
|
||||||
: QStyledItemDelegate(parent) {}
|
: QStyledItemDelegate(parent),
|
||||||
|
m_fileDialogMid(parent, tr("Export MIDI"), {}, tr("MIDI(*.mid)")),
|
||||||
|
m_fileDialogSng(parent, tr("Export Song"), {}, tr("Song(*.sng)")) {}
|
||||||
|
|
||||||
std::unordered_map<uint8_t, amuse::SongGroupIndex::PageEntry>& PageModel::_getMap() const
|
std::unordered_map<uint8_t, amuse::SongGroupIndex::PageEntry>& PageModel::_getMap() const
|
||||||
{
|
{
|
||||||
|
@ -1315,7 +1332,7 @@ void SetupTableView::showEvent(QShowEvent* event)
|
||||||
}
|
}
|
||||||
|
|
||||||
SetupTableView::SetupTableView(QWidget* parent)
|
SetupTableView::SetupTableView(QWidget* parent)
|
||||||
: QSplitter(parent), m_listView(new QTableView), m_tableView(new QTableView)
|
: QSplitter(parent), m_listView(new QTableView), m_tableView(new QTableView), m_midiDelegate(this)
|
||||||
{
|
{
|
||||||
setChildrenCollapsible(false);
|
setChildrenCollapsible(false);
|
||||||
setStretchFactor(0, 1);
|
setStretchFactor(0, 1);
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
#include <QProxyStyle>
|
#include <QProxyStyle>
|
||||||
#include "amuse/Sequencer.hpp"
|
#include "amuse/Sequencer.hpp"
|
||||||
|
|
||||||
|
class SetupTableView;
|
||||||
|
|
||||||
class PageObjectDelegate : public BaseObjectDelegate
|
class PageObjectDelegate : public BaseObjectDelegate
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -49,8 +51,10 @@ signals:
|
||||||
class MIDIFileDelegate : public QStyledItemDelegate
|
class MIDIFileDelegate : public QStyledItemDelegate
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
QFileDialog m_fileDialogMid, m_fileDialogSng;
|
||||||
|
std::vector<uint8_t> m_exportData;
|
||||||
public:
|
public:
|
||||||
explicit MIDIFileDelegate(QObject* parent = Q_NULLPTR);
|
explicit MIDIFileDelegate(SetupTableView* parent = Q_NULLPTR);
|
||||||
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||||
void destroyEditor(QWidget *editor, const QModelIndex &index) const;
|
void destroyEditor(QWidget *editor, const QModelIndex &index) const;
|
||||||
void setEditorData(QWidget* editor, const QModelIndex& index) const;
|
void setEditorData(QWidget* editor, const QModelIndex& index) const;
|
||||||
|
@ -59,7 +63,9 @@ public:
|
||||||
const QStyleOptionViewItem &option, const QModelIndex &index);
|
const QStyleOptionViewItem &option, const QModelIndex &index);
|
||||||
private slots:
|
private slots:
|
||||||
void doExportMIDI();
|
void doExportMIDI();
|
||||||
|
void _doExportMIDI(const QString& path);
|
||||||
void doExportSNG();
|
void doExportSNG();
|
||||||
|
void _doExportSNG(const QString& path);
|
||||||
public slots:
|
public slots:
|
||||||
void pathChanged();
|
void pathChanged();
|
||||||
};
|
};
|
||||||
|
|
|
@ -128,7 +128,7 @@ CommandWidget::CommandWidget(QWidget* parent, amuse::SoundMacro::ICmd* cmd,
|
||||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||||
m_numberFont.setWeight(QFont::Bold);
|
m_numberFont.setWeight(QFont::Bold);
|
||||||
m_numberFont.setStyleHint(QFont::Monospace);
|
m_numberFont.setStyleHint(QFont::Monospace);
|
||||||
m_numberFont.setPointSize(16);
|
m_numberFont.setPointSize(m_numberFont.pointSize() * 2);
|
||||||
|
|
||||||
setContentsMargins(QMargins());
|
setContentsMargins(QMargins());
|
||||||
setFixedHeight(100);
|
setFixedHeight(100);
|
||||||
|
@ -186,6 +186,7 @@ CommandWidget::CommandWidget(QWidget* parent, amuse::SoundMacro::ICmd* cmd,
|
||||||
case amuse::SoundMacro::CmdIntrospection::Field::Type::UInt32:
|
case amuse::SoundMacro::CmdIntrospection::Field::Type::UInt32:
|
||||||
{
|
{
|
||||||
FieldSpinBox* sb = new FieldSpinBox(this);
|
FieldSpinBox* sb = new FieldSpinBox(this);
|
||||||
|
sb->setFixedHeight(30);
|
||||||
sb->setProperty("fieldIndex", f);
|
sb->setProperty("fieldIndex", f);
|
||||||
sb->setProperty("fieldName", fieldName);
|
sb->setProperty("fieldName", fieldName);
|
||||||
sb->setMinimum(int(field.m_min));
|
sb->setMinimum(int(field.m_min));
|
||||||
|
@ -253,6 +254,7 @@ CommandWidget::CommandWidget(QWidget* parent, amuse::SoundMacro::ICmd* cmd,
|
||||||
case amuse::SoundMacro::CmdIntrospection::Field::Type::SoundMacroStep:
|
case amuse::SoundMacro::CmdIntrospection::Field::Type::SoundMacroStep:
|
||||||
{
|
{
|
||||||
FieldSoundMacroStep* sb = new FieldSoundMacroStep(nf, this);
|
FieldSoundMacroStep* sb = new FieldSoundMacroStep(nf, this);
|
||||||
|
sb->setFixedHeight(30);
|
||||||
sb->setProperty("fieldIndex", f);
|
sb->setProperty("fieldIndex", f);
|
||||||
sb->setProperty("fieldName", fieldName);
|
sb->setProperty("fieldName", fieldName);
|
||||||
sb->m_spinBox.setValue(amuse::AccessField<amuse::SoundMacroStepDNA<athena::Little>>(m_cmd, field).step);
|
sb->m_spinBox.setValue(amuse::AccessField<amuse::SoundMacroStepDNA<athena::Little>>(m_cmd, field).step);
|
||||||
|
@ -264,6 +266,7 @@ CommandWidget::CommandWidget(QWidget* parent, amuse::SoundMacro::ICmd* cmd,
|
||||||
case amuse::SoundMacro::CmdIntrospection::Field::Type::Choice:
|
case amuse::SoundMacro::CmdIntrospection::Field::Type::Choice:
|
||||||
{
|
{
|
||||||
FieldComboBox* cb = new FieldComboBox(this);
|
FieldComboBox* cb = new FieldComboBox(this);
|
||||||
|
cb->setFixedHeight(30);
|
||||||
cb->setProperty("fieldIndex", f);
|
cb->setProperty("fieldIndex", f);
|
||||||
cb->setProperty("fieldName", fieldName);
|
cb->setProperty("fieldName", fieldName);
|
||||||
for (int j = 0; j < 4; ++j)
|
for (int j = 0; j < 4; ++j)
|
||||||
|
|
|
@ -16,10 +16,10 @@ StatusBarWidget::StatusBarWidget(QWidget* parent)
|
||||||
m_killButton.setVisible(false);
|
m_killButton.setVisible(false);
|
||||||
m_killButton.setToolTip(tr("Immediately kill active voices"));
|
m_killButton.setToolTip(tr("Immediately kill active voices"));
|
||||||
m_voiceCount.setVisible(false);
|
m_voiceCount.setVisible(false);
|
||||||
m_volumeIcons[0] = QIcon(QStringLiteral(":/icons/IconVolume0"));
|
m_volumeIcons[0] = QIcon(QStringLiteral(":/icons/IconVolume0.svg"));
|
||||||
m_volumeIcons[1] = QIcon(QStringLiteral(":/icons/IconVolume1"));
|
m_volumeIcons[1] = QIcon(QStringLiteral(":/icons/IconVolume1.svg"));
|
||||||
m_volumeIcons[2] = QIcon(QStringLiteral(":/icons/IconVolume2"));
|
m_volumeIcons[2] = QIcon(QStringLiteral(":/icons/IconVolume2.svg"));
|
||||||
m_volumeIcons[3] = QIcon(QStringLiteral(":/icons/IconVolume3"));
|
m_volumeIcons[3] = QIcon(QStringLiteral(":/icons/IconVolume3.svg"));
|
||||||
m_aIcon.setFixedSize(16, 16);
|
m_aIcon.setFixedSize(16, 16);
|
||||||
m_aIcon.setPixmap(QIcon(QStringLiteral(":/icons/IconA.svg")).pixmap(16, 16));
|
m_aIcon.setPixmap(QIcon(QStringLiteral(":/icons/IconA.svg")).pixmap(16, 16));
|
||||||
QString aTip = tr("Aux A send level for all voices");
|
QString aTip = tr("Aux A send level for all voices");
|
||||||
|
|
|
@ -351,7 +351,7 @@ EffectWidget::EffectWidget(QWidget* parent, amuse::EffectBaseTypeless* effect, a
|
||||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||||
m_numberFont.setWeight(QFont::Bold);
|
m_numberFont.setWeight(QFont::Bold);
|
||||||
m_numberFont.setStyleHint(QFont::Monospace);
|
m_numberFont.setStyleHint(QFont::Monospace);
|
||||||
m_numberFont.setPointSize(16);
|
m_numberFont.setPointSize(m_numberFont.pointSize() * 2);
|
||||||
|
|
||||||
setContentsMargins(QMargins());
|
setContentsMargins(QMargins());
|
||||||
setFixedHeight(100);
|
setFixedHeight(100);
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>CommandWidget</name>
|
<name>CommandWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="308"/>
|
<location filename="../SoundMacroEditor.cpp" line="311"/>
|
||||||
<source>Change %1</source>
|
<source>Change %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -342,71 +342,71 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MIDIFileDelegate</name>
|
<name>MIDIFileDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="386"/>
|
<location filename="../SongGroupEditor.cpp" line="387"/>
|
||||||
<source>Change MIDI Path</source>
|
<source>Change MIDI Path</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="404"/>
|
<location filename="../SongGroupEditor.cpp" line="405"/>
|
||||||
<source>Save As MIDI</source>
|
<source>Save As MIDI</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="410"/>
|
<location filename="../SongGroupEditor.cpp" line="411"/>
|
||||||
<source>Save As SNG</source>
|
<source>Save As SNG</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="435"/>
|
<location filename="../SongGroupEditor.cpp" line="436"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="453"/>
|
<location filename="../SongGroupEditor.cpp" line="454"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="470"/>
|
<location filename="../SongGroupEditor.cpp" line="478"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="490"/>
|
<location filename="../SongGroupEditor.cpp" line="498"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="504"/>
|
<location filename="../SongGroupEditor.cpp" line="512"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="514"/>
|
<location filename="../SongGroupEditor.cpp" line="522"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="529"/>
|
<location filename="../SongGroupEditor.cpp" line="544"/>
|
||||||
<source>File Error</source>
|
<source>File Error</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="436"/>
|
<location filename="../SongGroupEditor.cpp" line="437"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="491"/>
|
<location filename="../SongGroupEditor.cpp" line="499"/>
|
||||||
<source>Unable to open %1 for reading: %1</source>
|
<source>Unable to open %1 for reading: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="454"/>
|
<location filename="../SongGroupEditor.cpp" line="455"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="515"/>
|
<location filename="../SongGroupEditor.cpp" line="523"/>
|
||||||
<source>Invalid song data at %1</source>
|
<source>Invalid song data at %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="463"/>
|
<location filename="../SongGroupEditor.cpp" line="558"/>
|
||||||
<source>Export MIDI</source>
|
<source>Export MIDI</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="464"/>
|
<location filename="../SongGroupEditor.cpp" line="558"/>
|
||||||
<source>MIDI(*.mid)</source>
|
<source>MIDI(*.mid)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="471"/>
|
<location filename="../SongGroupEditor.cpp" line="559"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="530"/>
|
<source>Export Song</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../SongGroupEditor.cpp" line="479"/>
|
||||||
|
<location filename="../SongGroupEditor.cpp" line="545"/>
|
||||||
<source>Unable to open %1 for writing: %1</source>
|
<source>Unable to open %1 for writing: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="505"/>
|
<location filename="../SongGroupEditor.cpp" line="513"/>
|
||||||
<source>Invalid MIDI data at %1</source>
|
<source>Invalid MIDI data at %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="522"/>
|
<location filename="../SongGroupEditor.cpp" line="559"/>
|
||||||
<source>Export SNG</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../SongGroupEditor.cpp" line="523"/>
|
|
||||||
<source>Song(*.sng)</source>
|
<source>Song(*.sng)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -427,13 +427,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MIDIPlayerWidget</name>
|
<name>MIDIPlayerWidget</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1387"/>
|
<location filename="../SongGroupEditor.cpp" line="1404"/>
|
||||||
<source>Stop</source>
|
<source>Stop</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1401"/>
|
<location filename="../SongGroupEditor.cpp" line="1418"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1436"/>
|
<location filename="../SongGroupEditor.cpp" line="1453"/>
|
||||||
<source>Play</source>
|
<source>Play</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -451,333 +451,333 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="41"/>
|
<location filename="../MainWindow.cpp" line="42"/>
|
||||||
<source>Go Back</source>
|
<source>Go Back</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="46"/>
|
<location filename="../MainWindow.cpp" line="47"/>
|
||||||
<source>Go Forward</source>
|
<source>Go Forward</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="230"/>
|
<location filename="../MainWindow.cpp" line="231"/>
|
||||||
<source>Amuse[*]</source>
|
<source>Amuse[*]</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="238"/>
|
<location filename="../MainWindow.cpp" line="239"/>
|
||||||
<source>%1/%2/%3[*] - Amuse</source>
|
<source>%1/%2/%3[*] - Amuse</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="243"/>
|
<location filename="../MainWindow.cpp" line="244"/>
|
||||||
<source>%1[*] - Amuse</source>
|
<source>%1[*] - Amuse</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="272"/>
|
<location filename="../MainWindow.cpp" line="273"/>
|
||||||
<location filename="../MainWindow.cpp" line="812"/>
|
<location filename="../MainWindow.cpp" line="829"/>
|
||||||
<source>The directory at '%1' must not be empty.</source>
|
<source>The directory at '%1' must not be empty.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="273"/>
|
<location filename="../MainWindow.cpp" line="274"/>
|
||||||
<location filename="../MainWindow.cpp" line="813"/>
|
<location filename="../MainWindow.cpp" line="830"/>
|
||||||
<source>Directory empty</source>
|
<source>Directory empty</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="278"/>
|
<location filename="../MainWindow.cpp" line="279"/>
|
||||||
<source>The directory at '%1' must exist for the Amuse editor.</source>
|
<source>The directory at '%1' must exist for the Amuse editor.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="279"/>
|
<location filename="../MainWindow.cpp" line="280"/>
|
||||||
<source>Directory does not exist</source>
|
<source>Directory does not exist</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="282"/>
|
<location filename="../MainWindow.cpp" line="283"/>
|
||||||
<source>__amuse_test__</source>
|
<source>__amuse_test__</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="287"/>
|
<location filename="../MainWindow.cpp" line="288"/>
|
||||||
<source>The directory at '%1' must be writable for the Amuse editor: %2</source>
|
<source>The directory at '%1' must be writable for the Amuse editor: %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="289"/>
|
<location filename="../MainWindow.cpp" line="290"/>
|
||||||
<source>Unable to write to directory</source>
|
<source>Unable to write to directory</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="360"/>
|
<location filename="../MainWindow.cpp" line="362"/>
|
||||||
<source>No Audio Devices Found</source>
|
<source>No Audio Devices Found</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="375"/>
|
<location filename="../MainWindow.cpp" line="377"/>
|
||||||
<source>Virtual MIDI-In</source>
|
<source>Virtual MIDI-In</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="394"/>
|
<location filename="../MainWindow.cpp" line="396"/>
|
||||||
<source>No MIDI Devices Found</source>
|
<source>No MIDI Devices Found</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="456"/>
|
<location filename="../MainWindow.cpp" line="464"/>
|
||||||
<source>SUSTAIN</source>
|
<source>SUSTAIN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="764"/>
|
<location filename="../MainWindow.cpp" line="772"/>
|
||||||
<source>Unsaved Changes</source>
|
<source>Unsaved Changes</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="764"/>
|
<location filename="../MainWindow.cpp" line="772"/>
|
||||||
<source>Save Changes in %1?</source>
|
<source>Save Changes in %1?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="793"/>
|
<location filename="../MainWindow.cpp" line="801"/>
|
||||||
<source>New Project</source>
|
<source>New Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="818"/>
|
<location filename="../MainWindow.cpp" line="835"/>
|
||||||
<source>The directory at '%1' does not exist.</source>
|
<source>The directory at '%1' does not exist.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="819"/>
|
<location filename="../MainWindow.cpp" line="836"/>
|
||||||
<source>Bad Directory</source>
|
<source>Bad Directory</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="834"/>
|
<location filename="../MainWindow.cpp" line="851"/>
|
||||||
<source>Opening</source>
|
<source>Opening</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="834"/>
|
<location filename="../MainWindow.cpp" line="851"/>
|
||||||
<location filename="../MainWindow.cpp" line="924"/>
|
<location filename="../MainWindow.cpp" line="950"/>
|
||||||
<location filename="../MainWindow.cpp" line="1010"/>
|
<location filename="../MainWindow.cpp" line="1044"/>
|
||||||
<location filename="../MainWindow.cpp" line="1056"/>
|
<location filename="../MainWindow.cpp" line="1090"/>
|
||||||
<location filename="../MainWindow.cpp" line="1102"/>
|
<location filename="../MainWindow.cpp" line="1145"/>
|
||||||
<source>Scanning Project</source>
|
<source>Scanning Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="848"/>
|
<location filename="../MainWindow.cpp" line="865"/>
|
||||||
<source>Opening %1</source>
|
<source>Opening %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="861"/>
|
<location filename="../MainWindow.cpp" line="878"/>
|
||||||
<source>Open Project</source>
|
<source>Open Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="924"/>
|
<location filename="../MainWindow.cpp" line="950"/>
|
||||||
<source>Reloading Samples</source>
|
<source>Reloading Samples</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="938"/>
|
<location filename="../MainWindow.cpp" line="964"/>
|
||||||
<source>Scanning %1</source>
|
<source>Scanning %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="948"/>
|
<location filename="../MainWindow.cpp" line="974"/>
|
||||||
<source>Import Project</source>
|
<source>Import Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="958"/>
|
<location filename="../MainWindow.cpp" line="992"/>
|
||||||
<source>The file at '%1' could not be interpreted as a MusyX container.</source>
|
<source>The file at '%1' could not be interpreted as a MusyX container.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="959"/>
|
<location filename="../MainWindow.cpp" line="993"/>
|
||||||
<source>Unsupported MusyX Container</source>
|
<source>Unsupported MusyX Container</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="964"/>
|
<location filename="../MainWindow.cpp" line="998"/>
|
||||||
<source>Sample Import Mode</source>
|
<source>Sample Import Mode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="965"/>
|
<location filename="../MainWindow.cpp" line="999"/>
|
||||||
<source>Amuse can import samples as WAV files for ease of editing, import original compressed data for lossless repacking, or both. Exporting the project will prefer whichever version was modified most recently.</source>
|
<source>Amuse can import samples as WAV files for ease of editing, import original compressed data for lossless repacking, or both. Exporting the project will prefer whichever version was modified most recently.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="969"/>
|
<location filename="../MainWindow.cpp" line="1003"/>
|
||||||
<source>Import Compressed</source>
|
<source>Import Compressed</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="969"/>
|
<location filename="../MainWindow.cpp" line="1003"/>
|
||||||
<source>Import WAVs</source>
|
<source>Import WAVs</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="969"/>
|
<location filename="../MainWindow.cpp" line="1003"/>
|
||||||
<source>Import Both</source>
|
<source>Import Both</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="985"/>
|
<location filename="../MainWindow.cpp" line="1019"/>
|
||||||
<source>Raw Import Mode</source>
|
<source>Raw Import Mode</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="986"/>
|
<location filename="../MainWindow.cpp" line="1020"/>
|
||||||
<source>Would you like to scan for all MusyX group files in this directory?</source>
|
<source>Would you like to scan for all MusyX group files in this directory?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="996"/>
|
<location filename="../MainWindow.cpp" line="1030"/>
|
||||||
<source>Project Name</source>
|
<source>Project Name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="996"/>
|
<location filename="../MainWindow.cpp" line="1030"/>
|
||||||
<source>What should this project be named?</source>
|
<source>What should this project be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1010"/>
|
<location filename="../MainWindow.cpp" line="1044"/>
|
||||||
<location filename="../MainWindow.cpp" line="1056"/>
|
<location filename="../MainWindow.cpp" line="1090"/>
|
||||||
<source>Importing</source>
|
<source>Importing</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1022"/>
|
<location filename="../MainWindow.cpp" line="1056"/>
|
||||||
<location filename="../MainWindow.cpp" line="1065"/>
|
<location filename="../MainWindow.cpp" line="1099"/>
|
||||||
<source>Importing %1</source>
|
<source>Importing %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1082"/>
|
<location filename="../MainWindow.cpp" line="1116"/>
|
||||||
<source>Import Songs</source>
|
<source>Import Songs</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1102"/>
|
<location filename="../MainWindow.cpp" line="1145"/>
|
||||||
<source>Exporting</source>
|
<source>Exporting</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1110"/>
|
<location filename="../MainWindow.cpp" line="1153"/>
|
||||||
<source>Exporting %1</source>
|
<source>Exporting %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1125"/>
|
<location filename="../MainWindow.cpp" line="1168"/>
|
||||||
<location filename="../MainWindow.cpp" line="1140"/>
|
<location filename="../MainWindow.cpp" line="1183"/>
|
||||||
<source>Import C Headers</source>
|
<source>Import C Headers</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1126"/>
|
<location filename="../MainWindow.cpp" line="1169"/>
|
||||||
<source><p>Importing names from C headers depends on up-to-date, consistent names relative to the sound group data.</p><p>Headers are imported on a per-subproject basis from a single directory. Headers must be named with the form <code>&lt;subproject&gt;.h</code>.</p><p>Group, Song and SFX definitions are matched according to the following forms:<pre>#define GRP&lt;name&gt; &lt;id&gt;
|
<source><p>Importing names from C headers depends on up-to-date, consistent names relative to the sound group data.</p><p>Headers are imported on a per-subproject basis from a single directory. Headers must be named with the form <code>&lt;subproject&gt;.h</code>.</p><p>Group, Song and SFX definitions are matched according to the following forms:<pre>#define GRP&lt;name&gt; &lt;id&gt;
|
||||||
#define SNG&lt;name&gt; &lt;id&gt;
|
#define SNG&lt;name&gt; &lt;id&gt;
|
||||||
#define SFX&lt;name> &lt;id&gt;</pre></p><p><strong>This operation cannot be undone! Is is recommended to make a backup of the project directory before proceeding.</strong></p><p>Continue?</p></source>
|
#define SFX&lt;name> &lt;id&gt;</pre></p><p><strong>This operation cannot be undone! It is recommended to make a backup of the project directory before proceeding.</strong></p><p>Continue?</p></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1159"/>
|
<location filename="../MainWindow.cpp" line="1211"/>
|
||||||
<source>Export C Headers</source>
|
<source>Export C Headers</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1385"/>
|
<location filename="../MainWindow.cpp" line="1446"/>
|
||||||
<source>New Subproject</source>
|
<source>New Subproject</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1386"/>
|
<location filename="../MainWindow.cpp" line="1447"/>
|
||||||
<source>What should this subproject be named?</source>
|
<source>What should this subproject be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1401"/>
|
<location filename="../MainWindow.cpp" line="1462"/>
|
||||||
<source>New SFX Group</source>
|
<source>New SFX Group</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1402"/>
|
<location filename="../MainWindow.cpp" line="1463"/>
|
||||||
<source>What should the new SFX group in %1 be named?</source>
|
<source>What should the new SFX group in %1 be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1420"/>
|
<location filename="../MainWindow.cpp" line="1481"/>
|
||||||
<source>New Song Group</source>
|
<source>New Song Group</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1421"/>
|
<location filename="../MainWindow.cpp" line="1482"/>
|
||||||
<source>What should the new Song group in %1 be named?</source>
|
<source>What should the new Song group in %1 be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1462"/>
|
<location filename="../MainWindow.cpp" line="1524"/>
|
||||||
<source>New ADSR</source>
|
<source>New ADSR</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1463"/>
|
<location filename="../MainWindow.cpp" line="1525"/>
|
||||||
<source>What should the new ADSR in %1 be named?</source>
|
<source>What should the new ADSR in %1 be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1481"/>
|
<location filename="../MainWindow.cpp" line="1543"/>
|
||||||
<source>New Curve</source>
|
<source>New Curve</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1482"/>
|
<location filename="../MainWindow.cpp" line="1544"/>
|
||||||
<source>What should the new Curve in %1 be named?</source>
|
<source>What should the new Curve in %1 be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1500"/>
|
<location filename="../MainWindow.cpp" line="1562"/>
|
||||||
<source>New Keymap</source>
|
<source>New Keymap</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1501"/>
|
<location filename="../MainWindow.cpp" line="1563"/>
|
||||||
<source>What should the new Keymap in %1 be named?</source>
|
<source>What should the new Keymap in %1 be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1519"/>
|
<location filename="../MainWindow.cpp" line="1581"/>
|
||||||
<source>New Layers</source>
|
<source>New Layers</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1520"/>
|
<location filename="../MainWindow.cpp" line="1582"/>
|
||||||
<source>What should the new Layers in %1 be named?</source>
|
<source>What should the new Layers in %1 be named?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1630"/>
|
<location filename="../MainWindow.cpp" line="1692"/>
|
||||||
<source>About Amuse</source>
|
<source>About Amuse</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1924"/>
|
<location filename="../MainWindow.cpp" line="1987"/>
|
||||||
<source>Export Complete</source>
|
<source>Export Complete</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1924"/>
|
<location filename="../MainWindow.cpp" line="1987"/>
|
||||||
<source>%1?</source>
|
<source>%1?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -997,7 +997,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="95"/>
|
<location filename="../MainWindow.cpp" line="96"/>
|
||||||
<source>Clear Recent Projects</source>
|
<source>Clear Recent Projects</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1121,38 +1121,38 @@
|
||||||
<context>
|
<context>
|
||||||
<name>PageModel</name>
|
<name>PageModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="659"/>
|
<location filename="../SongGroupEditor.cpp" line="676"/>
|
||||||
<source>Program Conflict</source>
|
<source>Program Conflict</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="660"/>
|
<location filename="../SongGroupEditor.cpp" line="677"/>
|
||||||
<source>Program %1 is already defined in table</source>
|
<source>Program %1 is already defined in table</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="666"/>
|
<location filename="../SongGroupEditor.cpp" line="683"/>
|
||||||
<location filename="../SongGroupEditor.cpp" line="692"/>
|
<location filename="../SongGroupEditor.cpp" line="709"/>
|
||||||
<source>Change %1</source>
|
<source>Change %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="706"/>
|
<location filename="../SongGroupEditor.cpp" line="723"/>
|
||||||
<source>Program</source>
|
<source>Program</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="708"/>
|
<location filename="../SongGroupEditor.cpp" line="725"/>
|
||||||
<source>Object</source>
|
<source>Object</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="710"/>
|
<location filename="../SongGroupEditor.cpp" line="727"/>
|
||||||
<source>Priority</source>
|
<source>Priority</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="712"/>
|
<location filename="../SongGroupEditor.cpp" line="729"/>
|
||||||
<source>Max Voices</source>
|
<source>Max Voices</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1186,12 +1186,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>PageTableView</name>
|
<name>PageTableView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1245"/>
|
<location filename="../SongGroupEditor.cpp" line="1262"/>
|
||||||
<source>Delete Page Entries</source>
|
<source>Delete Page Entries</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1245"/>
|
<location filename="../SongGroupEditor.cpp" line="1262"/>
|
||||||
<source>Delete Page Entry</source>
|
<source>Delete Page Entry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1551,7 +1551,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>QDialogButtonBox</name>
|
<name>QDialogButtonBox</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1956"/>
|
<location filename="../MainWindow.cpp" line="2018"/>
|
||||||
<source>OK</source>
|
<source>OK</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1559,12 +1559,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>QMessageBox</name>
|
<name>QMessageBox</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1613"/>
|
<location filename="../MainWindow.cpp" line="1675"/>
|
||||||
<source><h3>About Amuse</h3></source>
|
<source><h3>About Amuse</h3></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1617"/>
|
<location filename="../MainWindow.cpp" line="1679"/>
|
||||||
<source><p>Amuse is an alternate editor and runtime library for MusyX sound groups.</p><p>MusyX originally served as a widely-deployed audio system for developing games on the Nintendo 64, GameCube, and GameBoy Advance.</p><p>Amuse is available under the MIT license.<br>Please see <a href="https://gitlab.axiodl.com/AxioDL/amuse/blob/master/LICENSE">https://gitlab.axiodl.com/AxioDL/amuse/blob/master/LICENSE</a> for futher information.</p><p>Copyright (C) 2015-2018 Antidote / Jackoalan.</p><p>MusyX is a trademark of Factor 5, LLC.</p><p>Nintendo 64, GameCube, and GameBoy Advance are trademarks of Nintendo Co., Ltd.</p></source>
|
<source><p>Amuse is an alternate editor and runtime library for MusyX sound groups.</p><p>MusyX originally served as a widely-deployed audio system for developing games on the Nintendo 64, GameCube, and GameBoy Advance.</p><p>Amuse is available under the MIT license.<br>Please see <a href="https://gitlab.axiodl.com/AxioDL/amuse/blob/master/LICENSE">https://gitlab.axiodl.com/AxioDL/amuse/blob/master/LICENSE</a> for futher information.</p><p>Copyright (C) 2015-2018 Antidote / Jackoalan.</p><p>MusyX is a trademark of Factor 5, LLC.</p><p>Nintendo 64, GameCube, and GameBoy Advance are trademarks of Nintendo Co., Ltd.</p></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1736,27 +1736,27 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SetupListModel</name>
|
<name>SetupListModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="932"/>
|
<location filename="../SongGroupEditor.cpp" line="949"/>
|
||||||
<source>Song Conflict</source>
|
<source>Song Conflict</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="933"/>
|
<location filename="../SongGroupEditor.cpp" line="950"/>
|
||||||
<source>Song %1 is already defined in project</source>
|
<source>Song %1 is already defined in project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="938"/>
|
<location filename="../SongGroupEditor.cpp" line="955"/>
|
||||||
<source>Change Song Name</source>
|
<source>Change Song Name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="955"/>
|
<location filename="../SongGroupEditor.cpp" line="972"/>
|
||||||
<source>Song</source>
|
<source>Song</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="957"/>
|
<location filename="../SongGroupEditor.cpp" line="974"/>
|
||||||
<source>MIDI File</source>
|
<source>MIDI File</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1764,32 +1764,32 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SetupModel</name>
|
<name>SetupModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1180"/>
|
<location filename="../SongGroupEditor.cpp" line="1197"/>
|
||||||
<source>Change %1</source>
|
<source>Change %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1197"/>
|
<location filename="../SongGroupEditor.cpp" line="1214"/>
|
||||||
<source>Program</source>
|
<source>Program</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1199"/>
|
<location filename="../SongGroupEditor.cpp" line="1216"/>
|
||||||
<source>Volume</source>
|
<source>Volume</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1201"/>
|
<location filename="../SongGroupEditor.cpp" line="1218"/>
|
||||||
<source>Panning</source>
|
<source>Panning</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1203"/>
|
<location filename="../SongGroupEditor.cpp" line="1220"/>
|
||||||
<source>Reverb</source>
|
<source>Reverb</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1205"/>
|
<location filename="../SongGroupEditor.cpp" line="1222"/>
|
||||||
<source>Chorus</source>
|
<source>Chorus</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1797,12 +1797,12 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SetupTableView</name>
|
<name>SetupTableView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1309"/>
|
<location filename="../SongGroupEditor.cpp" line="1326"/>
|
||||||
<source>Delete Setup Entries</source>
|
<source>Delete Setup Entries</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1309"/>
|
<location filename="../SongGroupEditor.cpp" line="1326"/>
|
||||||
<source>Delete Setup Entry</source>
|
<source>Delete Setup Entry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1810,37 +1810,37 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SongGroupEditor</name>
|
<name>SongGroupEditor</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1699"/>
|
<location filename="../SongGroupEditor.cpp" line="1716"/>
|
||||||
<source>Add new page entry</source>
|
<source>Add new page entry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1701"/>
|
<location filename="../SongGroupEditor.cpp" line="1718"/>
|
||||||
<source>Remove selected page entries</source>
|
<source>Remove selected page entries</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1668"/>
|
<location filename="../SongGroupEditor.cpp" line="1685"/>
|
||||||
<source>Normal Pages</source>
|
<source>Normal Pages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1507"/>
|
<location filename="../SongGroupEditor.cpp" line="1524"/>
|
||||||
<source>Add Page Entry</source>
|
<source>Add Page Entry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1519"/>
|
<location filename="../SongGroupEditor.cpp" line="1536"/>
|
||||||
<source>Add Setup Entry</source>
|
<source>Add Setup Entry</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1669"/>
|
<location filename="../SongGroupEditor.cpp" line="1686"/>
|
||||||
<source>Drum Pages</source>
|
<source>Drum Pages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SongGroupEditor.cpp" line="1670"/>
|
<location filename="../SongGroupEditor.cpp" line="1687"/>
|
||||||
<source>MIDI Setups</source>
|
<source>MIDI Setups</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1866,72 +1866,72 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SoundMacroCatalogue</name>
|
<name>SoundMacroCatalogue</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="936"/>
|
<location filename="../SoundMacroEditor.cpp" line="939"/>
|
||||||
<source>Control</source>
|
<source>Control</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="937"/>
|
<location filename="../SoundMacroEditor.cpp" line="940"/>
|
||||||
<source>Pitch</source>
|
<source>Pitch</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="938"/>
|
<location filename="../SoundMacroEditor.cpp" line="941"/>
|
||||||
<source>Sample</source>
|
<source>Sample</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="939"/>
|
<location filename="../SoundMacroEditor.cpp" line="942"/>
|
||||||
<source>Setup</source>
|
<source>Setup</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="940"/>
|
<location filename="../SoundMacroEditor.cpp" line="943"/>
|
||||||
<source>Special</source>
|
<source>Special</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="941"/>
|
<location filename="../SoundMacroEditor.cpp" line="944"/>
|
||||||
<source>Structure</source>
|
<source>Structure</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="942"/>
|
<location filename="../SoundMacroEditor.cpp" line="945"/>
|
||||||
<source>Volume</source>
|
<source>Volume</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="947"/>
|
<location filename="../SoundMacroEditor.cpp" line="950"/>
|
||||||
<source>Commands to control the voice</source>
|
<source>Commands to control the voice</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="948"/>
|
<location filename="../SoundMacroEditor.cpp" line="951"/>
|
||||||
<source>Commands to control the voice's pitch</source>
|
<source>Commands to control the voice's pitch</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="949"/>
|
<location filename="../SoundMacroEditor.cpp" line="952"/>
|
||||||
<source>Commands to control the voice's sample playback</source>
|
<source>Commands to control the voice's sample playback</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="950"/>
|
<location filename="../SoundMacroEditor.cpp" line="953"/>
|
||||||
<source>Commands to setup the voice's mixing process</source>
|
<source>Commands to setup the voice's mixing process</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="951"/>
|
<location filename="../SoundMacroEditor.cpp" line="954"/>
|
||||||
<source>Miscellaneous commands</source>
|
<source>Miscellaneous commands</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="952"/>
|
<location filename="../SoundMacroEditor.cpp" line="955"/>
|
||||||
<source>Commands to control macro branching</source>
|
<source>Commands to control macro branching</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="953"/>
|
<location filename="../SoundMacroEditor.cpp" line="956"/>
|
||||||
<source>Commands to control the voice's volume</source>
|
<source>Commands to control the voice's volume</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -1947,17 +1947,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SoundMacroListing</name>
|
<name>SoundMacroListing</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="635"/>
|
<location filename="../SoundMacroEditor.cpp" line="638"/>
|
||||||
<source>Reorder %1</source>
|
<source>Reorder %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="767"/>
|
<location filename="../SoundMacroEditor.cpp" line="770"/>
|
||||||
<source>Insert %1</source>
|
<source>Insert %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../SoundMacroEditor.cpp" line="820"/>
|
<location filename="../SoundMacroEditor.cpp" line="823"/>
|
||||||
<source>Delete %1</source>
|
<source>Delete %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2014,52 +2014,52 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TreeDelegate</name>
|
<name>TreeDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1190"/>
|
<location filename="../MainWindow.cpp" line="1251"/>
|
||||||
<source>Export GameCube Group</source>
|
<source>Export GameCube Group</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1198"/>
|
<location filename="../MainWindow.cpp" line="1259"/>
|
||||||
<source>Find Usages</source>
|
<source>Find Usages</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1206"/>
|
<location filename="../MainWindow.cpp" line="1267"/>
|
||||||
<source>Cut</source>
|
<source>Cut</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1214"/>
|
<location filename="../MainWindow.cpp" line="1275"/>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1222"/>
|
<location filename="../MainWindow.cpp" line="1283"/>
|
||||||
<source>Paste</source>
|
<source>Paste</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1230"/>
|
<location filename="../MainWindow.cpp" line="1291"/>
|
||||||
<source>Duplicate</source>
|
<source>Duplicate</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1235"/>
|
<location filename="../MainWindow.cpp" line="1296"/>
|
||||||
<source>Delete</source>
|
<source>Delete</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1243"/>
|
<location filename="../MainWindow.cpp" line="1304"/>
|
||||||
<source>Rename</source>
|
<source>Rename</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1274"/>
|
<location filename="../MainWindow.cpp" line="1335"/>
|
||||||
<source>Exporting</source>
|
<source>Exporting</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../MainWindow.cpp" line="1274"/>
|
<location filename="../MainWindow.cpp" line="1335"/>
|
||||||
<source>Exporting %1</source>
|
<source>Exporting %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -318,6 +318,8 @@ std::string AudioGroupDatabase::exportCHeader(std::string_view projectName, std:
|
||||||
char curTmStr[26];
|
char curTmStr[26];
|
||||||
asctime_s(curTmStr, &curTm);
|
asctime_s(curTmStr, &curTm);
|
||||||
#endif
|
#endif
|
||||||
|
if (char* ch = strchr(curTmStr, '\n'))
|
||||||
|
*ch = '\0';
|
||||||
ret += curTmStr;
|
ret += curTmStr;
|
||||||
ret += "\n"
|
ret += "\n"
|
||||||
" */\n\n\n"sv;
|
" */\n\n\n"sv;
|
||||||
|
|
Loading…
Reference in New Issue