diff options
| author | deva <deva> | 2009-11-30 14:57:04 +0000 | 
|---|---|---|
| committer | deva <deva> | 2009-11-30 14:57:04 +0000 | 
| commit | bb8e2b6be1c05fc41132724d1f48a285f104418c (patch) | |
| tree | 692753d07e1f774576f78325896e0b6116a45554 /dgedit | |
| parent | 9cd3c49d7b86b443726b724013f08efce13b8022 (diff) | |
Add multiple files.
Diffstat (limited to 'dgedit')
| -rw-r--r-- | dgedit/Makefile.am | 2 | ||||
| -rw-r--r-- | dgedit/filelist.cc | 62 | ||||
| -rw-r--r-- | dgedit/filelist.h | 51 | ||||
| -rw-r--r-- | dgedit/mainwindow.cc | 35 | ||||
| -rw-r--r-- | dgedit/mainwindow.h | 7 | 
5 files changed, 124 insertions, 33 deletions
| diff --git a/dgedit/Makefile.am b/dgedit/Makefile.am index a16a0e9..77f95fe 100644 --- a/dgedit/Makefile.am +++ b/dgedit/Makefile.am @@ -9,12 +9,14 @@ dgedit_SOURCES = $(shell ../tools/MocList cc ) \  	dgedit.cc \  	audioextractor.cc \  	canvas.cc \ +	filelist.cc \  	mainwindow.cc \  	samplesorter.cc  EXTRA_DIST = \  	audioextractor.h \  	canvas.h \ +	filelist.h \  	mainwindow.h \  	samplesorter.h diff --git a/dgedit/filelist.cc b/dgedit/filelist.cc new file mode 100644 index 0000000..52e6757 --- /dev/null +++ b/dgedit/filelist.cc @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + *            filelist.cc + * + *  Mon Nov 30 15:35:52 CET 2009 + *  Copyright 2009 Bent Bisballe Nyeng + *  deva@aasimon.org + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ +#include "filelist.h" + +#include <QFileDialog> +#include <QFileInfo> + +FileList::FileList() +{ +  connect(this, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged())); +} + +void FileList::addFiles() +{ +  QStringList files = QFileDialog::getOpenFileNames(this, tr("Open file"), +                                              "", tr("Audio Files (*.wav)")); +  QStringList::Iterator i = files.begin(); +  while(i != files.end()) { +    QString file = *i; +    QFileInfo fi(file); +    QString name = fi.baseName(); + +    QListWidgetItem *item = new QListWidgetItem(); +    item->setText(file); +    item->setData(Qt::UserRole, name); +    addItem(item); +     +    emit fileAdded(file, name); + +    i++; +  } +} + +void FileList::selectionChanged() +{ +  QString filename = currentItem()->text(); +  emit masterFileChanged(filename); +} diff --git a/dgedit/filelist.h b/dgedit/filelist.h new file mode 100644 index 0000000..b1b47a8 --- /dev/null +++ b/dgedit/filelist.h @@ -0,0 +1,51 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + *            filelist.h + * + *  Mon Nov 30 15:35:52 CET 2009 + *  Copyright 2009 Bent Bisballe Nyeng + *  deva@aasimon.org + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ +#ifndef __DRUMGIZMO_FILELIST_H__ +#define __DRUMGIZMO_FILELIST_H__ + +#include <QListWidget> + +class FileList : public QListWidget { +Q_OBJECT +public: +  FileList(); + +signals: +  void masterFileChanged(QString filename); +  void fileAdded(QString file, QString name); +  void fileRemoved(QString file, QString name); + +public slots: +  void addFiles(); + +private slots: +  void selectionChanged(); +}; + + + +#endif/*__DRUMGIZMO_FILELIST_H__*/ diff --git a/dgedit/mainwindow.cc b/dgedit/mainwindow.cc index b46904a..390c436 100644 --- a/dgedit/mainwindow.cc +++ b/dgedit/mainwindow.cc @@ -32,12 +32,10 @@  #include <QPushButton>  #include <QLineEdit>  #include <QLabel> -#include <QFileDialog>  #include <QStatusBar>  #include <QApplication>  #include <QDockWidget>  #include <QSettings> -#include <QFileInfo>  #define MAXVAL 10000000L  #define SINGLESTEP MAXVAL/100000 @@ -108,8 +106,7 @@ MainWindow::MainWindow()    connect(exportsel, SIGNAL(clicked()), this, SLOT(doExport()));    QPushButton *loadbtn = new QPushButton(); -  loadbtn->setText("Load"); -  connect(loadbtn, SIGNAL(clicked()), this, SLOT(addFile())); +  loadbtn->setText("Add files...");    btns->addWidget(autosel);    btns->addWidget(clearsel); @@ -135,8 +132,10 @@ MainWindow::MainWindow()    configs->addWidget(exportp);    configs->addWidget(new QLabel("Files:")); -  filelist = new QListWidget(); -  connect(filelist, SIGNAL(itemSelectionChanged()), this, SLOT(loadFile())); +  filelist = new FileList(); +  connect(filelist, SIGNAL(masterFileChanged(QString)), this, SLOT(loadFile(QString))); +  connect(loadbtn, SIGNAL(clicked()), filelist, SLOT(addFiles())); +  connect(filelist, SIGNAL(fileAdded(QString, QString)), extractor, SLOT(addFile(QString, QString)));    configs->addWidget(filelist);    QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this); @@ -216,10 +215,8 @@ void MainWindow::doExport()    extractor->exportSelections(sorter->selections());  } -void MainWindow::loadFile() +void MainWindow::loadFile(QString filename)  { -  QString filename = filelist->currentItem()->text(); -    setCursor(Qt::WaitCursor);    statusBar()->showMessage("Loading...");    qApp->processEvents(); @@ -229,23 +226,3 @@ void MainWindow::loadFile()    statusBar()->showMessage("Ready");    setCursor(Qt::ArrowCursor);  } - -void MainWindow::addFile() -{ -  QStringList files = QFileDialog::getOpenFileNames(this, tr("Open file"), -                                              "", tr("Audio Files (*.wav)")); -  QStringList::Iterator i = files.begin(); -  while(i != files.end()) { -    QString file = *i; -    QFileInfo fi(file); -    QString name = fi.baseName(); - -    QListWidgetItem *item = new QListWidgetItem(); -    item->setText(file); -    item->setData(Qt::UserRole, name); -    filelist->addItem(item); -     -    extractor->addFile(file, name); -    i++; -  } -} diff --git a/dgedit/mainwindow.h b/dgedit/mainwindow.h index df40e3a..f6fff27 100644 --- a/dgedit/mainwindow.h +++ b/dgedit/mainwindow.h @@ -29,11 +29,11 @@  #include <QMainWindow>  #include <QScrollBar> -#include <QListWidget>  #include "canvas.h"  #include "audioextractor.h"  #include "samplesorter.h" +#include "filelist.h"  class MainWindow : public QMainWindow {  Q_OBJECT @@ -46,8 +46,7 @@ public slots:    void setXOffset(int);    void setYOffset(int);    void doExport(); -  void loadFile(); -  void addFile(); +  void loadFile(QString filename);  protected:    void closeEvent(QCloseEvent*); @@ -59,11 +58,11 @@ private:    SampleSorter *sorter;    Canvas *canvas;    AudioExtractor *extractor; +  FileList *filelist;    QScrollBar *yoffset;    QScrollBar *yscale;    QScrollBar *xscale;    QScrollBar *xoffset; -  QListWidget *filelist;  };  #endif/*__DRUMGIZMO_MAINWINDOW_H__*/ | 
