#include <QtGui/QSortFilterProxyModel>
#include <kdirmodel.h>
-#include <kdebug.h>
FolderExpander::FolderExpander(QAbstractItemView *view, QSortFilterProxyModel *proxyModel) :
QObject(view),
kWarning() << "Need a proxyModel!";
return; // Not valid.
}
- KDirModel *m_dirModel = qobject_cast< KDirModel* >( m_proxyModel->sourceModel() );
+ KDirModel *m_dirModel = qobject_cast< KDirModel* >( m_proxyModel->sourceModel() );
if (m_dirModel == 0) {
kWarning() << "Expected m_proxyModel's sourceModel() to be a KDirModel!";
return; // Not valid.
// Initialise auto-expand timer.
m_autoExpandTriggerTimer = new QTimer(this);
m_autoExpandTriggerTimer->setSingleShot(true);
- connect(m_autoExpandTriggerTimer, SIGNAL(timeout()),
+ connect(m_autoExpandTriggerTimer, SIGNAL(timeout()),
this, SLOT(autoExpandTimeout()));
// The view scrolling complicates matters, so we want to
void FolderExpander::viewScrolled()
{
if (m_autoExpandTriggerTimer->isActive()) {
- kDebug() << "Resetting time due to scrolling!";
- // (Re-)set the timer while we're scrolling the view
- // (or it's being scrolled by some external mechanism).
- // TODO - experiment with this. Cancelling the timer,
- // or adding a "penalty" on top of AUTO_EXPAND_DELAY
- // might work more nicely when drilling down through the sidebar
- // tree.
m_autoExpandTriggerTimer->start(AUTO_EXPAND_DELAY);
}
}
// needing to pass in m_proxyModel that has a KDirModel as its sourceModel() ... ?
QModelIndex proxyIndexToExpand = m_view->indexAt(m_autoExpandPos);
QModelIndex indexToExpand = m_proxyModel->mapToSource(proxyIndexToExpand);
- KDirModel* m_dirModel = qobject_cast< KDirModel* >(m_proxyModel->sourceModel());
+ KDirModel* m_dirModel = qobject_cast< KDirModel* >(m_proxyModel->sourceModel());
Q_ASSERT(m_dirModel != 0);
KFileItem itemToExpand = m_dirModel->itemForIndex(indexToExpand );
- kDebug() << "Need to expand: " << itemToExpand.targetUrl() << " isDir? = " << itemToExpand.isDir();
+ if (itemToExpand.isNull()) {
+ return;
+ }
if (itemToExpand.isDir()) {
QTreeView *viewAsTreeView = qobject_cast<QTreeView*>(m_view);
viewAsTreeView->setExpanded(proxyIndexToExpand, !viewAsTreeView->isExpanded(proxyIndexToExpand));
}
else {
- // Enter this directory.
- emit enterDir(proxyIndexToExpand);
+ emit enterDir(proxyIndexToExpand, m_view);
}
}
}