25#include <QtGui/QContextMenuEvent>
36class KFileTreeView::Private
44 KUrl urlForProxyIndex(
const QModelIndex &index)
const;
46 void _k_activated(
const QModelIndex&);
47 void _k_currentChanged(
const QModelIndex&,
const QModelIndex&);
48 void _k_expanded(
const QModelIndex&);
55KUrl KFileTreeView::Private::urlForProxyIndex(
const QModelIndex &index)
const
57 const KFileItem item = mSourceModel->itemForIndex(mProxyModel->mapToSource(index));
62void KFileTreeView::Private::_k_activated(
const QModelIndex &index)
64 const KUrl url = urlForProxyIndex(index);
66 emit q->activated(url);
69void KFileTreeView::Private::_k_currentChanged(
const QModelIndex ¤tIndex,
const QModelIndex&)
71 const KUrl url = urlForProxyIndex(currentIndex);
73 emit q->currentChanged(url);
76void KFileTreeView::Private::_k_expanded(
const QModelIndex &baseIndex)
78 QModelIndex index = mProxyModel->mapFromSource(baseIndex);
80 q->selectionModel()->clearSelection();
81 q->selectionModel()->setCurrentIndex(index, QItemSelectionModel::SelectCurrent);
90 d->mProxyModel->setSourceModel(d->mSourceModel);
92 setModel(d->mProxyModel);
94 setLayoutDirection(Qt::LeftToRight);
96 d->mSourceModel->dirLister()->openUrl(
KUrl(QDir::root().absolutePath()), KDirLister::Keep);
98 connect(
this, SIGNAL(
activated(QModelIndex)),
99 this, SLOT(_k_activated(QModelIndex)));
100 connect(selectionModel(), SIGNAL(
currentChanged(QModelIndex,QModelIndex)),
101 this, SLOT(_k_currentChanged(QModelIndex,QModelIndex)));
103 connect(d->mSourceModel, SIGNAL(expand(QModelIndex)),
104 this, SLOT(_k_expanded(QModelIndex)));
114 return d->urlForProxyIndex(currentIndex());
119 if (!selectionModel()->hasSelection())
122 const QItemSelection selection = selectionModel()->selection();
123 const QModelIndex firstIndex = selection.indexes().first();
125 return d->urlForProxyIndex(firstIndex);
132 if (!selectionModel()->hasSelection())
135 const QModelIndexList indexes = selectionModel()->selection().indexes();
136 foreach (
const QModelIndex &index, indexes) {
137 const KUrl url = d->urlForProxyIndex(index);
147 return d->mSourceModel->dirLister()->url();
152 d->mSourceModel->dirLister()->setDirOnlyMode(enabled);
153 d->mSourceModel->dirLister()->openUrl(d->mSourceModel->dirLister()->url());
159 d->mSourceModel->dirLister()->setShowingDotFiles(enabled);
160 d->mSourceModel->dirLister()->openUrl(d->mSourceModel->dirLister()->url());
166 QModelIndex baseIndex = d->mSourceModel->indexForUrl(url);
168 if (!baseIndex.isValid()) {
169 d->mSourceModel->expandToUrl(url);
173 QModelIndex proxyIndex = d->mProxyModel->mapFromSource(baseIndex);
174 selectionModel()->clearSelection();
175 selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::SelectCurrent);
176 scrollTo(proxyIndex);
181 d->mSourceModel->dirLister()->openUrl(url);
188 showHiddenAction->setChecked(d->mSourceModel->dirLister()->showingDotFiles());
189 connect(showHiddenAction, SIGNAL(toggled(
bool)),
this, SLOT(
setShowHiddenFiles(
bool)));
191 menu.addAction(showHiddenAction);
192 menu.exec(event->globalPos());
197 return d->mSourceModel->dirLister()->showingDotFiles();
203 return QSize(680, 500);
206#include "kfiletreeview.moc"
Acts as proxy model for KDirModel to sort and filter KFileItems.
The file treeview offers a treeview on the filesystem.
void setShowHiddenFiles(bool enabled)
Sets whether hidden files shall be listed.
KUrl currentUrl() const
Returns the current url.
QSize sizeHint() const
@reimplemented
~KFileTreeView()
Destroys the file tree view.
void setDirOnlyMode(bool enabled)
Sets whether the dir-only mode is enabled.
void currentChanged(const KUrl &url)
This signal is emitted whenever the current url has been changed.
KUrl rootUrl() const
Returns the current root url of the view.
void setRootUrl(const KUrl &url)
Sets the root url of the view.
KUrl::List selectedUrls() const
Returns all selected urls.
KFileTreeView(QWidget *parent=0)
Creates a new file tree view.
virtual void contextMenuEvent(QContextMenuEvent *)
void setCurrentUrl(const KUrl &url)
Sets the current url of the view.
void activated(const KUrl &url)
This signal is emitted whenever an url has been activated.
bool showHiddenFiles() const
Returns true if the view is currently showing hidden files.
KUrl selectedUrl() const
Returns the selected url.
QString i18n(const char *text)