From d4072aae0905b599a49a7bbffa1a1dfda2e3db60 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Tue, 31 Jul 2012 11:07:27 +0300 Subject: [PATCH] Search widget in right palette resolved --- src/board/UBFeaturesController.cpp | 51 +++++---- src/board/UBFeaturesController.h | 2 +- src/gui/UBFeaturesWidget.cpp | 167 ++--------------------------- src/gui/UBFeaturesWidget.h | 76 ------------- 4 files changed, 43 insertions(+), 253 deletions(-) diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 0947ede9..4adf7194 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -114,7 +114,7 @@ UBFeaturesController::UBFeaturesController(QWidget *pParentWidget) : 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_SEARCH); + 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 ); @@ -171,18 +171,25 @@ void UBFeaturesController::scanFS() } } - fileSystemScan(mUserInteractiveDirectoryPath, appPath); - fileSystemScan(mUserAudioDirectoryPath, audiosPath); - fileSystemScan(mUserPicturesDirectoryPath, picturesPath); - fileSystemScan(mUserVideoDirectoryPath, moviesPath); - fileSystemScan(mUserAnimationDirectoryPath, flashPath); + //Claudio: + // don't change the order of the scans + fileSystemScan( mLibAudiosDirectoryPath, audiosPath); + fileSystemScan( mLibVideosDirectoryPath, moviesPath); + fileSystemScan( mLibAnimationsDirectoryPath, flashPath); + fileSystemScan( mLibPicturesDirectoryPath, picturesPath ); + + fileSystemScan( mUserInteractiveDirectoryPath, appPath ); + fileSystemScan( mUserAudioDirectoryPath, audiosPath ); + fileSystemScan( mUserPicturesDirectoryPath, picturesPath ); + fileSystemScan( mUserVideoDirectoryPath, moviesPath ); + fileSystemScan( mUserAnimationDirectoryPath, flashPath ); + + fileSystemScan( mLibApplicationsDirectoryPath, appPath ); + fileSystemScan( mLibShapesDirectoryPath, shapesPath ); + fileSystemScan( mLibInteractiveDirectoryPath, interactPath ); + fileSystemScan( trashDirectoryPath, trashPath ); + fileSystemScan( mLibSearchDirectoryPath, rootPath + "/" + "Web search" ); - fileSystemScan(mLibApplicationsDirectoryPath, appPath); - fileSystemScan( mLibPicturesDirectoryPath, picturesPath); - fileSystemScan( mLibShapesDirectoryPath, shapesPath); - fileSystemScan( mLibInteractiveDirectoryPath, interactPath); - fileSystemScan( trashDirectoryPath, trashPath); - fileSystemScan( mLibSearchDirectoryPath, rootPath + "/" + "Web search"); } void UBFeaturesController::fileSystemScan(const QUrl & currentPath, const QString & currVirtualPath) @@ -464,23 +471,29 @@ UBFeature UBFeaturesController::getParentFeatureForUrl( 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 = getParentFeatureForUrl( sourceUrl ); + if ( dest == UBFeature() ) - return UBFeature(); + return; + QString fileName = QFileInfo( sourceUrl.toString() ).fileName(); QString filePath = dest.getFullPath().toLocalFile() + "/" + fileName; QFile file( filePath ); - if( file.open(QIODevice::WriteOnly )) + if ( file.open(QIODevice::WriteOnly )) { file.write(pData); file.close(); - return UBFeature( dest.getFullVirtualPath(), thumbnailForFile( filePath ), - fileName, QUrl::fromLocalFile(filePath), FEATURE_ITEM ); + + 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 ) @@ -523,7 +536,7 @@ UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeatu void UBFeaturesController::rescanModel() { - featuresModel->removeRows(0, featuresList->count() - 1); + featuresModel->removeRows(0, featuresList->count()); //Could implement infolder scanning for better perfomance scanFS(); diff --git a/src/board/UBFeaturesController.h b/src/board/UBFeaturesController.h index e6dd0eda..95e97ba0 100644 --- a/src/board/UBFeaturesController.h +++ b/src/board/UBFeaturesController.h @@ -101,7 +101,7 @@ public: void setCurrentElement( const UBFeature &elem ) {currentElement = elem;} const UBFeature & getTrashElement () const { return trashElement; } - UBFeature addDownloadedFile( const QUrl &sourceUrl, const QByteArray &pData ); + void addDownloadedFile( const QUrl &sourceUrl, const QByteArray &pData ); UBFeature moveItemToFolder( const QUrl &url, const UBFeature &destination ); UBFeature copyItemToFolder( const QUrl &url, const UBFeature &destination ); diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index ecf28854..c456db03 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -69,8 +69,8 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale mActionBar = new UBFeaturesActionBar(controller, this); //Filling main layout - layout->addWidget( pathListView ); - layout->addWidget( stackedWidget ); + layout->addWidget(pathListView); + layout->addWidget(stackedWidget); layout->addWidget(mActionBar); connect(mNavigator->listView(), SIGNAL(clicked(const QModelIndex &)), this, SLOT(currentSelected(const QModelIndex &))); @@ -83,120 +83,11 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale connect(mActionBar, SIGNAL(addElementsToFavorite() ), this, SLOT ( addElementsToFavorite()) ); connect(mActionBar, SIGNAL(removeElementsFromFavorite()), this, SLOT (removeElementsFromFavorite())); - connect( mActionBar, SIGNAL(rescanModel()), this, SLOT(rescanModel())); + connect(mActionBar, SIGNAL(rescanModel()), this, SLOT(rescanModel())); connect(pathListView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(currentSelected(const QModelIndex &))); - connect( UBApplication::boardController, SIGNAL(displayMetadata(QMap)), this, SLOT(onDisplayMetadata( QMap))); - connect( UBDownloadManager::downloadManager(), SIGNAL( addDownloadedFileToLibrary( bool, QUrl, QString, QByteArray)), this, SLOT(onAddDownloadedFileToLibrary(bool, QUrl, QString,QByteArray))); -//======= -// stackedWidget = new QStackedWidget(this); -// layout = new QVBoxLayout(this); - -// controller = new UBFeaturesController(this); - -// featuresModel = new UBFeaturesModel(this); -// featuresModel->setFeaturesList( controller->getFeatures() ); -// featuresModel->setSupportedDragActions( Qt::CopyAction | Qt::MoveAction ); -// featuresListView = new UBFeaturesListView(this); -// pathListView = new UBFeaturesListView(this); - - -// featuresProxyModel = new UBFeaturesProxyModel(this); -// featuresProxyModel->setFilterFixedString( controller->getRootPath() ); -// featuresProxyModel->setSourceModel( featuresModel ); -// featuresProxyModel->setFilterCaseSensitivity( Qt::CaseInsensitive ); - -// featuresSearchModel = new UBFeaturesSearchProxyModel(this); -// featuresSearchModel->setSourceModel( featuresModel ); -// featuresSearchModel->setFilterCaseSensitivity( Qt::CaseInsensitive ); - -// featuresPathModel = new UBFeaturesPathProxyModel(this); -// featuresPathModel->setPath( controller->getRootPath() ); -// featuresPathModel->setSourceModel( featuresModel ); - - -// //featuresListView->setStyleSheet( QString("background: #EEEEEE;border-radius: 10px;border: 2px solid #999999;") ); -// featuresListView->setDragDropMode( QAbstractItemView::DragDrop ); -// featuresListView->setSelectionMode( QAbstractItemView::ContiguousSelection ); -// featuresListView->setModel( featuresProxyModel ); - -// featuresListView->setResizeMode( QListView::Adjust ); -// featuresListView->setViewMode( QListView::IconMode ); -// itemDelegate = new UBFeaturesItemDelegate( this, featuresListView ); -// featuresListView->setItemDelegate( itemDelegate ); -// //featuresListView->setSelectionRectVisible(false); - -// featuresListView->setIconSize( QSize(currentIconSize, currentIconSize) ); -// featuresListView->setGridSize( QSize(currentIconSize * 1.75, currentIconSize * 1.75) ); - -// //pathListView->setStyleSheet( QString("background: #EEEEEE; border-radius : 10px; border : 2px solid #999999;") ); -// pathListView->setModel( featuresPathModel ); -// pathListView->setViewMode( QListView::IconMode ); -// pathListView->setIconSize( QSize(defaultThumbnailSize - 10, defaultThumbnailSize - 10) ); -// pathListView->setGridSize( QSize(defaultThumbnailSize + 10, defaultThumbnailSize - 10) ); -// pathListView->setFixedHeight( 60 ); -// pathItemDelegate = new UBFeaturesPathItemDelegate( this ); -// pathListView->setItemDelegate( pathItemDelegate ); -// pathListView->setSelectionMode( QAbstractItemView::NoSelection ); -// pathListView->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); -// pathListView->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOn ); -// pathListView->setFlow( QListView::LeftToRight ); -// pathListView->setWrapping(false); - -// //pathListView->setResizeMode( QListView::Adjust ); -// //pathListView->setMovement( QListView::Static ); -// pathListView->setDragDropMode( QAbstractItemView::DropOnly ); - -// //pathViewer = new UBFeaturesPathViewer( QPixmap(":images/libpalette/home.png"), controller->getRootPath(), pathScene, this ); -// featureProperties = new UBFeatureProperties(this); -// webView = new UBFeaturesWebView(this); - -// //layout->addWidget( pathViewer ); -// //pathViewer->show(); -// //layout->addWidget( featuresListView ); -// layout->addWidget( pathListView ); -// layout->addWidget( stackedWidget ); - -// stackedWidget->addWidget( featuresListView ); -// stackedWidget->addWidget( featureProperties ); -// stackedWidget->addWidget( webView ); -// stackedWidget->setCurrentIndex(ID_LISTVIEW); -// currentStackedWidget = ID_LISTVIEW; - -// mActionBar = new UBFeaturesActionBar(controller, this); -// thumbSlider = new QSlider( Qt::Horizontal, featuresListView ); -// thumbSlider->setMinimum( minThumbnailSize ); -// thumbSlider->setMaximum( maxThumbnailSize ); -// thumbSlider->setValue(currentIconSize); - -// //qDebug() << "init" << featuresListView->height(); -// thumbSlider->move( 0, featuresListView->height() ); -// thumbSlider->resize( thumbSlider->width(), thumbSlider->height() + 4 ); -// thumbSlider->show(); -// featuresListView->installEventFilter(this); -// //layout->addWidget( thumbSlider ); -// layout->addWidget( mActionBar ); - -// /*connect(featuresListView->selectionModel(), SIGNAL(currentChanged ( const QModelIndex &, const QModelIndex & )), -// this, SLOT(currentSelected(const QModelIndex &)));*/ -// connect( featuresListView, SIGNAL(clicked ( const QModelIndex & ) ), -// this, SLOT( currentSelected(const QModelIndex &) ) ); -// connect( mActionBar, SIGNAL( searchElement(const QString &) ), this, SLOT( searchStarted(const QString &) ) ); -// connect( mActionBar, SIGNAL( newFolderToCreate() ), this, SLOT( createNewFolder() ) ); -// connect( mActionBar, SIGNAL( deleteElements(const QMimeData &) ), this, SLOT( deleteElements(const QMimeData &) ) ); -// connect( mActionBar, SIGNAL( addToFavorite(const QMimeData &) ), this, SLOT( addToFavorite(const QMimeData &) ) ); -// connect( mActionBar, SIGNAL( removeFromFavorite(const QMimeData &) ), this, SLOT( removeFromFavorite(const QMimeData &) ) ); -// connect( mActionBar, SIGNAL( addElementsToFavorite() ), this, SLOT ( addElementsToFavorite() ) ); -// connect( mActionBar, SIGNAL( removeElementsFromFavorite() ), this, SLOT ( removeElementsFromFavorite() ) ); -// connect( mActionBar, SIGNAL( deleteSelectedElements() ), this, SLOT( deleteSelectedElements() ) ); -// connect( pathListView, SIGNAL(clicked( const QModelIndex & ) ), -// this, SLOT( currentPathChanged( const QModelIndex & ) ) ); -// //connect( thumbSlider, SIGNAL( sliderMoved(int) ), this, SLOT(thumbnailSizeChanged( int ) ) ); -// connect(thumbSlider, SIGNAL(valueChanged(int)), this, SLOT(thumbnailSizeChanged(int))); -// connect( UBApplication::boardController, SIGNAL( displayMetadata( QMap ) ), -// this, SLOT( onDisplayMetadata( QMap ) ) ); -// connect( UBDownloadManager::downloadManager(), SIGNAL( addDownloadedFileToLibrary( bool, QUrl, QString, QByteArray ) ), -// this, SLOT( onAddDownloadedFileToLibrary( bool, QUrl, QString,QByteArray ) ) ); -//>>>>>>> e38b24544e8b8b1d5bd41dabdeaf588df7d45185 + connect(UBApplication::boardController, SIGNAL(displayMetadata(QMap)), this, SLOT(onDisplayMetadata( QMap))); + connect(UBDownloadManager::downloadManager(), SIGNAL( addDownloadedFileToLibrary( bool, QUrl, QString, QByteArray)) + , this, SLOT(onAddDownloadedFileToLibrary(bool, QUrl, QString,QByteArray))); } UBFeaturesWidget::~UBFeaturesWidget() @@ -402,15 +293,9 @@ void UBFeaturesWidget::onAddDownloadedFileToLibrary(bool pSuccess, QUrl sourceUr { Q_UNUSED(pContentHeader) - if ( pSuccess ) - { - UBFeature newFeature = controller->addDownloadedFile( sourceUrl, pData ); - if ( newFeature != UBFeature() ) - { - featuresModel->addItem( newFeature ); - QSortFilterProxyModel *model = dynamic_cast( mNavigator->listView()->model() ); - model->invalidate(); - } + if (pSuccess) { + controller->addDownloadedFile(sourceUrl, pData); + controller->refreshModels(); } } @@ -467,34 +352,6 @@ void UBFeaturesWidget::switchToWebView() currentStackedWidget = ID_WEBVIEW; } -void UBFeaturesWidget::updateSliderPosition() -{ -// //Calculating the topleft position of the slider -// int scrollBarVOffset = featuresListView->horizontalScrollBar()->isVisible() ? featuresListView->horizontalScrollBar()->height() : 0; -// int xSlider = scrollbarHorisontalPadding(); -// int ySlider = featuresListView->height() - (thumbSlider->height() + scrollbarVerticalIndent() + scrollBarVOffset); -// thumbSlider->move( xSlider, ySlider); - -// //Calculating new slider's size -// int scrollBarHOffset = featuresListView->verticalScrollBar()->isVisible() ? featuresListView->verticalScrollBar()->width() : 0; -// int wSlider = featuresListView->width() - 2 * scrollbarHorisontalPadding() - scrollBarHOffset; -// int hSlider = thumbSlider->height(); -// thumbSlider->resize(wSlider, hSlider); -} - -/* - -void UBFeaturesWidget::currentPathChanged(const QString &path) -{ - int newDepth = path.count("/"); - pathViewer->truncatePath(newDepth); - featuresListView->setModel( featuresProxyModel ); - featuresProxyModel->setFilterFixedString(path); - featuresProxyModel->invalidate(); - switchToListView(); -} -*/ - QStringList UBFeaturesMimeData::formats() const { return QMimeData::formats(); @@ -945,7 +802,6 @@ UBFeatureItemButton::UBFeatureItemButton(QWidget *parent, const char *name):QPus UBFeatureItemButton::~UBFeatureItemButton() { - } QVariant UBFeaturesModel::data(const QModelIndex &index, int role) const @@ -1248,10 +1104,7 @@ bool UBFeaturesSearchProxyModel::filterAcceptsRow( int sourceRow, const QModelIn bool UBFeaturesPathProxyModel::filterAcceptsRow( int sourceRow, const QModelIndex & sourceParent )const { QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); - /*QString name = sourceModel()->data(index, Qt::DisplayRole).toString(); - eUBLibElementType type = (eUBLibElementType)sourceModel()->data(index, Qt::UserRole + 1).toInt();*/ - - UBFeature feature = sourceModel()->data(index, Qt::UserRole + 1).value(); + UBFeature feature = sourceModel()->data(index, Qt::UserRole + 1).value(); return feature.isFolder() && path.startsWith( feature.getFullVirtualPath() ); } diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index 3c87c05f..e732836a 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -60,7 +60,6 @@ public: static const int minThumbnailSize = 20; static const int maxThumbnailSize = 100; static const int defaultThumbnailSize = 40; -//<<<<<<< HEAD public: int scrollbarHorisontalPadding() const { return 10;} @@ -75,90 +74,27 @@ private slots: void addToFavorite( const UBFeaturesMimeData *); void removeFromFavorite( const UBFeaturesMimeData * ); void onDisplayMetadata( QMap ); -//======= -//private: -// void switchToListView(); -// void switchToProperties(); -// void switchToWebView(); - -// UBFeaturesController *controller; - -// UBFeaturesItemDelegate *itemDelegate; -// UBFeaturesPathItemDelegate *pathItemDelegate; - -// UBFeaturesModel *featuresModel; -// UBFeaturesProxyModel *featuresProxyModel; -// UBFeaturesSearchProxyModel *featuresSearchModel; -// UBFeaturesPathProxyModel *featuresPathModel; - -// UBFeaturesListView *featuresListView; -// UBFeaturesListView *pathListView; - -// QSlider *thumbSlider; -// QVBoxLayout *layout; -// //UBFeaturesPathViewer *pathViewer; -// //QGraphicsScene *pathScene; -// UBFeaturesActionBar *mActionBar; -// UBFeatureProperties *featureProperties; -// UBFeaturesWebView *webView; -// QStackedWidget *stackedWidget; - - -// int currentStackedWidget; - -// UBDownloadHttpFile* imageGatherer; - -//private slots: -// -// void currentSelected( const QModelIndex & ); -// //void currentPathChanged(const QString &); -// void currentPathChanged( const QModelIndex & ); -// void searchStarted( const QString & ); -// void createNewFolder(); -// void deleteElements( const QMimeData & ); -// void addToFavorite( const QMimeData & ); -// void removeFromFavorite( const QMimeData & ); -// void thumbnailSizeChanged( int ); -// void onDisplayMetadata( QMap ); -//>>>>>>> e38b24544e8b8b1d5bd41dabdeaf588df7d45185 void onAddDownloadedFileToLibrary(bool, QUrl, QString, QByteArray); void addElementsToFavorite(); void removeElementsFromFavorite(); void deleteSelectedElements(); -//<<<<<<< HEAD void rescanModel(); - private: void switchToListView(); void switchToProperties(); void switchToWebView(); - void updateSliderPosition(); - private: UBFeaturesController *controller; - - UBFeaturesItemDelegate *itemDelegate; - UBFeaturesPathItemDelegate *pathItemDelegate; - - UBFeaturesModel *featuresModel; - UBFeaturesProxyModel *featuresProxyModel; - UBFeaturesSearchProxyModel *featuresSearchModel; - UBFeaturesPathProxyModel *featuresPathModel; - - UBFeaturesNavigatorWidget *mNavigator; UBFeaturesListView *pathListView; - QVBoxLayout *layout; UBFeaturesActionBar *mActionBar; UBFeatureProperties *featureProperties; UBFeaturesWebView *webView; QStackedWidget *stackedWidget; - int currentStackedWidget; - UBDownloadHttpFile* imageGatherer; }; @@ -175,11 +111,6 @@ public: private: QList mFeatures; -//======= - -//protected: -// bool eventFilter(QObject *target, QEvent *event); -//>>>>>>> e38b24544e8b8b1d5bd41dabdeaf588df7d45185 }; @@ -195,16 +126,9 @@ protected: virtual void dragEnterEvent( QDragEnterEvent *event ); virtual void dropEvent( QDropEvent *event ); virtual void dragMoveEvent( QDragMoveEvent *event ); - /*virtual void mousePressEvent( QMouseEvent *event ); - virtual void mouseMoveEvent( QMouseEvent *event ); - virtual void mouseReleaseEvent( QMouseEvent *event );*/ private slots: void thumbnailSizeChanged(int); - -private: - //UBRubberBand *rubberBand; - //QPoint rubberOrigin; };