***************************************************************************/
#include "dolphinview.h"
-#include <ktoggleaction.h>
-#include <kactioncollection.h>
#include <QApplication>
#include <QClipboard>
#include <QTimer>
#include <QScrollBar>
+#include <kactioncollection.h>
#include <kcolorscheme.h>
#include <kdirlister.h>
#include <kfileitemdelegate.h>
#include <kmimetyperesolver.h>
#include <konqmimedata.h>
#include <konq_operations.h>
+#include <ktoggleaction.h>
#include <kurl.h>
#include "dolphindropcontroller.h"
deleteView();
- // It is important to read the view properties _after_ deleting the view,
- // as e. g. the detail view might adjust the additional information properties
- // after getting closed:
const KUrl viewPropsUrl = viewPropertiesUrl();
ViewProperties props(viewPropsUrl);
props.setViewMode(m_mode);
void DolphinView::selectAll()
{
- itemView()->selectAll();
+ QAbstractItemView* view = itemView();
+ // TODO: there seems to be a bug in QAbstractItemView::selectAll(); if
+ // the Ctrl-key is pressed (e. g. for Ctrl+A), selectAll() inverts the
+ // selection instead of selecting all items. This is bypassed for KDE 4.0
+ // by invoking clearSelection() first.
+ view->clearSelection();
+ view->selectAll();
}
void DolphinView::invertSelection()
emit sortOrderChanged(order);
}
+void DolphinView::toggleSortOrder()
+{
+ const Qt::SortOrder order = (sortOrder() == Qt::AscendingOrder) ?
+ Qt::DescendingOrder :
+ Qt::AscendingOrder;
+ setSortOrder(order);
+}
+
void DolphinView::updateAdditionalInfo(const KFileItemDelegate::InformationList& info)
{
ViewProperties props(viewPropertiesUrl());
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->setIcon(KIcon("view-list-icons"));
iconsView->setData(QVariant::fromValue(IconsView));
return iconsView;
}
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->setIcon(KIcon("view-list-details"));
detailsView->setData(QVariant::fromValue(DetailsView));
return detailsView;
}
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->setIcon(KIcon("view-file-columns"));
columnView->setData(QVariant::fromValue(ColumnView));
return columnView;
}
}
if (ret.first) {
- const KUrl::List urls = selectedUrls();
- const uint count = urls.count();
+ const KFileItemList items = selectedItems();
+ const uint count = items.count();
if (count > 1) {
// pasting should not be allowed when more than one file
// is selected
} else if (count == 1) {
// Only one file is selected. Pasting is only allowed if this
// file is a directory.
- // TODO: this doesn't work with remote protocols; instead we need a
- // m_activeViewContainer->selectedFileItems() to get the real KFileItems
- const KFileItem fileItem(S_IFDIR,
- KFileItem::Unknown,
- urls.first(),
- true);
- ret.first = fileItem.isDir();
+ ret.first = items.first().isDir();
}
}
return ret;
return deleteAction;
}
+KAction* DolphinView::createNewDirAction(KActionCollection* collection)
+{
+ // This action doesn't appear in the GUI, it's for the shortcut only.
+ // KNewMenu takes care of the GUI stuff.
+ KAction* newDirAction = collection->addAction("create_dir");
+ newDirAction->setText(i18n("Create Folder..."));
+ newDirAction->setShortcut(Qt::Key_F10);
+ return newDirAction;
+}
+
+KAction* DolphinView::createSortDescendingAction(KActionCollection* collection)
+{
+ KToggleAction* sortDescending = collection->add<KToggleAction>("descending");
+ sortDescending->setText(i18nc("@action:inmenu Sort", "Descending"));
+ return sortDescending;
+}
+
+QActionGroup* DolphinView::createAdditionalInformationActionGroup(KActionCollection* collection)
+{
+ QActionGroup* showInformationGroup = new QActionGroup(collection);
+
+ KToggleAction* showSizeInfo = collection->add<KToggleAction>("show_size_info");
+ showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size"));
+ showSizeInfo->setData(KFileItemDelegate::Size);
+ showSizeInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showDateInfo = collection->add<KToggleAction>("show_date_info");
+ showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date"));
+ showDateInfo->setData(KFileItemDelegate::ModificationTime);
+ showDateInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showPermissionsInfo = collection->add<KToggleAction>("show_permissions_info");
+ showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions"));
+ showPermissionsInfo->setData(KFileItemDelegate::Permissions);
+ showPermissionsInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showOwnerInfo = collection->add<KToggleAction>("show_owner_info");
+ showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner"));
+ showOwnerInfo->setData(KFileItemDelegate::Owner);
+ showOwnerInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showGroupInfo = collection->add<KToggleAction>("show_group_info");
+ showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group"));
+ showGroupInfo->setData(KFileItemDelegate::OwnerAndGroup);
+ showGroupInfo->setActionGroup(showInformationGroup);
+
+ KToggleAction* showMimeInfo = collection->add<KToggleAction>("show_mime_info");
+ showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type"));
+ showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType);
+ showMimeInfo->setActionGroup(showInformationGroup);
+
+ return showInformationGroup;
+}
+
#include "dolphinview.moc"