#include <ktoggleaction.h>
#include <kurl.h>
+#include "additionalinfoaccessor.h"
#include "dolphinmodel.h"
#include "dolphincolumnviewcontainer.h"
#include "dolphinviewcontroller.h"
void DolphinView::updateAdditionalInfoActions(KActionCollection* collection)
{
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+
+ const KFileItemDelegate::InformationList checkedInfos = m_viewAccessor.itemDelegate()->showInformation();
+ const KFileItemDelegate::InformationList infos = infoAccessor.keys();
+
const bool enable = (m_mode == DolphinView::DetailsView) ||
(m_mode == DolphinView::IconsView);
- QAction* showSizeInfo = collection->action("show_size_info");
- QAction* showDateInfo = collection->action("show_date_info");
- QAction* showPermissionsInfo = collection->action("show_permissions_info");
- QAction* showOwnerInfo = collection->action("show_owner_info");
- QAction* showGroupInfo = collection->action("show_group_info");
- QAction* showMimeInfo = collection->action("show_mime_info");
-
- showSizeInfo->setChecked(false);
- showDateInfo->setChecked(false);
- showPermissionsInfo->setChecked(false);
- showOwnerInfo->setChecked(false);
- showGroupInfo->setChecked(false);
- showMimeInfo->setChecked(false);
-
- showSizeInfo->setEnabled(enable);
- showDateInfo->setEnabled(enable);
- showPermissionsInfo->setEnabled(enable);
- showOwnerInfo->setEnabled(enable);
- showGroupInfo->setEnabled(enable);
- showMimeInfo->setEnabled(enable);
-
- foreach (KFileItemDelegate::Information info, m_viewAccessor.itemDelegate()->showInformation()) {
- switch (info) {
- case KFileItemDelegate::Size:
- showSizeInfo->setChecked(true);
- break;
- case KFileItemDelegate::ModificationTime:
- showDateInfo->setChecked(true);
- break;
- case KFileItemDelegate::Permissions:
- showPermissionsInfo->setChecked(true);
- break;
- case KFileItemDelegate::Owner:
- showOwnerInfo->setChecked(true);
- break;
- case KFileItemDelegate::OwnerAndGroup:
- showGroupInfo->setChecked(true);
- break;
- case KFileItemDelegate::FriendlyMimeType:
- showMimeInfo->setChecked(true);
- break;
- default:
- break;
- }
+ foreach (const KFileItemDelegate::Information& info, infos) {
+ const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::AdditionalInfoType);
+ QAction* action = collection->action(name);
+ Q_ASSERT(action != 0);
+ action->setEnabled(enable);
+ action->setChecked(checkedInfos.contains(info));
}
}
if (!m_newFileNames.isEmpty()) {
// select all newly added items created by a paste operation or
- // a drag & drop operation
+ // a drag & drop operation, and clear the previous selection
+ m_viewAccessor.itemView()->clearSelection();
const int rowCount = m_viewAccessor.proxyModel()->rowCount();
QItemSelection selection;
for (int row = 0; row < rowCount; ++row) {
void DolphinView::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl)
{
- emit redirection(oldUrl, newUrl);
- m_viewModeController->redirectToUrl(newUrl); // #186947
+ if (oldUrl.equals(url(), KUrl::CompareWithoutTrailingSlash)) {
+ emit redirection(oldUrl, newUrl);
+ m_controller->redirectToUrl(newUrl); // #186947
+ }
}
void DolphinView::restoreContentsPosition()