1 /***************************************************************************
2 * Copyright (C) 2010 by Peter Penz <peter.penz19@gmail.com> *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
18 ***************************************************************************/
20 #include "additionalinfoaccessor.h"
25 class AdditionalInfoAccessorSingleton
28 AdditionalInfoAccessor instance
;
30 K_GLOBAL_STATIC(AdditionalInfoAccessorSingleton
, s_additionalInfoManager
)
32 AdditionalInfoAccessor
& AdditionalInfoAccessor::instance()
34 return s_additionalInfoManager
->instance
;
37 QList
<DolphinView::AdditionalInfo
> AdditionalInfoAccessor::keys() const
42 QByteArray
AdditionalInfoAccessor::role(DolphinView::AdditionalInfo info
) const
46 case DolphinView::NameInfo
: role
= "name"; break;
47 case DolphinView::SizeInfo
: role
= "size"; break;
48 case DolphinView::DateInfo
: role
= "date"; break;
49 case DolphinView::PermissionsInfo
: role
= "permissions"; break;
50 case DolphinView::OwnerInfo
: role
= "owner"; break;
51 case DolphinView::GroupInfo
: role
= "group"; break;
52 case DolphinView::TypeInfo
: role
= "type"; break;
53 case DolphinView::DestinationInfo
: role
= "destination"; break;
54 case DolphinView::PathInfo
: role
= "path"; break;
61 QString
AdditionalInfoAccessor::actionCollectionName(DolphinView::AdditionalInfo info
,
62 ActionCollectionType type
) const
67 name
= QLatin1String("sort_by_") + QLatin1String(m_map
[info
]->actionCollectionName
);
70 case AdditionalInfoType
:
71 name
= QLatin1String("show_") + QLatin1String(m_map
[info
]->actionCollectionName
);
78 QString
AdditionalInfoAccessor::translation(DolphinView::AdditionalInfo info
) const
80 return i18nc(m_map
[info
]->context
, m_map
[info
]->translation
);
83 QString
AdditionalInfoAccessor::value(DolphinView::AdditionalInfo info
) const
85 return m_map
[info
]->value
;
88 DolphinView::Sorting
AdditionalInfoAccessor::sorting(DolphinView::AdditionalInfo info
) const
90 return m_map
[info
]->sorting
;
93 AdditionalInfoAccessor::AdditionalInfoAccessor() :
97 static const AdditionalInfoAccessor::AdditionalInfo additionalInfo
[] = {
98 // Entries for view-properties version 1:
99 { "size", I18N_NOOP2_NOSTRIP("@label", "Size"), "Size", DolphinView::SortBySize
},
100 { "date", I18N_NOOP2_NOSTRIP("@label", "Date"), "Date", DolphinView::SortByDate
},
101 { "permissions", I18N_NOOP2_NOSTRIP("@label", "Permissions"), "Permissions", DolphinView::SortByPermissions
},
102 { "owner", I18N_NOOP2_NOSTRIP("@label", "Owner"), "Owner", DolphinView::SortByOwner
},
103 { "group", I18N_NOOP2_NOSTRIP("@label", "Group"), "Group", DolphinView::SortByGroup
},
104 { "type", I18N_NOOP2_NOSTRIP("@label", "Type"), "Type", DolphinView::SortByType
},
105 { "destination", I18N_NOOP2_NOSTRIP("@label", "Link Destination"), "LinkDestination", DolphinView::SortByDestination
},
106 { "path", I18N_NOOP2_NOSTRIP("@label", "Path"), "Path", DolphinView::SortByPath
}
109 m_map
.insert(DolphinView::SizeInfo
, &additionalInfo
[0]);
110 m_map
.insert(DolphinView::DateInfo
, &additionalInfo
[1]);
111 m_map
.insert(DolphinView::PermissionsInfo
, &additionalInfo
[2]);
112 m_map
.insert(DolphinView::OwnerInfo
, &additionalInfo
[3]);
113 m_map
.insert(DolphinView::GroupInfo
, &additionalInfo
[4]);
114 m_map
.insert(DolphinView::TypeInfo
, &additionalInfo
[5]);
115 m_map
.insert(DolphinView::DestinationInfo
, &additionalInfo
[6]);
116 m_map
.insert(DolphinView::PathInfo
, &additionalInfo
[7]);
118 // The m_infoList defines all available keys and the sort order
119 // (don't use m_information = m_map.keys(), as the order would be undefined).
120 m_infoList
.append(DolphinView::SizeInfo
);
121 m_infoList
.append(DolphinView::DateInfo
);
122 m_infoList
.append(DolphinView::PermissionsInfo
);
123 m_infoList
.append(DolphinView::OwnerInfo
);
124 m_infoList
.append(DolphinView::GroupInfo
);
125 m_infoList
.append(DolphinView::TypeInfo
);
126 m_infoList
.append(DolphinView::DestinationInfo
);
127 m_infoList
.append(DolphinView::PathInfo
);
130 AdditionalInfoAccessor::~AdditionalInfoAccessor()