***************************************************************************/
#include "dolphinview.h"
+#include <ktoggleaction.h>
+#include <kactioncollection.h>
#include <QApplication>
#include <QClipboard>
const bool categorized = m_storedCategorizedSorting && supportsCategorizedSorting();
if (categorized != m_proxyModel->isCategorizedModel()) {
m_proxyModel->setCategorizedModel(categorized);
- m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
emit categorizedSortingChanged();
}
m_storedCategorizedSorting = categorized;
m_proxyModel->setCategorizedModel(categorized);
- m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
emit categorizedSortingChanged();
}
emit startedPathLoading(url);
}
+void DolphinView::setNameFilter(const QString& nameFilter)
+{
+ // The name filter of KDirLister does a 'hard' filtering, which
+ // means that only the items are shown where the names match
+ // exactly the filter. This is non-transparent for the user, which
+ // just wants to have a 'soft' filtering: does the name contain
+ // the filter string?
+ QString adjustedFilter(nameFilter);
+ adjustedFilter.insert(0, '*');
+ adjustedFilter.append('*');
+
+ m_dirLister->setNameFilter(adjustedFilter);
+ m_dirLister->emitChanges();
+
+ if (isColumnViewActive()) {
+ // adjusting the directory lister is not enough in the case of the
+ // column view, as each column has its own directory lister internally...
+ m_columnView->setNameFilter(nameFilter);
+ }
+}
+
+void DolphinView::calculateItemCount(int& fileCount, int& folderCount)
+{
+ foreach (KFileItem item, m_dirLister->items()) {
+ if (item.isDir()) {
+ ++folderCount;
+ } else {
+ ++fileCount;
+ }
+ }
+}
+
void DolphinView::setUrl(const KUrl& url)
{
updateView(url, KUrl());
const bool categorized = m_storedCategorizedSorting && supportsCategorizedSorting();
if (categorized != m_proxyModel->isCategorizedModel()) {
m_proxyModel->setCategorizedModel(categorized);
- m_proxyModel->sort(m_proxyModel->sortColumn(), m_proxyModel->sortOrder());
emit categorizedSortingChanged();
}
}
}
+KToggleAction* DolphinView::iconsModeAction(KActionCollection* actionCollection)
+{
+ KToggleAction* iconsView = actionCollection->add<KToggleAction>("icons");
+ iconsView->setText(i18nc("@action:inmenu View Mode", "Icons"));
+ iconsView->setShortcut(Qt::CTRL | Qt::Key_1);
+ iconsView->setIcon(KIcon("fileview-icon"));
+ iconsView->setData(QVariant::fromValue(IconsView));
+ return iconsView;
+}
+
+KToggleAction* DolphinView::detailsModeAction(KActionCollection* actionCollection)
+{
+ KToggleAction* detailsView = actionCollection->add<KToggleAction>("details");
+ detailsView->setText(i18nc("@action:inmenu View Mode", "Details"));
+ detailsView->setShortcut(Qt::CTRL | Qt::Key_2);
+ detailsView->setIcon(KIcon("fileview-detailed"));
+ detailsView->setData(QVariant::fromValue(DetailsView));
+ return detailsView;
+}
+
+KToggleAction* DolphinView::columnsModeAction(KActionCollection* actionCollection)
+{
+ KToggleAction* columnView = actionCollection->add<KToggleAction>("columns");
+ columnView->setText(i18nc("@action:inmenu View Mode", "Columns"));
+ columnView->setShortcut(Qt::CTRL | Qt::Key_3);
+ columnView->setIcon(KIcon("fileview-column"));
+ columnView->setData(QVariant::fromValue(ColumnView));
+ return columnView;
+}
+
+QString DolphinView::currentViewModeActionName() const
+{
+ switch (m_mode) {
+ case DolphinView::IconsView:
+ return "icons";
+ case DolphinView::DetailsView:
+ return "details";
+ case DolphinView::ColumnView:
+ return "columns";
+ }
+ return QString(); // can't happen
+}
+
#include "dolphinview.moc"