QmlDesigner.itemLibrary: use QFileSystemModel

QDirModel is depricated.
Task-number: QTCREATORBUG-3134

Change-Id: I21faf0c48a0126db6545893e8f3a86aa5180fffd
Reviewed-on: http://codereview.qt.nokia.com/2279
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
This commit is contained in:
Thomas Hartmann
2011-07-27 13:32:10 +02:00
parent c9324c828b
commit 87c072b3ad
3 changed files with 27 additions and 24 deletions

View File

@@ -42,7 +42,7 @@
#include <QPainter>
#include <QLabel>
#include <itemlibraryinfo.h>
#include <QDirModel>
#include <QFileSystemModel>
#include <QProxyStyle>
enum { debug = 0 };
@@ -120,9 +120,9 @@ void ItemLibraryTreeView::startDrag(Qt::DropActions /* supportedActions */)
if (!mimeData)
return;
QDirModel *dirModel = qobject_cast<QDirModel*>(model());
Q_ASSERT(dirModel);
QFileInfo fileInfo = dirModel->fileInfo(selectedIndexes().front());
QFileSystemModel *fileSystemModel = qobject_cast<QFileSystemModel*>(model());
Q_ASSERT(fileSystemModel);
QFileInfo fileInfo = fileSystemModel->fileInfo(selectedIndexes().front());
QPixmap pixmap(fileInfo.absoluteFilePath());
if (!pixmap.isNull()) {
CustomItemLibraryDrag *drag = new CustomItemLibraryDrag(this);
@@ -137,10 +137,10 @@ void ItemLibraryTreeView::startDrag(Qt::DropActions /* supportedActions */)
void ItemLibraryTreeView::setModel(QAbstractItemModel *model)
{
QDirModel *dirModel = dynamic_cast<QDirModel *>(model);
if (dirModel) {
QFileSystemModel *fileSystemModel = dynamic_cast<QFileSystemModel *>(model);
if (fileSystemModel) {
QTreeView::setModel(model);
m_delegate->setModel(dirModel);
m_delegate->setModel(fileSystemModel);
setColumnHidden(1, true);
setColumnHidden(2, true);
setColumnHidden(3, true);
@@ -155,9 +155,9 @@ void ItemLibraryTreeView::activateItem( const QModelIndex & /*index*/)
return;
QString name;
QDirModel *dirModel = qobject_cast<QDirModel*>(model());
Q_ASSERT(dirModel);
QFileInfo fileInfo = dirModel->fileInfo(selectedIndexes().front());
QFileSystemModel *fileSystemModel = qobject_cast<QFileSystemModel*>(model());
Q_ASSERT(fileSystemModel);
QFileInfo fileInfo = fileSystemModel->fileInfo(selectedIndexes().front());
QPixmap pixmap(fileInfo.absoluteFilePath());
if (!pixmap.isNull()) {
name = "image^" + fileInfo.absoluteFilePath();
@@ -195,7 +195,7 @@ QSize ResourceItemDelegate::sizeHint(const QStyleOptionViewItem &/*option*/,
return icon.availableSizes().front() + QSize(25, 4);
}
void ResourceItemDelegate::setModel(QDirModel *model)
void ResourceItemDelegate::setModel(QFileSystemModel *model)
{
m_model = model;
}

View File

@@ -42,7 +42,7 @@
#include <QStyledItemDelegate>
QT_BEGIN_NAMESPACE
class QDirModel;
class QFileSystemModel;
class QLabel;
QT_END_NAMESPACE
@@ -83,10 +83,10 @@ public:
QSize sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const;
void setModel(QDirModel *model);
void setModel(QFileSystemModel *model);
private:
QDirModel *m_model;
QFileSystemModel *m_model;
};
} // namespace Internal

View File

@@ -45,7 +45,7 @@
#include <QFileInfo>
#include <QFileIconProvider>
#include <QDirModel>
#include <QFileSystemModel>
#include <QStackedWidget>
#include <QGridLayout>
#include <QTabBar>
@@ -107,7 +107,7 @@ public:
ItemLibraryWidgetPrivate(QObject *object);
Internal::ItemLibraryModel *m_itemLibraryModel;
QDirModel *m_resourcesDirModel;
QFileSystemModel *m_resourcesFileSystemModel;
QStackedWidget *m_stackedWidget;
Utils::FilterLineEdit *m_lineEdit;
@@ -122,7 +122,7 @@ public:
ItemLibraryWidgetPrivate::ItemLibraryWidgetPrivate(QObject *object) :
m_itemLibraryModel(0),
m_resourcesDirModel(0),
m_resourcesFileSystemModel(0),
m_stackedWidget(0),
m_lineEdit(0),
m_itemsView(0),
@@ -172,10 +172,10 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
connect(this, SIGNAL(resetItemsView()), rootItem, SLOT(resetView()));
/* create Resources view and its model */
m_d->m_resourcesDirModel = new QDirModel(this);
m_d->m_resourcesDirModel->setIconProvider(&m_d->m_iconProvider);
m_d->m_resourcesFileSystemModel = new QFileSystemModel(this);
m_d->m_resourcesFileSystemModel->setIconProvider(&m_d->m_iconProvider);
m_d->m_resourcesView = new Internal::ItemLibraryTreeView(this);
m_d->m_resourcesView->setModel(m_d->m_resourcesDirModel);
m_d->m_resourcesView->setModel(m_d->m_resourcesFileSystemModel);
m_d->m_resourcesView->setIconSize(m_d->m_resIconSize);
/* create image provider for loading item icons */
@@ -333,8 +333,9 @@ void ItemLibraryWidget::setSearchFilter(const QString &searchFilter)
}
}
m_d->m_resourcesDirModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
m_d->m_resourcesDirModel->setNameFilters(nameFilterList);
m_d->m_resourcesFileSystemModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
m_d->m_resourcesFileSystemModel->setNameFilterDisables(false);
m_d->m_resourcesFileSystemModel->setNameFilters(nameFilterList);
m_d->m_resourcesView->expandToDepth(1);
m_d->m_resourcesView->scrollToTop();
}
@@ -454,8 +455,10 @@ void ItemLibraryWidget::updateSearch()
void ItemLibraryWidget::setResourcePath(const QString &resourcePath)
{
if (m_d->m_resourcesView->model() == m_d->m_resourcesDirModel)
m_d->m_resourcesView->setRootIndex(m_d->m_resourcesDirModel->index(resourcePath));
if (m_d->m_resourcesView->model() == m_d->m_resourcesFileSystemModel) {
m_d->m_resourcesFileSystemModel->setRootPath(resourcePath);
m_d->m_resourcesView->setRootIndex(m_d->m_resourcesFileSystemModel->index(resourcePath));
}
updateSearch();
}