From 254d1acc9dc968da7383dfad6f9afd27f5d8c562 Mon Sep 17 00:00:00 2001 From: Anna Udovichenko Date: Fri, 27 Apr 2012 15:04:30 +0300 Subject: [PATCH] slider for thumbnail size added --- src/board/UBFeaturesController.cpp | 9 +------- src/board/UBFeaturesController.h | 4 ++-- src/gui/UBFeaturesWidget.cpp | 35 ++++++++++++++++++++++-------- src/gui/UBFeaturesWidget.h | 11 ++++++++-- 4 files changed, 38 insertions(+), 21 deletions(-) diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 9f7de4b9..863606da 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -55,7 +55,7 @@ void UBFeaturesController::initDirectoryTree() mLibShapesDirectoryPath = UBSettings::settings()->applicationShapeLibraryDirectory() ; trashDirectoryPath = UBSettings::userTrashDirPath(); - featuresList = new QVector (); + featuresList = new QList (); QList tools = UBToolsManager::manager()->allTools(); @@ -322,13 +322,6 @@ UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeatu { UBFeature newElement = copyItemToFolder( url, destination ); deleteItem( url ); - /*QString sourcePath = url.toLocalFile(); - QFile::remove( sourcePath ); - QString thumbnailPath = UBFileSystemUtils::thumbnailPath( sourcePath ); - if (thumbnailPath.length() && QFileInfo( thumbnailPath ).exists()) - { - QFile::remove(thumbnailPath); - }*/ return newElement; } diff --git a/src/board/UBFeaturesController.h b/src/board/UBFeaturesController.h index b3a9aadb..a46c6e63 100644 --- a/src/board/UBFeaturesController.h +++ b/src/board/UBFeaturesController.h @@ -53,7 +53,7 @@ public: UBFeaturesController(QWidget *parentWidget); virtual ~UBFeaturesController(); - QVector * getFeatures()const { return featuresList; } + QList * getFeatures()const { return featuresList; } const QString& getRootPath()const { return rootPath; } @@ -81,7 +81,7 @@ private: static UBFeatureElementType fileTypeFromUrl( const QString &path ); - QVector *featuresList; + QList *featuresList; UBFeature *rootElement; QString mUserAudioDirectoryPath; diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index 9da04a0a..b29b2c30 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -56,14 +56,14 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale itemDelegate = new UBFeaturesItemDelegate( this, featuresListView ); featuresListView->setItemDelegate( itemDelegate ); - featuresListView->setIconSize( QSize(40, 40) ); - featuresListView->setGridSize( QSize(70, 70) ); + featuresListView->setIconSize( QSize(defaultThumbnailSize, defaultThumbnailSize) ); + featuresListView->setGridSize( QSize(defaultThumbnailSize * 1.75, defaultThumbnailSize * 1.75) ); //pathListView->setStyleSheet( QString("background: #EEEEEE; border-radius : 10px; border : 2px solid #999999;") ); pathListView->setModel( featuresPathModel ); pathListView->setViewMode( QListView::IconMode ); - pathListView->setIconSize( QSize(30, 30) ); - pathListView->setGridSize( QSize(50, 30) ); + pathListView->setIconSize( QSize(defaultThumbnailSize - 10, defaultThumbnailSize - 10) ); + pathListView->setGridSize( QSize(defaultThumbnailSize + 10, defaultThumbnailSize - 10) ); pathListView->setFixedHeight( 60 ); pathItemDelegate = new UBFeaturesPathItemDelegate( this ); pathListView->setItemDelegate( pathItemDelegate ); @@ -89,7 +89,12 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale currentStackedWidget = ID_LISTVIEW; mActionBar = new UBFeaturesActionBar(controller, this); - layout->addWidget(mActionBar); + thumbSlider = new QSlider( Qt::Horizontal, this ); + thumbSlider->setMinimum( minThumbnailSize ); + thumbSlider->setMaximum( maxThumbnailSize ); + thumbSlider->setValue( defaultThumbnailSize ); + layout->addWidget( thumbSlider ); + layout->addWidget( mActionBar ); /*connect(featuresListView->selectionModel(), SIGNAL(currentChanged ( const QModelIndex &, const QModelIndex & )), this, SLOT(currentSelected(const QModelIndex &)));*/ @@ -102,6 +107,7 @@ UBFeaturesWidget::UBFeaturesWidget(QWidget *parent, const char *name):UBDockPale connect( mActionBar, SIGNAL( removeFromFavorite(const QMimeData &) ), this, SLOT( removeFromFavorite(const QMimeData &) ) ); connect( pathListView, SIGNAL(clicked( const QModelIndex & ) ), this, SLOT( currentPathChanged( const QModelIndex & ) ) ); + connect( thumbSlider, SIGNAL( sliderMoved(int) ), this, SLOT(thumbnailSizeChanged( int ) ) ); } void UBFeaturesWidget::searchStarted( const QString &pattern ) @@ -253,6 +259,12 @@ void UBFeaturesWidget::removeFromFavorite( const QMimeData & mimeData ) } } +void UBFeaturesWidget::thumbnailSizeChanged( int value ) +{ + featuresListView->setIconSize( QSize( value, value ) ); + featuresListView->setGridSize( QSize( value * 1.75, value * 1.75 ) ); +} + void UBFeaturesWidget::switchToListView() { stackedWidget->setCurrentIndex(ID_LISTVIEW); @@ -407,7 +419,10 @@ void UBFeatureProperties::showElement( const UBFeature &elem ) void UBFeatureProperties::onAddToPage() { - if ( UBApplication::isFromWeb( mpElement->getUrl() ) ) + QWidget *w = parentWidget()->parentWidget(); + UBFeaturesWidget* featuresWidget = dynamic_cast( w ); + featuresWidget->getFeaturesController()->addItemToPage( *mpElement ); + /*if ( UBApplication::isFromWeb( mpElement->getUrl() ) ) { sDownloadFileDesc desc; desc.isBackground = false; @@ -422,7 +437,7 @@ void UBFeatureProperties::onAddToPage() QWidget *w = parentWidget()->parentWidget(); UBFeaturesWidget* featuresWidget = dynamic_cast( w ); featuresWidget->getFeaturesController()->addItemToPage( *mpElement ); - } + }*/ } UBFeatureProperties::~UBFeatureProperties() @@ -562,7 +577,8 @@ bool UBFeaturesModel::removeRows( int row, int count, const QModelIndex & parent if ( row + count > featuresList->size() ) return false; beginRemoveRows( parent, row, row + count - 1 ); - featuresList->remove( row, count ); + //featuresList->remove( row, count ); + featuresList->erase( featuresList->begin() + row, featuresList->begin() + row + count ); endRemoveRows(); return true; } @@ -574,7 +590,8 @@ bool UBFeaturesModel::removeRow( int row, const QModelIndex & parent ) if ( row >= featuresList->size() ) return false; beginRemoveRows( parent, row, row ); - featuresList->remove( row ); + //featuresList->remove( row ); + featuresList->erase( featuresList->begin() + row ); endRemoveRows(); return true; } diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index 322fa4dc..22a0f26d 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -51,6 +51,10 @@ public: || mode == eUBDockPaletteWidget_DESKTOP; } UBFeaturesController * getFeaturesController()const { return controller; }; + + static const int minThumbnailSize = 20; + static const int maxThumbnailSize = 100; + static const int defaultThumbnailSize = 40; private: void switchToListView(); void switchToProperties(); @@ -67,6 +71,8 @@ private: UBFeaturesListView *featuresListView; UBFeaturesListView *pathListView; + + QSlider *thumbSlider; QVBoxLayout *layout; //UBFeaturesPathViewer *pathViewer; QGraphicsScene *pathScene; @@ -85,6 +91,7 @@ private slots: void deleteElements( const QMimeData & ); void addToFavorite( const QMimeData & ); void removeFromFavorite( const QMimeData & ); + void thumbnailSizeChanged( int ); }; class UBFeaturesListView : public QListView @@ -165,9 +172,9 @@ public: Qt::DropActions supportedDropActions() const { return Qt::MoveAction | Qt::CopyAction; } - void setFeaturesList( QVector *flist ) { featuresList = flist; } + void setFeaturesList( QList *flist ) { featuresList = flist; } private: - QVector *featuresList; + QList *featuresList; }; class UBFeaturesProxyModel : public QSortFilterProxyModel