|
From: Tapio V. <aa...@us...> - 2011-10-11 20:01:41
|
Author: Tapio Vierros <tap...@gm...>
Date: Tue Oct 4 22:45:25 2011 +0300
A way to add additional music file for analyzing.
---
editor.ui | 6 ++++++
editorapp.cc | 30 +++++++++++++++++++++++-------
editorapp.hh | 3 ++-
3 files changed, 31 insertions(+), 8 deletions(-)
diff --git a/editor.ui b/editor.ui
index 49333b6..cd41178 100644
--- a/editor.ui
+++ b/editor.ui
@@ -448,6 +448,7 @@
<string>&Insert</string>
</property>
<addaction name="actionMusicFile"/>
+ <addaction name="actionAdditionalMusicFile"/>
<addaction name="separator"/>
<addaction name="actionLyricsFromFile"/>
<addaction name="actionLyricsFromClipboard"/>
@@ -704,6 +705,11 @@
<string>About Qt...</string>
</property>
</action>
+ <action name="actionAdditionalMusicFile">
+ <property name="text">
+ <string>&Additional music file...</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections>
diff --git a/editorapp.cc b/editorapp.cc
index 3dbe4ce..21c35ed 100644
--- a/editorapp.cc
+++ b/editorapp.cc
@@ -69,6 +69,7 @@ EditorApp::EditorApp(QWidget *parent)
ui.actionSelectAll->setIcon(QIcon::fromTheme("edit-select-all", QIcon(":/icons/edit-select-all.png")));
ui.menuPreferences->setIcon(QIcon::fromTheme("preferences-other", QIcon(":/icons/preferences-other.png")));
ui.actionMusicFile->setIcon(QIcon::fromTheme("insert-object", QIcon(":/icons/insert-object.png")));
+ ui.actionAdditionalMusicFile->setIcon(QIcon::fromTheme("insert-object", QIcon(":/icons/insert-object.png")));
ui.actionLyricsFromFile->setIcon(QIcon::fromTheme("insert-text", QIcon(":/icons/insert-text.png")));
ui.actionLyricsFromClipboard->setIcon(QIcon::fromTheme("insert-text", QIcon(":/icons/insert-text.png")));
ui.actionZoomIn->setIcon(QIcon::fromTheme("zoom-in", QIcon(":/icons/zoom-in.png")));
@@ -590,17 +591,19 @@ void EditorApp::on_actionAntiAliasing_toggled(bool checked)
// Insert menu
-void EditorApp::setMusic(QString filepath)
+void EditorApp::setMusic(QString filepath, bool primary)
{
ui.valMusicFile->setText(filepath);
- song->music["EDITOR"] = filepath;
+ song->music[primary ? "EDITOR" : "ADDITIONAL"] = filepath;
setWindowModified(true);
updateMenuStates();
- // Metadata is updated when it becomes available (signal)
- player->setCurrentSource(Phonon::MediaSource(QUrl::fromLocalFile(filepath)));
- noteGraph->updateMusicPos(0, false);
- // Fire up analyzer
- noteGraph->analyzeMusic(filepath);
+ if (primary) {
+ // Metadata is updated when it becomes available (signal)
+ player->setCurrentSource(Phonon::MediaSource(QUrl::fromLocalFile(filepath)));
+ noteGraph->updateMusicPos(0, false);
+ // Fire up analyzer
+ noteGraph->analyzeMusic(filepath);
+ } else noteGraph->analyzeMusic(filepath, 1);
}
void EditorApp::on_actionMusicFile_triggered()
@@ -615,6 +618,19 @@ void EditorApp::on_actionMusicFile_triggered()
}
}
+void EditorApp::on_actionAdditionalMusicFile_triggered()
+{
+ // FIXME: Duplication with on_actionMusicFile_triggered()
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
+ latestPath,
+ tr("Music files") + " (*.mp3 *.ogg *.wav *.wma *.flac)");
+
+ if (!fileName.isNull()) {
+ QFileInfo finfo(fileName); latestPath = finfo.path();
+ setMusic(fileName, false);
+ }
+}
+
void EditorApp::on_actionLyricsFromFile_triggered()
{
if ((noteGraph && noteGraph->noteLabels().empty())
diff --git a/editorapp.hh b/editorapp.hh
index 0164c14..ab9a8c9 100644
--- a/editorapp.hh
+++ b/editorapp.hh
@@ -59,7 +59,7 @@ public:
private:
void setupNoteGraph();
- void setMusic(QString filepath);
+ void setMusic(QString filepath, bool primary = true);
bool promptSaving();
void saveProject(QString fileName);
void exportSong(QString format, QString dialogTitle);
@@ -107,6 +107,7 @@ public slots:
// Insert menu
void on_actionMusicFile_triggered();
+ void on_actionAdditionalMusicFile_triggered();
void on_actionLyricsFromFile_triggered();
void on_actionLyricsFromClipboard_triggered();
|