X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a5cf21ff06aff44cde563eaceae3c6cef452ee48..956d32ed16f69ccde41f5ee74a158676d336a383:/src/views/additionalinfoaccessor.cpp diff --git a/src/views/additionalinfoaccessor.cpp b/src/views/additionalinfoaccessor.cpp index 1b445cc99..b102282a6 100644 --- a/src/views/additionalinfoaccessor.cpp +++ b/src/views/additionalinfoaccessor.cpp @@ -19,9 +19,8 @@ #include "additionalinfoaccessor.h" -#include "dolphinmodel.h" -#include -#include +#include +#include class AdditionalInfoAccessorSingleton { @@ -35,96 +34,83 @@ AdditionalInfoAccessor& AdditionalInfoAccessor::instance() return s_additionalInfoManager->instance; } -KFileItemDelegate::InformationList AdditionalInfoAccessor::keys() const +QList 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); } -DolphinView::Sorting AdditionalInfoAccessor::sorting(KFileItemDelegate::Information info) const +QString AdditionalInfoAccessor::value(DolphinView::AdditionalInfo info) const { - return m_map[info]->sorting; + return m_map[info]->value; } -int AdditionalInfoAccessor::bitValue(KFileItemDelegate::Information info) const +DolphinView::Sorting AdditionalInfoAccessor::sorting(DolphinView::AdditionalInfo info) const { - return m_map[info]->bitValue; + return m_map[info]->sorting; } AdditionalInfoAccessor::AdditionalInfoAccessor() : - m_informations(), - m_map() + m_map(), + m_infoForRole() { - static const AdditionalInfoAccessor::AdditionalInfo additionalInfos[] = { - { "size", I18N_NOOP2_NOSTRIP("@label", "Size"), DolphinView::SortBySize, 1 }, - { "date", I18N_NOOP2_NOSTRIP("@label", "Date"), DolphinView::SortByDate, 2 }, - { "permissions", I18N_NOOP2_NOSTRIP("@label", "Permissions"), DolphinView::SortByPermissions, 4 }, - { "owner", I18N_NOOP2_NOSTRIP("@label", "Owner"), DolphinView::SortByOwner, 8 }, - { "group", I18N_NOOP2_NOSTRIP("@label", "Group"), DolphinView::SortByGroup, 16 }, - { "type", I18N_NOOP2_NOSTRIP("@label", "Type"), DolphinView::SortByType, 32 }, - { "destination", I18N_NOOP2_NOSTRIP("@label", "Link Destination"), DolphinView::SortByDestination, 64 }, - { "path", I18N_NOOP2_NOSTRIP("@label", "Path"), DolphinView::SortByPath, 128 } + 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 it(m_map); + while (it.hasNext()) { + it.next(); + m_infoForRole.insert(it.value()->role, it.key()); + } } AdditionalInfoAccessor::~AdditionalInfoAccessor()