diff options
| author | Peter Penz <[email protected]> | 2007-09-19 13:34:40 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2007-09-19 13:34:40 +0000 |
| commit | 9d277154e1bd6112a6d0af0f0f7e17fe3bfeff83 (patch) | |
| tree | 8555e36691ca5673530684e2990b914c0598f4b4 /src/dolphincolumnview.cpp | |
| parent | 539531e1df468a4e0f138ba087498f83c0c44225 (diff) | |
* some internal cleanups
* assure that a column gets created if no existing column can be used for showing an URL
svn path=/trunk/KDE/kdebase/apps/; revision=714407
Diffstat (limited to 'src/dolphincolumnview.cpp')
| -rw-r--r-- | src/dolphincolumnview.cpp | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 7a1bc4a25..49434d64a 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -104,7 +104,7 @@ private: ColumnWidget::ColumnWidget(QWidget* parent, DolphinColumnView* columnView, const KUrl& url) : - QListView(columnView), + QListView(parent), m_active(true), m_view(columnView), m_url(url), @@ -244,10 +244,8 @@ void ColumnWidget::paintEvent(QPaintEvent* event) { if (!m_childUrl.isEmpty()) { // indicate the shown URL of the next column by highlighting the shown folder item - const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(m_view->model()); - const DolphinModel* dolphinModel = static_cast<const DolphinModel*>(proxyModel->sourceModel()); - const QModelIndex dirIndex = dolphinModel->indexForUrl(m_childUrl); - const QModelIndex proxyIndex = proxyModel->mapFromSource(dirIndex); + const QModelIndex dirIndex = m_view->m_dolphinModel->indexForUrl(m_childUrl); + const QModelIndex proxyIndex = m_view->m_proxyModel->mapFromSource(dirIndex); if (proxyIndex.isValid() && !selectionModel()->isSelected(proxyIndex)) { const QRect itemRect = visualRect(proxyIndex); QPainter painter(viewport()); @@ -347,10 +345,8 @@ void ColumnWidget::activate() if (!m_childUrl.isEmpty()) { // assure that the current index is set on the index that represents // the child URL - const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(model()); - const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel()); - const QModelIndex dirIndex = dirModel->indexForUrl(m_childUrl); - const QModelIndex proxyIndex = proxyModel->mapFromSource(dirIndex); + const QModelIndex dirIndex = m_view->m_dolphinModel->indexForUrl(m_childUrl); + const QModelIndex proxyIndex = m_view->m_proxyModel->mapFromSource(dirIndex); selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::Current); } @@ -391,7 +387,9 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control m_index(-1), m_contentX(0), m_columns(), - m_animation(0) + m_animation(0), + m_dolphinModel(0), + m_proxyModel(0) { Q_ASSERT(controller != 0); @@ -454,12 +452,16 @@ QRect DolphinColumnView::visualRect(const QModelIndex& index) const void DolphinColumnView::setModel(QAbstractItemModel* model) { + m_proxyModel = static_cast<const QAbstractProxyModel*>(model); + m_dolphinModel = static_cast<const DolphinModel*>(m_proxyModel->sourceModel()); + activeColumn()->setModel(model); QAbstractItemView::setModel(model); } bool DolphinColumnView::isIndexHidden(const QModelIndex& index) const { + Q_UNUSED(index); return false;//activeColumn()->isIndexHidden(index); } @@ -504,6 +506,8 @@ QModelIndex DolphinColumnView::moveCursor(CursorAction cursorAction, Qt::Keyboar void DolphinColumnView::setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags flags) { + Q_UNUSED(rect); + Q_UNUSED(flags); //activeColumn()->setSelection(rect, flags); } @@ -572,9 +576,7 @@ void DolphinColumnView::triggerItem(const QModelIndex& index) return; } - const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(model()); - const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel()); - const KFileItem item = dirModel->itemForIndex(proxyModel->mapToSource(index)); + const KFileItem item = m_dolphinModel->itemForIndex(m_proxyModel->mapToSource(index)); if ((item.url() != activeColumn()->url()) && item.isDir()) { deleteInactiveChildColumns(); @@ -627,16 +629,20 @@ void DolphinColumnView::showColumn(const KUrl& url) deleteInactiveChildColumns(); } - const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(model()); - const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel()); - const QModelIndex dirIndex = dirModel->indexForUrl(url); + const QModelIndex dirIndex = m_dolphinModel->indexForUrl(url); if (dirIndex.isValid()) { - triggerItem(proxyModel->mapFromSource(dirIndex)); + triggerItem(m_proxyModel->mapFromSource(dirIndex)); } return; } ++columnIndex; } + + // no existing column has been replaced and a new column must be created + const QModelIndex dirIndex = m_dolphinModel->indexForUrl(url); + if (dirIndex.isValid()) { + triggerItem(m_proxyModel->mapFromSource(dirIndex)); + } } void DolphinColumnView::updateDecorationSize() |
