summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2011-05-13 20:18:01 +0000
committerRobert Jonsson <spamatica@gmail.com>2011-05-13 20:18:01 +0000
commit99ccbebf8ce4e7070843fff94f2953c2818ca5c8 (patch)
tree8eb163af0b78724036ce088169bb8f432d2d178c /muse2/muse/widgets
parent7a980874149d99539b65cc9df66c217e7be33adf (diff)
find unused wave files
Diffstat (limited to 'muse2/muse/widgets')
-rw-r--r--muse2/muse/widgets/CMakeLists.txt9
-rw-r--r--muse2/muse/widgets/unusedwavefiles.cpp96
-rw-r--r--muse2/muse/widgets/unusedwavefiles.h25
-rw-r--r--muse2/muse/widgets/unusedwavefiles.ui131
4 files changed, 258 insertions, 3 deletions
diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt
index 261c27a2..9a3f993a 100644
--- a/muse2/muse/widgets/CMakeLists.txt
+++ b/muse2/muse/widgets/CMakeLists.txt
@@ -75,7 +75,8 @@ QT4_WRAP_CPP (widget_mocs
tools.h
# ttoolbar.h
ttoolbutton.h
- velocity.h
+ unusedwavefiles.h
+ velocity.h
verticalmeter.h
view.h
vscale.h
@@ -109,7 +110,8 @@ file (GLOB widgets_ui_files
songinfo.ui
synthconfigbase.ui
transformbase.ui
- transposebase.ui
+ transposebase.ui
+ unusedwavefiles.ui
velocitybase.ui
)
QT4_WRAP_UI (widget_ui_headers ${widgets_ui_files})
@@ -175,7 +177,8 @@ file (GLOB widgets_source_files
tools.cpp
ttoolbar.cpp
ttoolbutton.cpp
- utils.cpp
+ unusedwavefiles.cpp
+ utils.cpp
velocity.cpp
verticalmeter.cpp
view.cpp
diff --git a/muse2/muse/widgets/unusedwavefiles.cpp b/muse2/muse/widgets/unusedwavefiles.cpp
new file mode 100644
index 00000000..7cba1bd5
--- /dev/null
+++ b/muse2/muse/widgets/unusedwavefiles.cpp
@@ -0,0 +1,96 @@
+#include <stdio.h>
+#include <qdir.h>
+#include <qfileinfo.h>
+#include <qstringlist.h>
+#include <qtextstream.h>
+#include <qmessagebox.h>
+#include "unusedwavefiles.h"
+#include "ui_unusedwavefiles.h"
+#include "globals.h"
+#include "app.h"
+
+UnusedWaveFiles::UnusedWaveFiles(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::UnusedWaveFiles)
+{
+
+ ui->setupUi(this);
+ ui->currentProjRadioButton->setChecked(true);
+ connect(ui->currentProjRadioButton, SIGNAL(clicked()), SLOT(findWaveFiles()));
+ connect(ui->allProjRadioButton, SIGNAL(clicked()), SLOT(findWaveFiles()));
+ findWaveFiles();
+
+}
+
+void UnusedWaveFiles::findWaveFiles()
+{
+ ui->filelistWidget->clear();
+ printf("museProject =%s\n", museProject.toLatin1().data());
+// QFileInfo proj(museProject);
+// QString projPath = proj.absolutePath();
+ QDir dir(museProject);
+ QStringList filter;
+ filter.append("*.wav");
+ filter.append("*.ogg");
+ allWaveFiles= dir.entryList(filter);
+ if (!allWaveFiles.count())
+ return;
+ // get med files
+ QStringList medFiles;
+ if (ui->currentProjRadioButton->isChecked()) {
+ medFiles.append(muse->projectName());
+ } else {
+ printf("get ALLL *.med files!\n");
+ QStringList medFilter("*.med");
+ medFiles = dir.entryList(medFilter);
+ }
+ foreach (QString medFile, medFiles) {
+ QString fname = museProject+"/"+ medFile;
+ //printf("fopen %s\n", fname.toLatin1().data());
+ FILE *fp =fopen(fname.toLatin1().data(),"r");
+ QTextStream fileContent(fp);
+ while (!fileContent.atEnd()) {
+ QString line = fileContent.readLine();
+ if (line.contains(".wav") || line.contains(".ogg")) { // optimization
+ foreach (QString wav, allWaveFiles) {
+ //printf("checking wav [%s]\n", wav.toLatin1().data() );
+ if (line.contains(wav)) {
+ //int beforeSize=allWaveFiles.size();
+ allWaveFiles.removeOne(wav);
+ //printf("removed one from list, %d %d\n", beforeSize, allWaveFiles.size());
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ ui->filelistWidget->addItems(allWaveFiles);
+ update();
+}
+
+UnusedWaveFiles::~UnusedWaveFiles()
+{
+ delete ui;
+}
+
+void UnusedWaveFiles::accept()
+{
+ int ret = QMessageBox::question(this,"Move files", "Are you sure you want to move away the unused files?",
+ QMessageBox::Ok, QMessageBox::Cancel);
+ if (ret == QMessageBox::Ok) {
+ QDir currDir(museProject);
+ currDir.mkdir("unused");
+
+ foreach(QString file, allWaveFiles) {
+ QFile::rename(museProject+ "/"+file, museProject + "/unused/" +file);
+ // move the wca file if it exists
+ QFileInfo wf(museProject + "/" + file);
+ if (QFile::exists(museProject + "/" + wf.baseName()+".wca")) {
+ QFile::rename(museProject + "/" + wf.baseName()+".wca", museProject + "/unused/" +wf.baseName()+".wca");
+
+ }
+ }
+ }
+ QDialog::accept();
+}
diff --git a/muse2/muse/widgets/unusedwavefiles.h b/muse2/muse/widgets/unusedwavefiles.h
new file mode 100644
index 00000000..fd1f524c
--- /dev/null
+++ b/muse2/muse/widgets/unusedwavefiles.h
@@ -0,0 +1,25 @@
+#ifndef UNUSEDWAVEFILES_H
+#define UNUSEDWAVEFILES_H
+
+#include <QDialog>
+
+namespace Ui {
+ class UnusedWaveFiles;
+}
+
+class UnusedWaveFiles : public QDialog
+{
+ Q_OBJECT
+ QStringList allWaveFiles;
+public:
+ explicit UnusedWaveFiles(QWidget *parent = 0);
+ ~UnusedWaveFiles();
+
+public slots:
+ void accept();
+ void findWaveFiles();
+private:
+ Ui::UnusedWaveFiles *ui;
+};
+
+#endif // UNUSEDWAVEFILES_H
diff --git a/muse2/muse/widgets/unusedwavefiles.ui b/muse2/muse/widgets/unusedwavefiles.ui
new file mode 100644
index 00000000..65c8c804
--- /dev/null
+++ b/muse2/muse/widgets/unusedwavefiles.ui
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>UnusedWaveFiles</class>
+ <widget class="QDialog" name="UnusedWaveFiles">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>508</width>
+ <height>241</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>List of unused audio files in current project directory:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" rowspan="2">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QRadioButton" name="currentProjRadioButton">
+ <property name="text">
+ <string>Current project</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="allProjRadioButton">
+ <property name="text">
+ <string>All .med files
+in current
+ directory</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0">
+ <widget class="QListWidget" name="filelistWidget"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>98</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="moveButton">
+ <property name="text">
+ <string>Move files to 'unused' subdir</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancelButton">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>UnusedWaveFiles</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>416</x>
+ <y>331</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>305</x>
+ <y>183</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>moveButton</sender>
+ <signal>clicked()</signal>
+ <receiver>UnusedWaveFiles</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>266</x>
+ <y>321</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>305</x>
+ <y>183</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>