Merge pull request #1131 from Lukas-W/stable-1.1-iss1058
Change Sidebar file browser root to `/Volumes` on OS X
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* file_browser.h - include file for fileBrowser
|
||||
* FileBrowser.h - include file for FileBrowser
|
||||
*
|
||||
* Copyright (c) 2004-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
*
|
||||
@@ -23,8 +23,8 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _FILE_BROWSER_H
|
||||
#define _FILE_BROWSER_H
|
||||
#ifndef FILE_BROWSER_H
|
||||
#define FILE_BROWSER_H
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QMutex>
|
||||
@@ -36,36 +36,36 @@
|
||||
|
||||
class QLineEdit;
|
||||
|
||||
class fileItem;
|
||||
class FileItem;
|
||||
class InstrumentTrack;
|
||||
class fileBrowserTreeWidget;
|
||||
class FileBrowserTreeWidget;
|
||||
class PlayHandle;
|
||||
class TrackContainer;
|
||||
|
||||
|
||||
|
||||
class fileBrowser : public SideBarWidget
|
||||
class FileBrowser : public SideBarWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
fileBrowser( const QString & _directories, const QString & _filter,
|
||||
const QString & _title, const QPixmap & _pm,
|
||||
QWidget * _parent, bool _dirs_as_items = false );
|
||||
virtual ~fileBrowser();
|
||||
FileBrowser( const QString & directories, const QString & filter,
|
||||
const QString & title, const QPixmap & pm,
|
||||
QWidget * parent, bool dirs_as_items = false );
|
||||
virtual ~FileBrowser();
|
||||
|
||||
|
||||
public slots:
|
||||
void filterItems( const QString & _filter );
|
||||
void filterItems( const QString & filter );
|
||||
void reloadTree( void );
|
||||
|
||||
|
||||
private:
|
||||
bool filterItems( QTreeWidgetItem * _item, const QString & _filter );
|
||||
virtual void keyPressEvent( QKeyEvent * _ke );
|
||||
bool filterItems( QTreeWidgetItem * item, const QString & filter );
|
||||
virtual void keyPressEvent( QKeyEvent * ke );
|
||||
|
||||
void addItems( const QString & _path );
|
||||
void addItems( const QString & path );
|
||||
|
||||
fileBrowserTreeWidget * m_l;
|
||||
FileBrowserTreeWidget * m_l;
|
||||
|
||||
QLineEdit * m_filterEdit;
|
||||
|
||||
@@ -79,23 +79,23 @@ private:
|
||||
|
||||
|
||||
|
||||
class fileBrowserTreeWidget : public QTreeWidget
|
||||
class FileBrowserTreeWidget : public QTreeWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
fileBrowserTreeWidget( QWidget * _parent );
|
||||
virtual ~fileBrowserTreeWidget();
|
||||
FileBrowserTreeWidget( QWidget * parent );
|
||||
virtual ~FileBrowserTreeWidget();
|
||||
|
||||
|
||||
protected:
|
||||
virtual void contextMenuEvent( QContextMenuEvent * _e );
|
||||
virtual void mousePressEvent( QMouseEvent * _me );
|
||||
virtual void mouseMoveEvent( QMouseEvent * _me );
|
||||
virtual void mouseReleaseEvent( QMouseEvent * _me );
|
||||
virtual void contextMenuEvent( QContextMenuEvent * e );
|
||||
virtual void mousePressEvent( QMouseEvent * me );
|
||||
virtual void mouseMoveEvent( QMouseEvent * me );
|
||||
virtual void mouseReleaseEvent( QMouseEvent * me );
|
||||
|
||||
|
||||
private:
|
||||
void handleFile( fileItem * _fi, InstrumentTrack * _it );
|
||||
void handleFile( FileItem * fi, InstrumentTrack * it );
|
||||
void openInNewInstrumentTrack( TrackContainer* tc );
|
||||
|
||||
|
||||
@@ -105,53 +105,53 @@ private:
|
||||
PlayHandle* m_previewPlayHandle;
|
||||
QMutex m_pphMutex;
|
||||
|
||||
fileItem * m_contextMenuItem;
|
||||
FileItem * m_contextMenuItem;
|
||||
|
||||
|
||||
private slots:
|
||||
void activateListItem( QTreeWidgetItem * _item, int _column );
|
||||
void activateListItem( QTreeWidgetItem * item, int column );
|
||||
void openInNewInstrumentTrackBBE( void );
|
||||
void openInNewInstrumentTrackSE( void );
|
||||
void sendToActiveInstrumentTrack( void );
|
||||
void updateDirectory( QTreeWidgetItem * _item );
|
||||
void updateDirectory( QTreeWidgetItem * item );
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
|
||||
class directory : public QTreeWidgetItem
|
||||
class Directory : public QTreeWidgetItem
|
||||
{
|
||||
public:
|
||||
directory( const QString & _filename, const QString & _path,
|
||||
const QString & _filter );
|
||||
Directory( const QString & filename, const QString & path,
|
||||
const QString & filter );
|
||||
|
||||
void update( void );
|
||||
|
||||
inline QString fullName( QString _path = QString::null )
|
||||
inline QString fullName( QString path = QString::null )
|
||||
{
|
||||
if( _path == QString::null )
|
||||
if( path == QString::null )
|
||||
{
|
||||
_path = m_directories[0];
|
||||
path = m_directories[0];
|
||||
}
|
||||
if( _path != QString::null )
|
||||
if( path != QString::null )
|
||||
{
|
||||
_path += QDir::separator();
|
||||
path += QDir::separator();
|
||||
}
|
||||
return( QDir::cleanPath( _path + text( 0 ) ) +
|
||||
return( QDir::cleanPath( path + text( 0 ) ) +
|
||||
QDir::separator() );
|
||||
}
|
||||
|
||||
inline void addDirectory( const QString & _dir )
|
||||
inline void addDirectory( const QString & dir )
|
||||
{
|
||||
m_directories.push_back( _dir );
|
||||
m_directories.push_back( dir );
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
void initPixmaps( void );
|
||||
|
||||
bool addItems( const QString & _path );
|
||||
bool addItems( const QString & path );
|
||||
|
||||
|
||||
static QPixmap * s_folderPixmap;
|
||||
@@ -166,7 +166,7 @@ private:
|
||||
|
||||
|
||||
|
||||
class fileItem : public QTreeWidgetItem
|
||||
class FileItem : public QTreeWidgetItem
|
||||
{
|
||||
public:
|
||||
enum FileTypes
|
||||
@@ -193,9 +193,9 @@ public:
|
||||
} ;
|
||||
|
||||
|
||||
fileItem( QTreeWidget * _parent, const QString & _name,
|
||||
const QString & _path );
|
||||
fileItem( const QString & _name, const QString & _path );
|
||||
FileItem( QTreeWidget * parent, const QString & name,
|
||||
const QString & path );
|
||||
FileItem( const QString & name, const QString & path );
|
||||
|
||||
inline QString fullName( void ) const
|
||||
{
|
||||
@@ -214,7 +214,7 @@ public:
|
||||
}
|
||||
|
||||
QString extension( void );
|
||||
static QString extension( const QString & _file );
|
||||
static QString extension( const QString & file );
|
||||
|
||||
|
||||
private:
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* file_browser.cpp - implementation of the project-, preset- and
|
||||
* FileBrowser.cpp - implementation of the project-, preset- and
|
||||
* sample-file-browser
|
||||
*
|
||||
* Copyright (c) 2004-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
||||
@@ -32,7 +32,7 @@
|
||||
#include <QtGui/QMdiArea>
|
||||
#include <QtGui/QMdiSubWindow>
|
||||
|
||||
#include "file_browser.h"
|
||||
#include "FileBrowser.h"
|
||||
#include "bb_track_container.h"
|
||||
#include "config_mgr.h"
|
||||
#include "debug.h"
|
||||
@@ -60,16 +60,16 @@ enum TreeWidgetItemTypes
|
||||
|
||||
|
||||
|
||||
fileBrowser::fileBrowser( const QString & _directories, const QString & _filter,
|
||||
const QString & _title, const QPixmap & _pm,
|
||||
QWidget * _parent, bool _dirs_as_items ) :
|
||||
SideBarWidget( _title, _pm, _parent ),
|
||||
m_directories( _directories ),
|
||||
m_filter( _filter ),
|
||||
m_dirsAsItems( _dirs_as_items )
|
||||
FileBrowser::FileBrowser(const QString & directories, const QString & filter,
|
||||
const QString & title, const QPixmap & pm,
|
||||
QWidget * parent, bool dirs_as_items ) :
|
||||
SideBarWidget( title, pm, parent ),
|
||||
m_directories( directories ),
|
||||
m_filter( filter ),
|
||||
m_dirsAsItems( dirs_as_items )
|
||||
{
|
||||
setWindowTitle( tr( "Browser" ) );
|
||||
m_l = new fileBrowserTreeWidget( contentParent() );
|
||||
m_l = new FileBrowserTreeWidget( contentParent() );
|
||||
addContentWidget( m_l );
|
||||
|
||||
QWidget * ops = new QWidget( contentParent() );
|
||||
@@ -101,16 +101,16 @@ fileBrowser::fileBrowser( const QString & _directories, const QString & _filter,
|
||||
|
||||
|
||||
|
||||
fileBrowser::~fileBrowser()
|
||||
FileBrowser::~FileBrowser()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void fileBrowser::filterItems( const QString & _filter )
|
||||
void FileBrowser::filterItems( const QString & filter )
|
||||
{
|
||||
const bool show_all = _filter.isEmpty();
|
||||
const bool show_all = filter.isEmpty();
|
||||
|
||||
for( int i = 0; i < m_l->topLevelItemCount(); ++i )
|
||||
{
|
||||
@@ -121,7 +121,7 @@ void fileBrowser::filterItems( const QString & _filter )
|
||||
it->setHidden( false );
|
||||
if( it->childCount() )
|
||||
{
|
||||
filterItems( it, _filter );
|
||||
filterItems( it, filter );
|
||||
}
|
||||
}
|
||||
// is directory?
|
||||
@@ -129,7 +129,7 @@ void fileBrowser::filterItems( const QString & _filter )
|
||||
{
|
||||
// matches filter?
|
||||
if( it->text( 0 ).
|
||||
contains( _filter, Qt::CaseInsensitive ) )
|
||||
contains( filter, Qt::CaseInsensitive ) )
|
||||
{
|
||||
// yes, then show everything below
|
||||
it->setHidden( false );
|
||||
@@ -138,7 +138,7 @@ void fileBrowser::filterItems( const QString & _filter )
|
||||
else
|
||||
{
|
||||
// only show if item below matches filter
|
||||
it->setHidden( !filterItems( it, _filter ) );
|
||||
it->setHidden( !filterItems( it, filter ) );
|
||||
}
|
||||
}
|
||||
// a standard item (i.e. no file or directory item?)
|
||||
@@ -151,7 +151,7 @@ void fileBrowser::filterItems( const QString & _filter )
|
||||
{
|
||||
// file matches filter?
|
||||
it->setHidden( !it->text( 0 ).
|
||||
contains( _filter, Qt::CaseInsensitive ) );
|
||||
contains( filter, Qt::CaseInsensitive ) );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -160,14 +160,14 @@ void fileBrowser::filterItems( const QString & _filter )
|
||||
|
||||
|
||||
|
||||
bool fileBrowser::filterItems( QTreeWidgetItem * _item, const QString & _filter )
|
||||
bool FileBrowser::filterItems(QTreeWidgetItem * item, const QString & filter )
|
||||
{
|
||||
const bool show_all = _filter.isEmpty();
|
||||
const bool show_all = filter.isEmpty();
|
||||
bool matched = false;
|
||||
|
||||
for( int i = 0; i < _item->childCount(); ++i )
|
||||
for( int i = 0; i < item->childCount(); ++i )
|
||||
{
|
||||
QTreeWidgetItem * it = _item->child( i );
|
||||
QTreeWidgetItem * it = item->child( i );
|
||||
bool cm = false; // whether current item matched
|
||||
// show all items if filter is empty
|
||||
if( show_all )
|
||||
@@ -175,7 +175,7 @@ bool fileBrowser::filterItems( QTreeWidgetItem * _item, const QString & _filter
|
||||
it->setHidden( false );
|
||||
if( it->childCount() )
|
||||
{
|
||||
filterItems( it, _filter );
|
||||
filterItems( it, filter );
|
||||
}
|
||||
}
|
||||
// is directory?
|
||||
@@ -183,7 +183,7 @@ bool fileBrowser::filterItems( QTreeWidgetItem * _item, const QString & _filter
|
||||
{
|
||||
// matches filter?
|
||||
if( it->text( 0 ).
|
||||
contains( _filter, Qt::CaseInsensitive ) )
|
||||
contains( filter, Qt::CaseInsensitive ) )
|
||||
{
|
||||
// yes, then show everything below
|
||||
it->setHidden( false );
|
||||
@@ -193,7 +193,7 @@ bool fileBrowser::filterItems( QTreeWidgetItem * _item, const QString & _filter
|
||||
else
|
||||
{
|
||||
// only show if item below matches filter
|
||||
cm = filterItems( it, _filter );
|
||||
cm = filterItems( it, filter );
|
||||
it->setHidden( !cm );
|
||||
}
|
||||
}
|
||||
@@ -207,7 +207,7 @@ bool fileBrowser::filterItems( QTreeWidgetItem * _item, const QString & _filter
|
||||
{
|
||||
// file matches filter?
|
||||
cm = it->text( 0 ).
|
||||
contains( _filter, Qt::CaseInsensitive );
|
||||
contains( filter, Qt::CaseInsensitive );
|
||||
it->setHidden( !cm );
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ bool fileBrowser::filterItems( QTreeWidgetItem * _item, const QString & _filter
|
||||
|
||||
|
||||
|
||||
void fileBrowser::reloadTree( void )
|
||||
void FileBrowser::reloadTree( void )
|
||||
{
|
||||
const QString text = m_filterEdit->text();
|
||||
m_filterEdit->clear();
|
||||
@@ -240,16 +240,16 @@ void fileBrowser::reloadTree( void )
|
||||
|
||||
|
||||
|
||||
void fileBrowser::addItems( const QString & _path )
|
||||
void FileBrowser::addItems(const QString & path )
|
||||
{
|
||||
if( m_dirsAsItems )
|
||||
{
|
||||
m_l->addTopLevelItem( new directory( _path,
|
||||
m_l->addTopLevelItem( new Directory( path,
|
||||
QString::null, m_filter ) );
|
||||
return;
|
||||
}
|
||||
|
||||
QDir cdir( _path );
|
||||
QDir cdir( path );
|
||||
QStringList files = cdir.entryList( QDir::Dirs, QDir::Name );
|
||||
for( QStringList::const_iterator it = files.constBegin();
|
||||
it != files.constEnd(); ++it )
|
||||
@@ -260,27 +260,27 @@ void fileBrowser::addItems( const QString & _path )
|
||||
bool orphan = true;
|
||||
for( int i = 0; i < m_l->topLevelItemCount(); ++i )
|
||||
{
|
||||
directory * d = dynamic_cast<directory *>(
|
||||
Directory * d = dynamic_cast<Directory *>(
|
||||
m_l->topLevelItem( i ) );
|
||||
if( d == NULL || cur_file < d->text( 0 ) )
|
||||
{
|
||||
m_l->insertTopLevelItem( i,
|
||||
new directory( cur_file, _path,
|
||||
new Directory( cur_file, path,
|
||||
m_filter ) );
|
||||
orphan = false;
|
||||
break;
|
||||
}
|
||||
else if( cur_file == d->text( 0 ) )
|
||||
{
|
||||
d->addDirectory( _path );
|
||||
d->addDirectory( path );
|
||||
orphan = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( orphan )
|
||||
{
|
||||
m_l->addTopLevelItem( new directory( cur_file,
|
||||
_path, m_filter ) );
|
||||
m_l->addTopLevelItem( new Directory( cur_file,
|
||||
path, m_filter ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -300,7 +300,7 @@ void fileBrowser::addItems( const QString & _path )
|
||||
{
|
||||
delete existing.front();
|
||||
}
|
||||
(void) new fileItem( m_l, cur_file, _path );
|
||||
(void) new FileItem( m_l, cur_file, path );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -308,15 +308,15 @@ void fileBrowser::addItems( const QString & _path )
|
||||
|
||||
|
||||
|
||||
void fileBrowser::keyPressEvent( QKeyEvent * _ke )
|
||||
void FileBrowser::keyPressEvent(QKeyEvent * ke )
|
||||
{
|
||||
if( _ke->key() == Qt::Key_F5 )
|
||||
if( ke->key() == Qt::Key_F5 )
|
||||
{
|
||||
reloadTree();
|
||||
}
|
||||
else
|
||||
{
|
||||
_ke->ignore();
|
||||
ke->ignore();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,8 +327,8 @@ void fileBrowser::keyPressEvent( QKeyEvent * _ke )
|
||||
|
||||
|
||||
|
||||
fileBrowserTreeWidget::fileBrowserTreeWidget( QWidget * _parent ) :
|
||||
QTreeWidget( _parent ),
|
||||
FileBrowserTreeWidget::FileBrowserTreeWidget(QWidget * parent ) :
|
||||
QTreeWidget( parent ),
|
||||
m_mousePressed( false ),
|
||||
m_pressPos(),
|
||||
m_previewPlayHandle( NULL ),
|
||||
@@ -352,18 +352,18 @@ fileBrowserTreeWidget::fileBrowserTreeWidget( QWidget * _parent ) :
|
||||
|
||||
|
||||
|
||||
fileBrowserTreeWidget::~fileBrowserTreeWidget()
|
||||
FileBrowserTreeWidget::~FileBrowserTreeWidget()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::contextMenuEvent( QContextMenuEvent * _e )
|
||||
void FileBrowserTreeWidget::contextMenuEvent(QContextMenuEvent * e )
|
||||
{
|
||||
fileItem * f = dynamic_cast<fileItem *>( itemAt( _e->pos() ) );
|
||||
if( f != NULL && ( f->handling() == fileItem::LoadAsPreset ||
|
||||
f->handling() == fileItem::LoadByPlugin ) )
|
||||
FileItem * f = dynamic_cast<FileItem *>( itemAt( e->pos() ) );
|
||||
if( f != NULL && ( f->handling() == FileItem::LoadAsPreset ||
|
||||
f->handling() == FileItem::LoadByPlugin ) )
|
||||
{
|
||||
m_contextMenuItem = f;
|
||||
QMenu contextMenu( this );
|
||||
@@ -378,7 +378,7 @@ void fileBrowserTreeWidget::contextMenuEvent( QContextMenuEvent * _e )
|
||||
"B+B Editor" ),
|
||||
this,
|
||||
SLOT( openInNewInstrumentTrackBBE() ) );
|
||||
contextMenu.exec( _e->globalPos() );
|
||||
contextMenu.exec( e->globalPos() );
|
||||
m_contextMenuItem = NULL;
|
||||
}
|
||||
}
|
||||
@@ -386,15 +386,15 @@ void fileBrowserTreeWidget::contextMenuEvent( QContextMenuEvent * _e )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::mousePressEvent( QMouseEvent * _me )
|
||||
void FileBrowserTreeWidget::mousePressEvent(QMouseEvent * me )
|
||||
{
|
||||
QTreeWidget::mousePressEvent( _me );
|
||||
if( _me->button() != Qt::LeftButton )
|
||||
QTreeWidget::mousePressEvent( me );
|
||||
if( me->button() != Qt::LeftButton )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
QTreeWidgetItem * i = itemAt( _me->pos() );
|
||||
QTreeWidgetItem * i = itemAt( me->pos() );
|
||||
if ( i )
|
||||
{
|
||||
// TODO: Restrict to visible selection
|
||||
@@ -404,12 +404,12 @@ void fileBrowserTreeWidget::mousePressEvent( QMouseEvent * _me )
|
||||
// _me->x() < header()->cellPos(
|
||||
// header()->mapToActual( 0 ) ) )
|
||||
// {
|
||||
m_pressPos = _me->pos();
|
||||
m_pressPos = me->pos();
|
||||
m_mousePressed = true;
|
||||
// }
|
||||
}
|
||||
|
||||
fileItem * f = dynamic_cast<fileItem *>( i );
|
||||
FileItem * f = dynamic_cast<FileItem *>( i );
|
||||
if( f != NULL )
|
||||
{
|
||||
m_pphMutex.lock();
|
||||
@@ -422,7 +422,7 @@ void fileBrowserTreeWidget::mousePressEvent( QMouseEvent * _me )
|
||||
|
||||
// in special case of sample-files we do not care about
|
||||
// handling() rather than directly creating a SamplePlayHandle
|
||||
if( f->type() == fileItem::SampleFile )
|
||||
if( f->type() == FileItem::SampleFile )
|
||||
{
|
||||
textFloat * tf = textFloat::displayMessage(
|
||||
tr( "Loading sample" ),
|
||||
@@ -438,11 +438,11 @@ void fileBrowserTreeWidget::mousePressEvent( QMouseEvent * _me )
|
||||
m_previewPlayHandle = s;
|
||||
delete tf;
|
||||
}
|
||||
else if( f->type() != fileItem::VstPluginFile &&
|
||||
( f->handling() == fileItem::LoadAsPreset ||
|
||||
f->handling() == fileItem::LoadByPlugin ) )
|
||||
else if( f->type() != FileItem::VstPluginFile &&
|
||||
( f->handling() == FileItem::LoadAsPreset ||
|
||||
f->handling() == FileItem::LoadByPlugin ) )
|
||||
{
|
||||
m_previewPlayHandle = new PresetPreviewPlayHandle( f->fullName(), f->handling() == fileItem::LoadByPlugin );
|
||||
m_previewPlayHandle = new PresetPreviewPlayHandle( f->fullName(), f->handling() == FileItem::LoadByPlugin );
|
||||
}
|
||||
if( m_previewPlayHandle != NULL )
|
||||
{
|
||||
@@ -459,40 +459,40 @@ void fileBrowserTreeWidget::mousePressEvent( QMouseEvent * _me )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::mouseMoveEvent( QMouseEvent * _me )
|
||||
void FileBrowserTreeWidget::mouseMoveEvent( QMouseEvent * me )
|
||||
{
|
||||
if( m_mousePressed == true &&
|
||||
( m_pressPos - _me->pos() ).manhattanLength() >
|
||||
( m_pressPos - me->pos() ).manhattanLength() >
|
||||
QApplication::startDragDistance() )
|
||||
{
|
||||
// make sure any playback is stopped
|
||||
mouseReleaseEvent( NULL );
|
||||
|
||||
fileItem * f = dynamic_cast<fileItem *>( itemAt( m_pressPos ) );
|
||||
FileItem * f = dynamic_cast<FileItem *>( itemAt( m_pressPos ) );
|
||||
if( f != NULL )
|
||||
{
|
||||
switch( f->type() )
|
||||
{
|
||||
case fileItem::PresetFile:
|
||||
new stringPairDrag( f->handling() == fileItem::LoadAsPreset ?
|
||||
case FileItem::PresetFile:
|
||||
new stringPairDrag( f->handling() == FileItem::LoadAsPreset ?
|
||||
"presetfile" : "pluginpresetfile",
|
||||
f->fullName(),
|
||||
embed::getIconPixmap( "preset_file" ), this );
|
||||
break;
|
||||
|
||||
case fileItem::SampleFile:
|
||||
case FileItem::SampleFile:
|
||||
new stringPairDrag( "samplefile", f->fullName(),
|
||||
embed::getIconPixmap( "sample_file" ), this );
|
||||
break;
|
||||
case fileItem::SoundFontFile:
|
||||
case FileItem::SoundFontFile:
|
||||
new stringPairDrag( "soundfontfile", f->fullName(),
|
||||
embed::getIconPixmap( "soundfont_file" ), this );
|
||||
break;
|
||||
case fileItem::VstPluginFile:
|
||||
case FileItem::VstPluginFile:
|
||||
new stringPairDrag( "vstpluginfile", f->fullName(),
|
||||
embed::getIconPixmap( "vst_plugin_file" ), this );
|
||||
break;
|
||||
case fileItem::MidiFile:
|
||||
case FileItem::MidiFile:
|
||||
// don't allow dragging FLP-files as FLP import filter clears project
|
||||
// without asking
|
||||
// case fileItem::FlpFile:
|
||||
@@ -510,7 +510,7 @@ void fileBrowserTreeWidget::mouseMoveEvent( QMouseEvent * _me )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::mouseReleaseEvent( QMouseEvent * _me )
|
||||
void FileBrowserTreeWidget::mouseReleaseEvent(QMouseEvent * me )
|
||||
{
|
||||
m_mousePressed = false;
|
||||
|
||||
@@ -543,43 +543,43 @@ void fileBrowserTreeWidget::mouseReleaseEvent( QMouseEvent * _me )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::handleFile( fileItem * f, InstrumentTrack * _it )
|
||||
void FileBrowserTreeWidget::handleFile(FileItem * f, InstrumentTrack * it )
|
||||
{
|
||||
engine::mixer()->lock();
|
||||
switch( f->handling() )
|
||||
{
|
||||
case fileItem::LoadAsProject:
|
||||
case FileItem::LoadAsProject:
|
||||
if( engine::mainWindow()->mayChangeProject() )
|
||||
{
|
||||
engine::getSong()->loadProject( f->fullName() );
|
||||
}
|
||||
break;
|
||||
|
||||
case fileItem::LoadByPlugin:
|
||||
case FileItem::LoadByPlugin:
|
||||
{
|
||||
const QString e = f->extension();
|
||||
Instrument * i = _it->instrument();
|
||||
Instrument * i = it->instrument();
|
||||
if( i == NULL ||
|
||||
!i->descriptor()->supportsFileType( e ) )
|
||||
{
|
||||
i = _it->loadInstrument(
|
||||
i = it->loadInstrument(
|
||||
engine::pluginFileHandling()[e] );
|
||||
}
|
||||
i->loadFile( f->fullName() );
|
||||
break;
|
||||
}
|
||||
|
||||
case fileItem::LoadAsPreset:
|
||||
case FileItem::LoadAsPreset:
|
||||
{
|
||||
DataFile dataFile( f->fullName() );
|
||||
InstrumentTrack::removeMidiPortNode( dataFile );
|
||||
_it->setSimpleSerializing();
|
||||
_it->loadSettings( dataFile.content().toElement() );
|
||||
it->setSimpleSerializing();
|
||||
it->loadSettings( dataFile.content().toElement() );
|
||||
break;
|
||||
}
|
||||
|
||||
case fileItem::ImportAsProject:
|
||||
if( f->type() == fileItem::FlpFile &&
|
||||
case FileItem::ImportAsProject:
|
||||
if( f->type() == FileItem::FlpFile &&
|
||||
!engine::mainWindow()->mayChangeProject() )
|
||||
{
|
||||
break;
|
||||
@@ -588,7 +588,7 @@ void fileBrowserTreeWidget::handleFile( fileItem * f, InstrumentTrack * _it )
|
||||
engine::getSong() );
|
||||
break;
|
||||
|
||||
case fileItem::NotSupported:
|
||||
case FileItem::NotSupported:
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -599,21 +599,21 @@ void fileBrowserTreeWidget::handleFile( fileItem * f, InstrumentTrack * _it )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::activateListItem( QTreeWidgetItem * _item,
|
||||
int _column )
|
||||
void FileBrowserTreeWidget::activateListItem(QTreeWidgetItem * item,
|
||||
int column )
|
||||
{
|
||||
fileItem * f = dynamic_cast<fileItem *>( _item );
|
||||
FileItem * f = dynamic_cast<FileItem *>( item );
|
||||
if( f == NULL )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( f->handling() == fileItem::LoadAsProject ||
|
||||
f->handling() == fileItem::ImportAsProject )
|
||||
if( f->handling() == FileItem::LoadAsProject ||
|
||||
f->handling() == FileItem::ImportAsProject )
|
||||
{
|
||||
handleFile( f, NULL );
|
||||
}
|
||||
else if( f->handling() != fileItem::NotSupported )
|
||||
else if( f->handling() != FileItem::NotSupported )
|
||||
{
|
||||
engine::mixer()->lock();
|
||||
InstrumentTrack * it = dynamic_cast<InstrumentTrack *>(
|
||||
@@ -627,10 +627,10 @@ void fileBrowserTreeWidget::activateListItem( QTreeWidgetItem * _item,
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::openInNewInstrumentTrack( TrackContainer* tc )
|
||||
void FileBrowserTreeWidget::openInNewInstrumentTrack( TrackContainer* tc )
|
||||
{
|
||||
if( m_contextMenuItem->handling() == fileItem::LoadAsPreset ||
|
||||
m_contextMenuItem->handling() == fileItem::LoadByPlugin )
|
||||
if( m_contextMenuItem->handling() == FileItem::LoadAsPreset ||
|
||||
m_contextMenuItem->handling() == FileItem::LoadByPlugin )
|
||||
{
|
||||
engine::mixer()->lock();
|
||||
InstrumentTrack * it = dynamic_cast<InstrumentTrack *>(
|
||||
@@ -643,7 +643,7 @@ void fileBrowserTreeWidget::openInNewInstrumentTrack( TrackContainer* tc )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::openInNewInstrumentTrackBBE( void )
|
||||
void FileBrowserTreeWidget::openInNewInstrumentTrackBBE( void )
|
||||
{
|
||||
openInNewInstrumentTrack( engine::getBBTrackContainer() );
|
||||
}
|
||||
@@ -651,7 +651,7 @@ void fileBrowserTreeWidget::openInNewInstrumentTrackBBE( void )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::openInNewInstrumentTrackSE( void )
|
||||
void FileBrowserTreeWidget::openInNewInstrumentTrackSE( void )
|
||||
{
|
||||
openInNewInstrumentTrack( engine::getSong() );
|
||||
}
|
||||
@@ -659,7 +659,7 @@ void fileBrowserTreeWidget::openInNewInstrumentTrackSE( void )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::sendToActiveInstrumentTrack( void )
|
||||
void FileBrowserTreeWidget::sendToActiveInstrumentTrack( void )
|
||||
{
|
||||
// get all windows opened in the workspace
|
||||
QList<QMdiSubWindow*> pl =
|
||||
@@ -685,9 +685,9 @@ void fileBrowserTreeWidget::sendToActiveInstrumentTrack( void )
|
||||
|
||||
|
||||
|
||||
void fileBrowserTreeWidget::updateDirectory( QTreeWidgetItem * _item )
|
||||
void FileBrowserTreeWidget::updateDirectory(QTreeWidgetItem * item )
|
||||
{
|
||||
directory * dir = dynamic_cast<directory *>( _item );
|
||||
Directory * dir = dynamic_cast<Directory *>( item );
|
||||
if( dir != NULL )
|
||||
{
|
||||
dir->update();
|
||||
@@ -699,16 +699,16 @@ void fileBrowserTreeWidget::updateDirectory( QTreeWidgetItem * _item )
|
||||
|
||||
|
||||
|
||||
QPixmap * directory::s_folderPixmap = NULL;
|
||||
QPixmap * directory::s_folderOpenedPixmap = NULL;
|
||||
QPixmap * directory::s_folderLockedPixmap = NULL;
|
||||
QPixmap * Directory::s_folderPixmap = NULL;
|
||||
QPixmap * Directory::s_folderOpenedPixmap = NULL;
|
||||
QPixmap * Directory::s_folderLockedPixmap = NULL;
|
||||
|
||||
|
||||
directory::directory( const QString & _name, const QString & _path,
|
||||
const QString & _filter ) :
|
||||
QTreeWidgetItem( QStringList( _name ), TypeDirectoryItem ),
|
||||
m_directories( _path ),
|
||||
m_filter( _filter )
|
||||
Directory::Directory(const QString & filename, const QString & path,
|
||||
const QString & filter ) :
|
||||
QTreeWidgetItem( QStringList( filename ), TypeDirectoryItem ),
|
||||
m_directories( path ),
|
||||
m_filter( filter )
|
||||
{
|
||||
initPixmaps();
|
||||
|
||||
@@ -727,7 +727,7 @@ directory::directory( const QString & _name, const QString & _path,
|
||||
|
||||
|
||||
|
||||
void directory::initPixmaps( void )
|
||||
void Directory::initPixmaps( void )
|
||||
{
|
||||
if( s_folderPixmap == NULL )
|
||||
{
|
||||
@@ -751,7 +751,7 @@ void directory::initPixmaps( void )
|
||||
|
||||
|
||||
|
||||
void directory::update( void )
|
||||
void Directory::update( void )
|
||||
{
|
||||
if( !isExpanded() )
|
||||
{
|
||||
@@ -772,7 +772,7 @@ void directory::update( void )
|
||||
{
|
||||
QTreeWidgetItem * sep = new QTreeWidgetItem;
|
||||
sep->setText( 0,
|
||||
fileBrowserTreeWidget::tr(
|
||||
FileBrowserTreeWidget::tr(
|
||||
"--- Factory files ---" ) );
|
||||
sep->setIcon( 0, embed::getIconPixmap(
|
||||
"factory_files" ) );
|
||||
@@ -785,9 +785,9 @@ void directory::update( void )
|
||||
|
||||
|
||||
|
||||
bool directory::addItems( const QString & _path )
|
||||
bool Directory::addItems(const QString & path )
|
||||
{
|
||||
QDir thisDir( _path );
|
||||
QDir thisDir( path );
|
||||
if( !thisDir.isReadable() )
|
||||
{
|
||||
return false;
|
||||
@@ -807,25 +807,25 @@ bool directory::addItems( const QString & _path )
|
||||
bool orphan = true;
|
||||
for( int i = 0; i < childCount(); ++i )
|
||||
{
|
||||
directory * d = dynamic_cast<directory *>(
|
||||
Directory * d = dynamic_cast<Directory *>(
|
||||
child( i ) );
|
||||
if( d == NULL || cur_file < d->text( 0 ) )
|
||||
{
|
||||
insertChild( i, new directory( cur_file,
|
||||
_path, m_filter ) );
|
||||
insertChild( i, new Directory( cur_file,
|
||||
path, m_filter ) );
|
||||
orphan = false;
|
||||
break;
|
||||
}
|
||||
else if( cur_file == d->text( 0 ) )
|
||||
{
|
||||
d->addDirectory( _path );
|
||||
d->addDirectory( path );
|
||||
orphan = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( orphan )
|
||||
{
|
||||
addChild( new directory( cur_file, _path,
|
||||
addChild( new Directory( cur_file, path,
|
||||
m_filter ) );
|
||||
}
|
||||
|
||||
@@ -842,7 +842,7 @@ bool directory::addItems( const QString & _path )
|
||||
if( cur_file[0] != '.' &&
|
||||
thisDir.match( m_filter, cur_file.toLower() ) )
|
||||
{
|
||||
items << new fileItem( cur_file, _path );
|
||||
items << new FileItem( cur_file, path );
|
||||
added_something = true;
|
||||
}
|
||||
}
|
||||
@@ -856,20 +856,20 @@ bool directory::addItems( const QString & _path )
|
||||
|
||||
|
||||
|
||||
QPixmap * fileItem::s_projectFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_presetFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_sampleFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_soundfontFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_vstPluginFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_midiFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_flpFilePixmap = NULL;
|
||||
QPixmap * fileItem::s_unknownFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_projectFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_presetFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_sampleFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_soundfontFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_vstPluginFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_midiFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_flpFilePixmap = NULL;
|
||||
QPixmap * FileItem::s_unknownFilePixmap = NULL;
|
||||
|
||||
|
||||
fileItem::fileItem( QTreeWidget * _parent, const QString & _name,
|
||||
const QString & _path ) :
|
||||
QTreeWidgetItem( _parent, QStringList( _name) , TypeFileItem ),
|
||||
m_path( _path )
|
||||
FileItem::FileItem(QTreeWidget * parent, const QString & name,
|
||||
const QString & path ) :
|
||||
QTreeWidgetItem( parent, QStringList( name) , TypeFileItem ),
|
||||
m_path( path )
|
||||
{
|
||||
determineFileType();
|
||||
initPixmaps();
|
||||
@@ -878,9 +878,9 @@ fileItem::fileItem( QTreeWidget * _parent, const QString & _name,
|
||||
|
||||
|
||||
|
||||
fileItem::fileItem( const QString & _name, const QString & _path ) :
|
||||
QTreeWidgetItem( QStringList( _name ), TypeFileItem ),
|
||||
m_path( _path )
|
||||
FileItem::FileItem(const QString & name, const QString & path ) :
|
||||
QTreeWidgetItem( QStringList( name ), TypeFileItem ),
|
||||
m_path( path )
|
||||
{
|
||||
determineFileType();
|
||||
initPixmaps();
|
||||
@@ -889,7 +889,7 @@ fileItem::fileItem( const QString & _name, const QString & _path ) :
|
||||
|
||||
|
||||
|
||||
void fileItem::initPixmaps( void )
|
||||
void FileItem::initPixmaps( void )
|
||||
{
|
||||
if( s_projectFilePixmap == NULL )
|
||||
{
|
||||
@@ -973,7 +973,7 @@ void fileItem::initPixmaps( void )
|
||||
|
||||
|
||||
|
||||
void fileItem::determineFileType( void )
|
||||
void FileItem::determineFileType( void )
|
||||
{
|
||||
m_handling = NotSupported;
|
||||
|
||||
@@ -1037,7 +1037,7 @@ void fileItem::determineFileType( void )
|
||||
|
||||
|
||||
|
||||
QString fileItem::extension( void )
|
||||
QString FileItem::extension( void )
|
||||
{
|
||||
return extension( fullName() );
|
||||
}
|
||||
@@ -1045,13 +1045,13 @@ QString fileItem::extension( void )
|
||||
|
||||
|
||||
|
||||
QString fileItem::extension( const QString & _file )
|
||||
QString FileItem::extension(const QString & file )
|
||||
{
|
||||
return QFileInfo( _file ).suffix().toLower();
|
||||
return QFileInfo( file ).suffix().toLower();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#include "moc_file_browser.cxx"
|
||||
#include "moc_FileBrowser.cxx"
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
#include "PianoView.h"
|
||||
#include "about_dialog.h"
|
||||
#include "ControllerRackView.h"
|
||||
#include "file_browser.h"
|
||||
#include "FileBrowser.h"
|
||||
#include "plugin_browser.h"
|
||||
#include "SideBar.h"
|
||||
#include "config_mgr.h"
|
||||
@@ -95,39 +95,47 @@ MainWindow::MainWindow() :
|
||||
|
||||
QString wdir = configManager::inst()->workingDir();
|
||||
sideBar->appendTab( new pluginBrowser( splitter ) );
|
||||
sideBar->appendTab( new fileBrowser(
|
||||
sideBar->appendTab( new FileBrowser(
|
||||
configManager::inst()->userProjectsDir() + "*" +
|
||||
configManager::inst()->factoryProjectsDir(),
|
||||
"*.mmp *.mmpz *.xml *.mid *.flp",
|
||||
tr( "My projects" ),
|
||||
embed::getIconPixmap( "project_file" ).transformed( QTransform().rotate( 90 ) ),
|
||||
splitter ) );
|
||||
sideBar->appendTab( new fileBrowser(
|
||||
sideBar->appendTab( new FileBrowser(
|
||||
configManager::inst()->userSamplesDir() + "*" +
|
||||
configManager::inst()->factorySamplesDir(),
|
||||
"*", tr( "My samples" ),
|
||||
embed::getIconPixmap( "sample_file" ).transformed( QTransform().rotate( 90 ) ),
|
||||
splitter ) );
|
||||
sideBar->appendTab( new fileBrowser(
|
||||
sideBar->appendTab( new FileBrowser(
|
||||
configManager::inst()->userPresetsDir() + "*" +
|
||||
configManager::inst()->factoryPresetsDir(),
|
||||
"*.xpf *.cs.xml *.xiz",
|
||||
tr( "My presets" ),
|
||||
embed::getIconPixmap( "preset_file" ).transformed( QTransform().rotate( 90 ) ),
|
||||
splitter ) );
|
||||
sideBar->appendTab( new fileBrowser( QDir::homePath(), "*",
|
||||
sideBar->appendTab( new FileBrowser( QDir::homePath(), "*",
|
||||
tr( "My home" ),
|
||||
embed::getIconPixmap( "home" ).transformed( QTransform().rotate( 90 ) ),
|
||||
splitter ) );
|
||||
QFileInfoList drives = QDir::drives();
|
||||
|
||||
QStringList root_paths;
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
root_paths += "/Volumes";
|
||||
#else
|
||||
QFileInfoList drives = QDir::drives();
|
||||
foreach( const QFileInfo & drive, drives )
|
||||
{
|
||||
root_paths += drive.absolutePath();
|
||||
}
|
||||
sideBar->appendTab( new fileBrowser( root_paths.join( "*" ), "*",
|
||||
#endif
|
||||
sideBar->appendTab( new FileBrowser( root_paths.join( "*" ), "*",
|
||||
#ifdef LMMS_BUILD_WIN32
|
||||
tr( "My computer" ),
|
||||
#endif
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
tr( "Volumes" ),
|
||||
#else
|
||||
tr( "Root directory" ),
|
||||
#endif
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "bb_track.h"
|
||||
#include "MainWindow.h"
|
||||
#include "debug.h"
|
||||
#include "file_browser.h"
|
||||
#include "FileBrowser.h"
|
||||
#include "ImportFilter.h"
|
||||
#include "Instrument.h"
|
||||
#include "InstrumentTrack.h"
|
||||
@@ -342,7 +342,7 @@ void TrackContainerView::dropEvent( QDropEvent * _de )
|
||||
track::create( track::InstrumentTrack,
|
||||
m_tc ) );
|
||||
Instrument * i = it->loadInstrument(
|
||||
engine::pluginFileHandling()[fileItem::extension(
|
||||
engine::pluginFileHandling()[FileItem::extension(
|
||||
value )]);
|
||||
i->loadFile( value );
|
||||
//it->toggledInstrumentTrackButton( true );
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#include "EffectRackView.h"
|
||||
#include "embed.h"
|
||||
#include "engine.h"
|
||||
#include "file_browser.h"
|
||||
#include "FileBrowser.h"
|
||||
#include "FxMixer.h"
|
||||
#include "FxMixerView.h"
|
||||
#include "InstrumentSoundShaping.h"
|
||||
@@ -1511,7 +1511,7 @@ void InstrumentTrackWindow::dropEvent( QDropEvent* event )
|
||||
}
|
||||
else if( type == "pluginpresetfile" )
|
||||
{
|
||||
const QString ext = fileItem::extension( value );
|
||||
const QString ext = FileItem::extension( value );
|
||||
Instrument * i = m_track->instrument();
|
||||
|
||||
if( !i->descriptor()->supportsFileType( ext ) )
|
||||
|
||||
Reference in New Issue
Block a user