- KToggleAction* sortBySize = m_actionCollection->add<KToggleAction>("sort_by_size");
- sortBySize->setText(i18nc("@action:inmenu Sort By", "Size"));
- sortBySize->setData(QVariant::fromValue(DolphinView::SortBySize));
- sortByActionGroup->addAction(sortBySize);
-
- KToggleAction* sortByDate = m_actionCollection->add<KToggleAction>("sort_by_date");
- sortByDate->setText(i18nc("@action:inmenu Sort By", "Date"));
- sortByDate->setData(QVariant::fromValue(DolphinView::SortByDate));
- sortByActionGroup->addAction(sortByDate);
-
- KToggleAction* sortByPermissions = m_actionCollection->add<KToggleAction>("sort_by_permissions");
- sortByPermissions->setText(i18nc("@action:inmenu Sort By", "Permissions"));
- sortByPermissions->setData(QVariant::fromValue(DolphinView::SortByPermissions));
- sortByActionGroup->addAction(sortByPermissions);
-
- KToggleAction* sortByOwner = m_actionCollection->add<KToggleAction>("sort_by_owner");
- sortByOwner->setText(i18nc("@action:inmenu Sort By", "Owner"));
- sortByOwner->setData(QVariant::fromValue(DolphinView::SortByOwner));
- sortByActionGroup->addAction(sortByOwner);
-
- KToggleAction* sortByGroup = m_actionCollection->add<KToggleAction>("sort_by_group");
- sortByGroup->setText(i18nc("@action:inmenu Sort By", "Group"));
- sortByGroup->setData(QVariant::fromValue(DolphinView::SortByGroup));
- sortByActionGroup->addAction(sortByGroup);
-
- KToggleAction* sortByType = m_actionCollection->add<KToggleAction>("sort_by_type");
- sortByType->setText(i18nc("@action:inmenu Sort By", "Type"));
- sortByType->setData(QVariant::fromValue(DolphinView::SortByType));
- sortByActionGroup->addAction(sortByType);
-
- // TODO: Hid "sort by rating" and "sort by tags" as without caching the performance
- // is too slow currently (Nepomuk will support caching in future releases).
- //
- // KToggleAction* sortByRating = m_actionCollection->add<KToggleAction>("sort_by_rating");
- // sortByRating->setData(QVariant::fromValue(DolphinView::SortByRating));
- // sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating"));
- // sortByActionGroup->addAction(sortByRating);
- //
- // KToggleAction* sortByTags = m_actionCollection->add<KToggleAction>("sort_by_tags");
- // sortByTags->setData(QVariant::fromValue(DolphinView::SortByTags));
- // sortByTags->setText(i18nc("@action:inmenu Sort By", "Tags"));
- // sortByActionGroup->addAction(sortByTags);
- //
-#ifdef HAVE_NEPOMUK
- // if (!MetaDataWidget::metaDataAvailable()) {
- // sortByRating->setEnabled(false);
- // sortByTags->setEnabled(false);
- // }
-#else
- // sortByRating->setEnabled(false);
- // sortByTags->setEnabled(false);
-#endif
-
-
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ const KFileItemDelegate::InformationList infos = infoAccessor.keys();
+ foreach (KFileItemDelegate::Information info, infos) {
+ const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::SortByType);
+ KToggleAction* action = m_actionCollection->add<KToggleAction>(name);
+ action->setText(infoAccessor.translation(info));
+ const DolphinView::Sorting sorting = infoAccessor.sorting(info);
+ action->setData(QVariant::fromValue(sorting));
+ sortByActionGroup->addAction(action);
+ }