diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-09-08 20:55:30 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-09-08 20:55:30 +0200 |
commit | 783f137e371a8487a3f9256f4e0b36b9be465c9c (patch) | |
tree | 308813f0b092208fdecc700458f0f5f571c17238 /dgedit/filelist.cc | |
parent | fd5d04653e17db9003b0539eeac9b4610f56b084 (diff) |
Moved dgedit to it's own project at http://git.drumgizmo.org/dgedit.git
Diffstat (limited to 'dgedit/filelist.cc')
-rw-r--r-- | dgedit/filelist.cc | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/dgedit/filelist.cc b/dgedit/filelist.cc deleted file mode 100644 index c4e5c4b..0000000 --- a/dgedit/filelist.cc +++ /dev/null @@ -1,186 +0,0 @@ -/* -*- 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> -#include <QMenu> - -#include "itemeditor.h" - -FileList::FileList() -{ - setContextMenuPolicy(Qt::CustomContextMenu); - - connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), - this, SLOT(popupMenu(const QPoint &))); - - connect(this, SIGNAL(itemDoubleClicked(QListWidgetItem *)), - this, SLOT(selectionChanged(QListWidgetItem *))); - - createMenus(); -} - -void FileList::addFiles() -{ - QStringList files = QFileDialog::getOpenFileNames(this, tr("Open file"), - path, tr("Audio Files (*.wav)")); - QStringList::Iterator i = files.begin(); - while(i != files.end()) { - QString file = *i; - QFileInfo fi(file); - QString name = fi.baseName(); - path = fi.absolutePath(); - - QListWidgetItem *item = new QListWidgetItem(); - setItemFile(item, file); - setItemName(item, name); - setItemMaster(item, false); - addItem(item); - - emit fileAdded(file, name); - - i++; - } -} - -void FileList::setMasterFile(QListWidgetItem *i) -{ - QString filename = itemFile(i); - - for(int idx = 0; idx < count(); idx++) { - setItemMaster(item(idx), false); - } - - setItemMaster(i, true); - emit masterFileChanged(filename); -} - -void FileList::selectionChanged(QListWidgetItem *i) -{ - setMasterFile(i); -} - - -void FileList::createMenus() -{ - menu = new QMenu(); - - setMasterAction = new QAction("Set as Master (dbl-click)", this); - connect(setMasterAction, SIGNAL(triggered()), this, SLOT(setMaster())); - - editAction = new QAction("Edit name", this); - connect(editAction, SIGNAL(triggered()), this, SLOT(editName())); - - removeAction = new QAction("Remove", this); - connect(removeAction, SIGNAL(triggered()), this, SLOT(removeFile())); - - removeAllAction = new QAction("Remove all", this); - connect(removeAllAction, SIGNAL(triggered()), this, SLOT(removeAllFiles())); - - menu->addAction(setMasterAction); - menu->addAction(editAction); - menu->addAction(removeAction); - menu->addSeparator(); - menu->addAction(removeAllAction); - -} - -void FileList::popupMenu(const QPoint & pos) -{ - activeItem = itemAt(pos); - if(!activeItem) return; - menu->popup(mapToGlobal(pos)); -} - -void FileList::setMaster() -{ - setMasterFile(activeItem); -} - -void FileList::removeFile() -{ - QString file = itemFile(activeItem); - QString name = itemName(activeItem); - - printf("Removing: %s\n", file.toStdString().c_str()); - delete activeItem;//takeItem(row(activeItem)); - activeItem = NULL; - setCurrentRow(-1); - - emit fileRemoved(file, name); -} - -void FileList::removeAllFiles() -{ - activeItem = NULL; - - clear(); - - emit allFilesRemoved(); -} - -void FileList::editName() -{ - ItemEditor *e = new ItemEditor(activeItem, itemName(activeItem)); - connect(e, SIGNAL(updateItem(QListWidgetItem *, QString)), - this, SLOT(setItemName(QListWidgetItem *, QString))); -} - - -// Item utility functions. -QString FileList::itemFile(QListWidgetItem *i) -{ - return i->data(Qt::ToolTipRole).toString(); -} - -void FileList::setItemFile(QListWidgetItem *i, QString file) -{ - i->setData(Qt::ToolTipRole, file); - i->setData(Qt::DisplayRole, itemName(i) + "\t" + file); -} - -QString FileList::itemName(QListWidgetItem *i) -{ - return i->data(Qt::UserRole).toString(); -} - -void FileList::setItemName(QListWidgetItem *i, QString name) -{ - QString oldname = itemName(i); - - i->setData(Qt::UserRole, name); - i->setData(Qt::DisplayRole, name + "\t" + itemFile(i)); - - if(oldname != "" && oldname != name) emit nameChanged(itemFile(i), name); -} - -void FileList::setItemMaster(QListWidgetItem *i, bool master) -{ - if(master) i->setIcon(QPixmap(":icons/master.png")); - else i->setIcon(QPixmap(":icons/file.png")); -} |