#include "additionalinfoaccessor.h"
-#include "dolphinmodel.h"
-#include <kglobal.h>
-#include <klocale.h>
+#include <KGlobal>
+#include <KLocale>
class AdditionalInfoAccessorSingleton
{
return s_additionalInfoManager->instance;
}
-KFileItemDelegate::InformationList AdditionalInfoAccessor::keys() const
+QList<DolphinView::AdditionalInfo> AdditionalInfoAccessor::keys() const
{
- return m_informations;
+ return m_map.keys();
}
-KFileItemDelegate::Information AdditionalInfoAccessor::keyForColumn(int columnIndex) const
+QByteArray AdditionalInfoAccessor::role(DolphinView::AdditionalInfo info) const
{
- KFileItemDelegate::Information info = KFileItemDelegate::NoInformation;
-
- switch (columnIndex) {
- case DolphinModel::Size: info = KFileItemDelegate::Size; break;
- case DolphinModel::ModifiedTime: info = KFileItemDelegate::ModificationTime; break;
- case DolphinModel::Permissions: info = KFileItemDelegate::Permissions; break;
- case DolphinModel::Owner: info = KFileItemDelegate::Owner; break;
- case DolphinModel::Group: info = KFileItemDelegate::OwnerAndGroup; break;
- case DolphinModel::Type: info = KFileItemDelegate::FriendlyMimeType; break;
- case DolphinModel::LinkDest: info = KFileItemDelegate::LinkDest; break;
- case DolphinModel::LocalPathOrUrl: info = KFileItemDelegate::LocalPathOrUrl; break;
- default: break;
- }
+ return m_map[info]->role;
+}
- return info;
+DolphinView::AdditionalInfo AdditionalInfoAccessor::additionalInfo(const QByteArray& role) const
+{
+ return m_infoForRole.value(role);
}
-QString AdditionalInfoAccessor::actionCollectionName(KFileItemDelegate::Information info,
+QString AdditionalInfoAccessor::actionCollectionName(DolphinView::AdditionalInfo info,
ActionCollectionType type) const
{
QString name;
switch (type) {
case SortByType:
- name = QLatin1String("sort_by_") + QLatin1String(m_map[info]->actionCollectionName);
+ name = QLatin1String("sort_by_") + QLatin1String(m_map[info]->role);
break;
case AdditionalInfoType:
- name = QLatin1String("show_") + QLatin1String(m_map[info]->actionCollectionName);
+ name = QLatin1String("show_") + QLatin1String(m_map[info]->role);
break;
}
return name;
}
-QString AdditionalInfoAccessor::translation(KFileItemDelegate::Information info) const
+QString AdditionalInfoAccessor::translation(DolphinView::AdditionalInfo info) const
{
- return i18nc(m_map[info]->context, m_map[info]->translation);
+ return i18nc(m_map[info]->roleTranslationContext, m_map[info]->roleTranslation);
}
-QString AdditionalInfoAccessor::value(KFileItemDelegate::Information info) const
+QString AdditionalInfoAccessor::value(DolphinView::AdditionalInfo info) const
{
return m_map[info]->value;
}
-DolphinView::Sorting AdditionalInfoAccessor::sorting(KFileItemDelegate::Information info) const
+DolphinView::Sorting AdditionalInfoAccessor::sorting(DolphinView::AdditionalInfo info) const
{
return m_map[info]->sorting;
}
-int AdditionalInfoAccessor::bitValue(KFileItemDelegate::Information info) const
-{
- return m_map[info]->bitValue;
-}
-
AdditionalInfoAccessor::AdditionalInfoAccessor() :
- m_informations(),
- m_map()
+ m_map(),
+ m_infoForRole()
{
- static const AdditionalInfoAccessor::AdditionalInfo additionalInfos[] = {
- // Entries for view-properties version 1:
- { "size", I18N_NOOP2_NOSTRIP("@label", "Size"), "Size", DolphinView::SortBySize, 1 },
- { "date", I18N_NOOP2_NOSTRIP("@label", "Date"), "Date", DolphinView::SortByDate, 2 },
- { "permissions", I18N_NOOP2_NOSTRIP("@label", "Permissions"), "Permissions", DolphinView::SortByPermissions, 4 },
- { "owner", I18N_NOOP2_NOSTRIP("@label", "Owner"), "Owner", DolphinView::SortByOwner, 8 },
- { "group", I18N_NOOP2_NOSTRIP("@label", "Group"), "Group", DolphinView::SortByGroup, 16 },
- { "type", I18N_NOOP2_NOSTRIP("@label", "Type"), "Type", DolphinView::SortByType, 32 },
- { "destination", I18N_NOOP2_NOSTRIP("@label", "Link Destination"), "LinkDestination", DolphinView::SortByDestination, 64 },
- { "path", I18N_NOOP2_NOSTRIP("@label", "Path"), "Path", DolphinView::SortByPath, 128 }
- // Entries for view-properties version >= 2 (the last column can be set to 0):
+ static const AdditionalInfoAccessor::AdditionalInfo additionalInfo[] = {
+ // role roleTranslationContext roleTranslation value sorting
+ { "size", I18N_NOOP2_NOSTRIP("@label", "Size"), "Size", DolphinView::SortBySize},
+ { "date", I18N_NOOP2_NOSTRIP("@label", "Date"), "Date", DolphinView::SortByDate},
+ { "permissions", I18N_NOOP2_NOSTRIP("@label", "Permissions"), "Permissions", DolphinView::SortByPermissions},
+ { "owner", I18N_NOOP2_NOSTRIP("@label", "Owner"), "Owner", DolphinView::SortByOwner},
+ { "group", I18N_NOOP2_NOSTRIP("@label", "Group"), "Group", DolphinView::SortByGroup},
+ { "type", I18N_NOOP2_NOSTRIP("@label", "Type"), "Type", DolphinView::SortByType},
+ { "destination", I18N_NOOP2_NOSTRIP("@label", "Link Destination"), "LinkDestination", DolphinView::SortByDestination},
+ { "path", I18N_NOOP2_NOSTRIP("@label", "Path"), "Path", DolphinView::SortByPath}
};
- m_map.insert(KFileItemDelegate::Size, &additionalInfos[0]);
- m_map.insert(KFileItemDelegate::ModificationTime, &additionalInfos[1]);
- m_map.insert(KFileItemDelegate::Permissions, &additionalInfos[2]);
- m_map.insert(KFileItemDelegate::Owner, &additionalInfos[3]);
- m_map.insert(KFileItemDelegate::OwnerAndGroup, &additionalInfos[4]);
- m_map.insert(KFileItemDelegate::FriendlyMimeType, &additionalInfos[5]);
- m_map.insert(KFileItemDelegate::LinkDest, &additionalInfos[6]);
- m_map.insert(KFileItemDelegate::LocalPathOrUrl, &additionalInfos[7]);
-
- // The m_informations list defines all available keys and the sort order
- // (don't use m_informations = m_map.keys(), as the order is undefined).
- m_informations.append(KFileItemDelegate::Size);
- m_informations.append(KFileItemDelegate::ModificationTime);
- m_informations.append(KFileItemDelegate::Permissions);
- m_informations.append(KFileItemDelegate::Owner);
- m_informations.append(KFileItemDelegate::OwnerAndGroup);
- m_informations.append(KFileItemDelegate::FriendlyMimeType);
- m_informations.append(KFileItemDelegate::LinkDest);
- m_informations.append(KFileItemDelegate::LocalPathOrUrl);
+ m_map.insert(DolphinView::SizeInfo, &additionalInfo[0]);
+ m_map.insert(DolphinView::DateInfo, &additionalInfo[1]);
+ m_map.insert(DolphinView::PermissionsInfo, &additionalInfo[2]);
+ m_map.insert(DolphinView::OwnerInfo, &additionalInfo[3]);
+ m_map.insert(DolphinView::GroupInfo, &additionalInfo[4]);
+ m_map.insert(DolphinView::TypeInfo, &additionalInfo[5]);
+ m_map.insert(DolphinView::DestinationInfo, &additionalInfo[6]);
+ m_map.insert(DolphinView::PathInfo, &additionalInfo[7]);
+
+ QMapIterator<DolphinView::AdditionalInfo, const AdditionalInfo*> it(m_map);
+ while (it.hasNext()) {
+ it.next();
+ m_infoForRole.insert(it.value()->role, it.key());
+ }
}
AdditionalInfoAccessor::~AdditionalInfoAccessor()