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
44 return m_map
[info
]->role
;
47 DolphinView::AdditionalInfo
AdditionalInfoAccessor::additionalInfo(const QByteArray
& role
) const
49 return m_infoForRole
.value(role
);
52 QString
AdditionalInfoAccessor::actionCollectionName(DolphinView::AdditionalInfo info
,
53 ActionCollectionType type
) const
58 name
= QLatin1String("sort_by_") + QLatin1String(m_map
[info
]->role
);
61 case AdditionalInfoType
:
62 name
= QLatin1String("show_") + QLatin1String(m_map
[info
]->role
);
69 QString
AdditionalInfoAccessor::translation(DolphinView::AdditionalInfo info
) const
71 return i18nc(m_map
[info
]->roleTranslationContext
, m_map
[info
]->roleTranslation
);
74 QString
AdditionalInfoAccessor::value(DolphinView::AdditionalInfo info
) const
76 return m_map
[info
]->value
;
79 DolphinView::Sorting
AdditionalInfoAccessor::sorting(DolphinView::AdditionalInfo info
) const
81 return m_map
[info
]->sorting
;
84 AdditionalInfoAccessor::AdditionalInfoAccessor() :
88 static const AdditionalInfoAccessor::AdditionalInfo additionalInfo
[] = {
89 // role roleTranslationContext roleTranslation value sorting
90 { "size", I18N_NOOP2_NOSTRIP("@label", "Size"), "Size", DolphinView::SortBySize
},
91 { "date", I18N_NOOP2_NOSTRIP("@label", "Date"), "Date", DolphinView::SortByDate
},
92 { "permissions", I18N_NOOP2_NOSTRIP("@label", "Permissions"), "Permissions", DolphinView::SortByPermissions
},
93 { "owner", I18N_NOOP2_NOSTRIP("@label", "Owner"), "Owner", DolphinView::SortByOwner
},
94 { "group", I18N_NOOP2_NOSTRIP("@label", "Group"), "Group", DolphinView::SortByGroup
},
95 { "type", I18N_NOOP2_NOSTRIP("@label", "Type"), "Type", DolphinView::SortByType
},
96 { "destination", I18N_NOOP2_NOSTRIP("@label", "Link Destination"), "LinkDestination", DolphinView::SortByDestination
},
97 { "path", I18N_NOOP2_NOSTRIP("@label", "Path"), "Path", DolphinView::SortByPath
}
100 m_map
.insert(DolphinView::SizeInfo
, &additionalInfo
[0]);
101 m_map
.insert(DolphinView::DateInfo
, &additionalInfo
[1]);
102 m_map
.insert(DolphinView::PermissionsInfo
, &additionalInfo
[2]);
103 m_map
.insert(DolphinView::OwnerInfo
, &additionalInfo
[3]);
104 m_map
.insert(DolphinView::GroupInfo
, &additionalInfo
[4]);
105 m_map
.insert(DolphinView::TypeInfo
, &additionalInfo
[5]);
106 m_map
.insert(DolphinView::DestinationInfo
, &additionalInfo
[6]);
107 m_map
.insert(DolphinView::PathInfo
, &additionalInfo
[7]);
109 QMapIterator
<DolphinView::AdditionalInfo
, const AdditionalInfo
*> it(m_map
);
110 while (it
.hasNext()) {
112 m_infoForRole
.insert(it
.value()->role
, it
.key());
116 AdditionalInfoAccessor::~AdditionalInfoAccessor()