@ -18,24 +18,37 @@
# include "domain/UBGraphicsVideoItem.h"
# include "domain/UBGraphicsWidgetItem.h"
# include "gui/UBFeaturesWidget.h"
const QString UBFeaturesController : : virtualRootName = " root " ;
UBFeature : : UBFeature ( const QString & url , const QPixmap & icon , const QString & name , const QUrl & realPath , UBFeatureElementType type )
: virtualPath ( url ) , mThumbnail ( icon ) , mName ( name ) , mPath ( realPath ) , elementType ( type )
: virtualDir ( url ) , mThumbnail ( icon ) , mName ( name ) , mPath ( realPath ) , elementType ( type )
{
}
UBFeature : : ~ UBFeature ( )
{
for ( int i = 0 ; i < mChildren . count ( ) ; i + + ) {
delete mChildren [ i ] ;
}
for ( int i = 0 ; i < mParents . count ( ) ; i + + ) {
mParents [ i ] - > mChildren . removeAll ( this ) ;
}
}
QString UBFeature : : getUrl ( ) const
{
if ( elementType = = FEATURE_INTERNAL )
return getFullPath ( ) . toString ( ) ;
/*if ( UBApplication::isFromWeb( getFullPath() ) )
return QUrl ( getFullPath ( ) ) ; */
return getFullPath ( ) . toLocalFile ( ) ;
}
bool UBFeature : : operator = = ( const UBFeature & f ) const
{
return virtualPath = = f . getVirtualPath ( ) & & mName = = f . getName ( ) & & mPath = = f . getFullPath ( ) & & elementType = = f . getType ( ) ;
return virtualDir = = f . getVirtualPath ( ) & & mName = = f . getName ( ) & & mPath = = f . getFullPath ( ) & & elementType = = f . getType ( ) ;
}
bool UBFeature : : operator ! = ( const UBFeature & f ) const
@ -51,19 +64,34 @@ bool UBFeature::isFolder() const
bool UBFeature : : isDeletable ( ) const
{
return elementType = = FEATURE_ITEM ;
return elementType = = FEATURE_ITEM
| | elementType = = FEATURE_FOLDER ;
}
UBFeaturesController : : UBFeaturesController ( QWidget * pParentWidget ) :
QObject ( pParentWidget ) ,
mLastItemOffsetIndex ( 0 )
bool UBFeature : : inTrash ( ) const
{
rootPath = " /root " ;
initDirectoryTree ( ) ;
return getFullPath ( ) . toLocalFile ( ) . startsWith ( QUrl : : fromLocalFile ( UBSettings : : userTrashDirPath ( ) ) . toLocalFile ( ) ) ;
}
void UBFeaturesController : : initDirectoryTree ( )
UBFeaturesController : : UBFeaturesController ( QWidget * pParentWidget ) :
QObject ( pParentWidget )
, featuresList ( 0 )
, mLastItemOffsetIndex ( 0 )
{
//Initializing virtual structure of the list
rootPath = " / " + virtualRootName ;
appPath = rootPath + " /Applications " ;
audiosPath = rootPath + " /Audios " ;
moviesPath = rootPath + " /Movies " ;
picturesPath = rootPath + " /Pictures " ;
flashPath = rootPath + " /Animations " ;
interactPath = rootPath + " /Interactivities " ;
shapesPath = rootPath + " /Shapes " ;
trashPath = rootPath + " /Trash " ;
favoritePath = rootPath + " /Favorites " ;
//Initializing physical directories from UBSettings
mUserAudioDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > userAudioDirectory ( ) ) ;
mUserVideoDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > userVideoDirectory ( ) ) ;
mUserPicturesDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > userImageDirectory ( ) ) ;
@ -71,53 +99,69 @@ void UBFeaturesController::initDirectoryTree()
mUserAnimationDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > userAnimationDirectory ( ) ) ;
mLibPicturesDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationImageLibraryDirectory ( ) ) ;
qDebug ( ) < < mLibPicturesDirectoryPath ;
mLibInteractiveDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationInteractivesDirectory ( ) ) ;
mLibApplicationsDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationApplicationsLibraryDirectory ( ) ) ;
mLibShapesDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationShapeLibraryDirectory ( ) ) ;
mLibSearchDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > userSearchDirectory ( ) ) ;
trashDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : userTrashDirPath ( ) ) ;
mLibAudiosDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationAudiosLibraryDirectory ( ) ) ;
mLibVideosDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationVideosLibraryDirectory ( ) ) ;
mLibAnimationsDirectoryPath = QUrl : : fromLocalFile ( UBSettings : : settings ( ) - > applicationAnimationsLibraryDirectory ( ) ) ;
rootElement = UBFeature ( QString ( ) , QPixmap ( " :images/libpalette/home.png " ) , " root " , QUrl ( ) ) ;
audiosElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/AudiosCategory.svg " ) , " Audios " , mUserAudioDirectoryPath , FEATURE_CATEGORY ) ;
moviesElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/MoviesCategory.svg " ) , " Movies " , mUserVideoDirectoryPath , FEATURE_CATEGORY ) ;
picturesElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/PicturesCategory.svg " ) , " Pictures " , mUserPicturesDirectoryPath , FEATURE_CATEGORY ) ;
flashElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/FlashCategory.svg " ) , " Animations " , mUserAnimationDirectoryPath , FEATURE_CATEGORY ) ;
interactElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/InteractivesCategory.svg " ) , " Interactivities " , mLibInteractiveDirectoryPath , FEATURE_CATEGORY ) ;
applicationsElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/ApplicationsCategory.svg " ) , " Applications " , mUserInteractiveDirectoryPath , FEATURE_CATEGORY ) ;
shapesElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/ShapesCategory.svg " ) , " Shapes " , mLibShapesDirectoryPath , FEATURE_CATEGORY ) ;
favoriteElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/FavoritesCategory.svg " ) , " Favorites " , QUrl ( " favorites " ) , FEATURE_FAVORITE ) ;
webSearchElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/WebSearchCategory.svg " ) , " Web search " , mLibSearchDirectoryPath , FEATURE_CATEGORY ) ;
trashElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/TrashCategory.svg " ) , " Trash " , trashDirectoryPath , FEATURE_TRASH ) ;
featuresList = new QList < UBFeature > ( ) ;
QList < UBToolsManager : : UBToolDescriptor > tools = UBToolsManager : : manager ( ) - > allTools ( ) ;
scanFS ( ) ;
featuresList - > append ( UBFeature ( QString ( ) , QPixmap ( " :images/libpalette/home.png " ) , " root " , QUrl ( ) ) ) ;
currentElement = featuresList - > at ( 0 ) ;
featuresModel = new UBFeaturesModel ( featuresList , this ) ;
featuresModel - > setSupportedDragActions ( Qt : : CopyAction | Qt : : MoveAction ) ;
appPath = rootPath + " /Applications " ;
audiosPath = rootPath + " /Audios " ;
moviesPath = rootPath + " /Movies " ;
picturesPath = rootPath + " /Pictures " ;
flashPath = rootPath + " /Animations " ;
interactPath = rootPath + " /Interactivities " ;
shapesPath = rootPath + " /Shapes " ;
trashPath = rootPath + " /Trash " ;
favoritePath = rootPath + " /Favorites " ;
featuresProxyModel = new UBFeaturesProxyModel ( this ) ;
featuresProxyModel - > setFilterFixedString ( rootPath ) ;
featuresProxyModel - > setSourceModel ( featuresModel ) ;
featuresProxyModel - > setFilterCaseSensitivity ( Qt : : CaseInsensitive ) ;
featuresSearchModel = new UBFeaturesSearchProxyModel ( this ) ;
featuresSearchModel - > setSourceModel ( featuresModel ) ;
featuresSearchModel - > setFilterCaseSensitivity ( Qt : : CaseInsensitive ) ;
featuresPathModel = new UBFeaturesPathProxyModel ( this ) ;
featuresPathModel - > setPath ( rootPath ) ;
featuresPathModel - > setSourceModel ( featuresModel ) ;
connect ( featuresModel , SIGNAL ( dataRestructured ( ) ) , featuresProxyModel , SLOT ( invalidate ( ) ) ) ;
}
void UBFeaturesController : : scanFS ( )
{
featuresList - > clear ( ) ;
featuresList - > append ( rootElement ) ;
* featuresList < < audiosElement
< < moviesElement
< < picturesElement
< < flashElement
< < interactElement
< < applicationsElement
< < shapesElement
< < favoriteElement
< < webSearchElement
< < trashElement ;
audiosElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/AudiosCategory.svg " ) , " Audios " , mUserAudioDirectoryPath ) ;
featuresList - > append ( audiosElement ) ;
moviesElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/MoviesCategory.svg " ) , " Movies " , mUserVideoDirectoryPath ) ;
featuresList - > append ( moviesElement ) ;
picturesElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/PicturesCategory.svg " ) , " Pictures " , mUserPicturesDirectoryPath ) ;
featuresList - > append ( picturesElement ) ;
featuresList - > append ( UBFeature ( rootPath , QPixmap ( " :images/libpalette/ApplicationsCategory.svg " ) , " Applications " , mUserInteractiveDirectoryPath ) ) ;
flashElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/FlashCategory.svg " ) , " Animations " , mUserAnimationDirectoryPath ) ;
featuresList - > append ( flashElement ) ;
interactElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/InteractivesCategory.svg " ) , " Interactivities " , mLibInteractiveDirectoryPath ) ;
featuresList - > append ( interactElement ) ;
featuresList - > append ( UBFeature ( rootPath , QPixmap ( " :images/libpalette/ShapesCategory.svg " ) , " Shapes " , mLibShapesDirectoryPath ) ) ;
trashElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/TrashCategory.svg " ) , " Trash " , trashDirectoryPath , FEATURE_TRASH ) ;
featuresList - > append ( trashElement ) ;
favoriteElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/FavoritesCategory.svg " ) , " Favorites " , QUrl ( " favorites " ) , FEATURE_FAVORITE ) ;
featuresList - > append ( favoriteElement ) ;
webSearchElement = UBFeature ( rootPath , QPixmap ( " :images/libpalette/WebSearchCategory.svg " ) , " Web search " , mLibSearchDirectoryPath ) ;
featuresList - > append ( webSearchElement ) ;
loadFavoriteList ( ) ;
QList < UBToolsManager : : UBToolDescriptor > tools = UBToolsManager : : manager ( ) - > allTools ( ) ;
foreach ( UBToolsManager : : UBToolDescriptor tool , tools )
{
featuresList - > append ( UBFeature ( appPath , tool . icon , tool . label , QUrl ( tool . id ) , FEATURE_INTERNAL ) ) ;
@ -126,6 +170,7 @@ void UBFeaturesController::initDirectoryTree()
featuresList - > append ( UBFeature ( favoritePath , tool . icon , tool . label , QUrl ( tool . id ) , FEATURE_INTERNAL ) ) ;
}
}
//Claudio:
// don't change the order of the scans
fileSystemScan ( mLibAudiosDirectoryPath , audiosPath ) ;
@ -145,7 +190,6 @@ void UBFeaturesController::initDirectoryTree()
fileSystemScan ( trashDirectoryPath , trashPath ) ;
fileSystemScan ( mLibSearchDirectoryPath , rootPath + " / " + " Web search " ) ;
}
void UBFeaturesController : : fileSystemScan ( const QUrl & currentPath , const QString & currVirtualPath )
@ -191,7 +235,14 @@ void UBFeaturesController::fileSystemScan(const QUrl & currentPath, const QStrin
icon = QPixmap ( thumbnailPath ) ;
else icon = createThumbnail ( fullFileName ) ; */
}
featuresList - > append ( UBFeature ( currVirtualPath , icon , fileName , QUrl : : fromLocalFile ( fullFileName ) , fileType ) ) ;
UBFeature testFeature ( currVirtualPath , icon , fileName , QUrl : : fromLocalFile ( fullFileName ) , fileType ) ;
if ( featuresList - > contains ( testFeature ) ) {
qDebug ( ) < < " the same feature found " ;
}
featuresList - > append ( testFeature ) ;
if ( favoriteSet - > find ( QUrl : : fromLocalFile ( fullFileName ) ) ! = favoriteSet - > end ( ) )
{
featuresList - > append ( UBFeature ( favoritePath , icon , fileName , QUrl : : fromLocalFile ( fullFileName ) , fileType ) ) ;
@ -219,11 +270,6 @@ void UBFeaturesController::loadFavoriteList()
{
QUrl path ;
in > > path ;
/*QFileInfo fileInfo( path );
QString fileName = fileInfo . fileName ( ) ;
UBFeature elem ( favoritePath , thumbnailForFile ( path ) , fileName , path , fileTypeFromUrl ( path ) ) ;
featuresList - > append ( elem ) ; */
favoriteSet - > insert ( path ) ;
}
}
@ -243,7 +289,7 @@ void UBFeaturesController::saveFavoriteList()
file . close ( ) ;
}
UBFeature UBFeaturesController : : addToFavorite ( const QUrl & path )
void UBFeaturesController : : addToFavorite ( const QUrl & path )
{
QString filePath = fileNameFromUrl ( path ) ;
if ( favoriteSet - > find ( path ) = = favoriteSet - > end ( ) )
@ -253,19 +299,24 @@ UBFeature UBFeaturesController::addToFavorite( const QUrl &path )
UBFeature elem ( favoritePath , thumbnailForFile ( filePath ) , fileName , path , fileTypeFromUrl ( filePath ) ) ;
favoriteSet - > insert ( path ) ;
saveFavoriteList ( ) ;
return elem ;
if ( ! elem . getVirtualPath ( ) . isEmpty ( ) & & ! elem . getVirtualPath ( ) . isNull ( ) )
featuresModel - > addItem ( elem ) ;
}
return UBFeature ( ) ;
}
void UBFeaturesController : : removeFromFavorite ( const QUrl & path )
void UBFeaturesController : : removeFromFavorite ( const QUrl & path , bool deleteManualy )
{
QString filePath = fileNameFromUrl ( path ) ;
// QString filePath = fileNameFromUrl( path );
if ( favoriteSet - > find ( path ) ! = favoriteSet - > end ( ) )
{
favoriteSet - > erase ( favoriteSet - > find ( path ) ) ;
saveFavoriteList ( ) ;
}
if ( deleteManualy ) {
featuresModel - > deleteFavoriteItem ( path . toString ( ) ) ;
}
}
QString UBFeaturesController : : fileNameFromUrl ( const QUrl & url )
@ -376,15 +427,18 @@ UBFeature UBFeaturesController::importImage( const QImage &image, const UBFeatur
}
UBFeature UBFeaturesController : : newFolder ( const QString & name )
void UBFeaturesController : : addNewFolder ( const QString & name )
{
QString path = currentElement . getFullPath ( ) . toLocalFile ( ) + " / " + name ;
if ( ! QFileInfo ( path ) . exists ( ) )
{
if ( ! QFileInfo ( path ) . exists ( ) ) {
QDir ( ) . mkpath ( path ) ;
}
return UBFeature ( currentElement . getFullVirtualPath ( ) , QPixmap ( " :images/libpalette/folder.svg " ) ,
UBFeature newFeatureFolder = UBFeature ( currentElement . getFullVirtualPath ( ) , QPixmap ( " :images/libpalette/folder.svg " ) ,
name , QUrl : : fromLocalFile ( path ) , FEATURE_FOLDER ) ;
featuresModel - > addItem ( newFeatureFolder ) ;
featuresProxyModel - > invalidate ( ) ;
}
void UBFeaturesController : : addItemToPage ( const UBFeature & item )
@ -397,8 +451,7 @@ void UBFeaturesController::addItemAsBackground(const UBFeature &item)
UBApplication : : boardController - > downloadURL ( item . getFullPath ( ) , QPointF ( ) , QSize ( ) , true ) ;
}
UBFeature UBFeaturesController : : getDestinationForItem ( const QUrl & url )
UBFeature UBFeaturesController : : getParentFeatureForUrl ( const QUrl & url )
{
QString mimetype = UBFileSystemUtils : : mimeTypeFromFileName ( url . toString ( ) ) ;
@ -418,11 +471,13 @@ UBFeature UBFeaturesController::getDestinationForItem( const QUrl &url )
return UBFeature ( ) ;
}
UBFeature UBFeaturesController : : addDownloadedFile ( const QUrl & sourceUrl , const QByteArray & pData )
void UBFeaturesController : : addDownloadedFile ( const QUrl & sourceUrl , const QByteArray & pData )
{
UBFeature dest = getDestinationForItem ( sourceUrl ) ;
UBFeature dest = getParentFeatureForUrl ( sourceUrl ) ;
if ( dest = = UBFeature ( ) )
return UBFeature ( ) ;
return ;
QString fileName = QFileInfo ( sourceUrl . toString ( ) ) . fileName ( ) ;
QString filePath = dest . getFullPath ( ) . toLocalFile ( ) + " / " + fileName ;
@ -431,10 +486,14 @@ UBFeature UBFeaturesController::addDownloadedFile( const QUrl &sourceUrl, const
{
file . write ( pData ) ;
file . close ( ) ;
return UBFeature ( dest . getFullVirtualPath ( ) , thumbnailForFile ( filePath ) ,
UBFeature downloadedFeature = UBFeature ( dest . getFullVirtualPath ( ) , thumbnailForFile ( filePath ) ,
fileName , QUrl : : fromLocalFile ( filePath ) , FEATURE_ITEM ) ;
if ( downloadedFeature ! = UBFeature ( ) ) {
featuresModel - > addItem ( downloadedFeature ) ;
}
return UBFeature ( ) ;
}
}
UBFeature UBFeaturesController : : moveItemToFolder ( const QUrl & url , const UBFeature & destination )
@ -446,7 +505,7 @@ UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeatu
Q_ASSERT ( QFileInfo ( sourcePath ) . exists ( ) ) ;
UBFeature possibleDest = getDestinationForItem ( url ) ;
UBFeature possibleDest = getParentFeatureForUrl ( url ) ;
UBFeature dest = destination ;
@ -475,13 +534,57 @@ UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeatu
return newElement ;
}
void UBFeaturesController : : rescanModel ( )
{
featuresModel - > removeRows ( 0 , featuresList - > count ( ) ) ;
//Could implement infolder scanning for better perfomance
scanFS ( ) ;
refreshModels ( ) ;
}
void UBFeaturesController : : siftElements ( const QString & pSiftValue )
{
featuresProxyModel - > setFilterFixedString ( pSiftValue ) ;
featuresProxyModel - > invalidate ( ) ;
featuresPathModel - > setPath ( pSiftValue ) ;
featuresPathModel - > invalidate ( ) ;
}
UBFeature UBFeaturesController : : getFeature ( const QModelIndex & index , QListView * pOnView )
{
return qobject_cast < QSortFilterProxyModel * > ( pOnView - > model ( ) ) - > data ( index , Qt : : UserRole + 1 ) . value < UBFeature > ( ) ;
}
void UBFeaturesController : : searchStarted ( const QString & pattern , QListView * pOnView )
{
if ( pattern . isEmpty ( ) ) {
pOnView - > setModel ( featuresProxyModel ) ;
featuresProxyModel - > invalidate ( ) ;
} else if ( pattern . size ( ) > 2 ) {
featuresSearchModel - > setFilterWildcard ( " * " + pattern + " * " ) ;
pOnView - > setModel ( featuresSearchModel ) ;
featuresSearchModel - > invalidate ( ) ;
}
}
void UBFeaturesController : : refreshModels ( )
{
featuresProxyModel - > invalidate ( ) ;
featuresSearchModel - > invalidate ( ) ;
featuresPathModel - > invalidate ( ) ;
}
UBFeature UBFeaturesController : : copyItemToFolder ( const QUrl & url , const UBFeature & destination )
{
QString sourcePath = url . toLocalFile ( ) ;
Q_ASSERT ( QFileInfo ( sourcePath ) . exists ( ) ) ;
UBFeature possibleDest = getDestinationForItem ( url ) ;
UBFeature possibleDest = getParentFeatureForUrl ( url ) ;
UBFeature dest = destination ;
@ -513,18 +616,82 @@ void UBFeaturesController::deleteItem( const QUrl &url )
Q_ASSERT ( QFileInfo ( path ) . exists ( ) ) ;
QString thumbnailPath = UBFileSystemUtils : : thumbnailPath ( path ) ;
if ( thumbnailPath . length ( ) & & QFileInfo ( thumbnailPath ) . exists ( ) )
{
if ( thumbnailPath . length ( ) & & QFileInfo ( thumbnailPath ) . exists ( ) ) {
if ( QFileInfo ( thumbnailPath ) . isFile ( ) ) {
QFile : : remove ( thumbnailPath ) ;
} else if ( QFileInfo ( thumbnailPath ) . isDir ( ) ) {
if ( ! UBFileSystemUtils : : deleteDir ( thumbnailPath ) ) {
qDebug ( ) < < " Not able to delete directory " ;
}
}
}
if ( QFileInfo ( path ) . isFile ( ) ) {
QFile : : remove ( path ) ;
} else if ( QFileInfo ( path ) . isDir ( ) ) {
UBFileSystemUtils : : deleteDir ( path ) ;
}
}
void UBFeaturesController : : deleteItem ( const UBFeature & pFeature )
{
QUrl sourceUrl = pFeature . getFullPath ( ) ;
featuresModel - > deleteItem ( pFeature ) ;
deleteItem ( sourceUrl ) ;
}
bool UBFeaturesController : : isTrash ( const QUrl & url )
{
return url . toLocalFile ( ) . startsWith ( trashDirectoryPath . toLocalFile ( ) ) ;
}
void UBFeaturesController : : moveToTrash ( UBFeature feature , bool deleteManualy )
{
featuresModel - > moveData ( feature , trashElement , Qt : : MoveAction , deleteManualy ) ;
removeFromFavorite ( feature . getFullPath ( ) ) ;
featuresModel - > deleteFavoriteItem ( UBFeaturesController : : fileNameFromUrl ( feature . getFullPath ( ) ) ) ;
}
UBFeaturesController : : ~ UBFeaturesController ( )
{
if ( featuresList ) {
delete featuresList ;
}
}
void UBFeaturesController : : assignFeaturesListVeiw ( UBFeaturesListView * pList )
{
pList - > setDragDropMode ( QAbstractItemView : : DragDrop ) ;
pList - > setSelectionMode ( QAbstractItemView : : ContiguousSelection ) ;
pList - > setResizeMode ( QListView : : Adjust ) ;
pList - > setViewMode ( QListView : : IconMode ) ;
pList - > setIconSize ( QSize ( UBFeaturesWidget : : defaultThumbnailSize , UBFeaturesWidget : : defaultThumbnailSize ) ) ;
pList - > setGridSize ( QSize ( UBFeaturesWidget : : defaultThumbnailSize + 20 , UBFeaturesWidget : : defaultThumbnailSize + 20 ) ) ;
itemDelegate = new UBFeaturesItemDelegate ( this , pList ) ;
pList - > setItemDelegate ( itemDelegate ) ;
pList - > setModel ( featuresProxyModel ) ;
}
void UBFeaturesController : : assignPathListView ( UBFeaturesListView * pList )
{
pList - > setViewMode ( QListView : : IconMode ) ;
pList - > setIconSize ( QSize ( UBFeaturesWidget : : defaultThumbnailSize - 10 , UBFeaturesWidget : : defaultThumbnailSize - 10 ) ) ;
pList - > setGridSize ( QSize ( UBFeaturesWidget : : defaultThumbnailSize + 10 , UBFeaturesWidget : : defaultThumbnailSize - 10 ) ) ;
pList - > setFixedHeight ( 60 ) ;
pList - > setSelectionMode ( QAbstractItemView : : NoSelection ) ;
pList - > setVerticalScrollBarPolicy ( Qt : : ScrollBarAlwaysOff ) ;
pList - > setHorizontalScrollBarPolicy ( Qt : : ScrollBarAlwaysOn ) ;
pList - > setFlow ( QListView : : LeftToRight ) ;
pList - > setWrapping ( false ) ;
pList - > setDragDropMode ( QAbstractItemView : : DropOnly ) ;
pList - > setModel ( featuresPathModel ) ;
pathItemDelegate = new UBFeaturesPathItemDelegate ( this ) ;
pList - > setItemDelegate ( pathItemDelegate ) ;
}