From cfa100d2d8f7d2470ac7dab7e3a71c87b9ef21d6 Mon Sep 17 00:00:00 2001 From: Anna Udovichenko Date: Tue, 8 May 2012 17:15:23 +0300 Subject: [PATCH] Implemented adding to favorite from properties page --- src/gui/UBFeaturesWidget.cpp | 31 +++++++++++++++++++++++++------ src/gui/UBFeaturesWidget.h | 3 +-- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index a8380a69..bc675a9f 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -337,13 +337,25 @@ void UBFeaturesWidget::onAddDownloadedFileToLibrary(bool pSuccess, QUrl sourceUr void UBFeaturesWidget::addElementsToFavorite() { - QModelIndexList selected = featuresListView->selectionModel()->selectedIndexes(); - for ( int i = 0; i < selected.size(); ++i ) + if ( currentStackedWidget == ID_PROPERTIES ) { - UBFeature feature = selected.at(i).data( Qt::UserRole + 1 ).value(); - UBFeature elem = controller->addToFavorite( feature.getFullPath() ); - if ( !elem.getVirtualPath().isEmpty() && !elem.getVirtualPath().isNull() ) - featuresModel->addItem( elem ); + UBFeature feature = featureProperties->getCurrentElement(); + if ( feature != UBFeature() && !UBApplication::isFromWeb( feature.getFullPath().toString() ) ) + { + UBFeature elem = controller->addToFavorite( feature.getFullPath() ); + featuresModel->addItem( elem ); + } + } + else if ( currentStackedWidget == ID_LISTVIEW ) + { + QModelIndexList selected = featuresListView->selectionModel()->selectedIndexes(); + for ( int i = 0; i < selected.size(); ++i ) + { + UBFeature feature = selected.at(i).data( Qt::UserRole + 1 ).value(); + UBFeature elem = controller->addToFavorite( feature.getFullPath() ); + if ( !elem.getVirtualPath().isEmpty() && !elem.getVirtualPath().isNull() ) + featuresModel->addItem( elem ); + } } QSortFilterProxyModel *model = dynamic_cast( featuresListView->model() ); model->invalidate(); @@ -629,6 +641,13 @@ void UBFeatureProperties::showEvent (QShowEvent *event ) adaptSize(); } +UBFeature UBFeatureProperties::getCurrentElement() const +{ + if ( mpElement ) + return *mpElement; + return UBFeature(); +} + void UBFeatureProperties::adaptSize() { if( NULL != mpOrigPixmap ) diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index 6050fc33..0fafc7d9 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -152,8 +152,7 @@ public: ~UBFeatureProperties(); void showElement(const UBFeature &elem); - - + UBFeature getCurrentElement() const; protected: void resizeEvent(QResizeEvent *event); void showEvent(QShowEvent *event);