From 4f0f6e6156adcb10964ea50379d78f0947f10f7e Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Fri, 14 May 2010 05:27:47 +0000 Subject: Rename AdditionalInfoManager to AdditionalInfoAccessor svn path=/trunk/KDE/kdebase/apps/; revision=1126483 --- src/CMakeLists.txt | 2 +- src/additionalinfoaccessor.cpp | 107 +++++++++++++++++++++++++++++++++++++++ src/additionalinfoaccessor.h | 88 ++++++++++++++++++++++++++++++++ src/additionalinfomanager.cpp | 107 --------------------------------------- src/additionalinfomanager.h | 88 -------------------------------- src/dolphindetailsview.cpp | 4 +- src/dolphinview.cpp | 8 +-- src/dolphinviewactionhandler.cpp | 18 +++---- src/viewproperties.cpp | 18 +++---- 9 files changed, 220 insertions(+), 220 deletions(-) create mode 100644 src/additionalinfoaccessor.cpp create mode 100644 src/additionalinfoaccessor.h delete mode 100644 src/additionalinfomanager.cpp delete mode 100644 src/additionalinfomanager.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c2b0fca80..e266fd1cc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,7 +16,7 @@ endif (Nepomuk_FOUND) ########### next target ############### set(dolphinprivate_LIB_SRCS - additionalinfomanager.cpp + additionalinfoaccessor.cpp dolphindetailsview.cpp dolphindetailsviewexpander.cpp dolphiniconsview.cpp diff --git a/src/additionalinfoaccessor.cpp b/src/additionalinfoaccessor.cpp new file mode 100644 index 000000000..505da3f4c --- /dev/null +++ b/src/additionalinfoaccessor.cpp @@ -0,0 +1,107 @@ +/*************************************************************************** + * Copyright (C) 2010 by Peter Penz * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#include "additionalinfoaccessor.h" + +#include "dolphinmodel.h" +#include +#include + +class AdditionalInfoAccessorSingleton +{ +public: + AdditionalInfoAccessor instance; +}; +K_GLOBAL_STATIC(AdditionalInfoAccessorSingleton, s_additionalInfoManager) + +AdditionalInfoAccessor& AdditionalInfoAccessor::instance() +{ + return s_additionalInfoManager->instance; +} + +KFileItemDelegate::InformationList AdditionalInfoAccessor::keys() const +{ + return m_informations; +} + +KFileItemDelegate::Information AdditionalInfoAccessor::keyForColumn(int columnIndex) 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 info; +} + +QString AdditionalInfoAccessor::actionCollectionName(KFileItemDelegate::Information info) const +{ + return QLatin1String(m_map[info]->actionCollectionName); +} + +QString AdditionalInfoAccessor::translation(KFileItemDelegate::Information info) const +{ + return i18n(m_map[info]->translation); +} + +int AdditionalInfoAccessor::bitValue(KFileItemDelegate::Information info) const +{ + return m_map[info]->bitValue; +} + +AdditionalInfoAccessor::AdditionalInfoAccessor() : + m_informations(), + m_map() +{ + static const AdditionalInfoAccessor::AdditionalInfo additionalInfos[] = { + { "size", I18N_NOOP2("@label", "Size"), 1 }, + { "date", I18N_NOOP2("@label", "Date"), 2 }, + { "permissions", I18N_NOOP2("@label", "Permissions"), 4 }, + { "owner", I18N_NOOP2("@label", "Owner"), 8 }, + { "group", I18N_NOOP2("@label", "Group"), 16 }, + { "type", I18N_NOOP2("@label", "Type"), 32 }, + { "destination", I18N_NOOP2("@label", "Destination"), 64 }, + { "path", I18N_NOOP2("@label", "Path"), 128 } + }; + + 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]); + + m_informations = m_map.keys(); +} + +AdditionalInfoAccessor::~AdditionalInfoAccessor() +{ +} + diff --git a/src/additionalinfoaccessor.h b/src/additionalinfoaccessor.h new file mode 100644 index 000000000..4e8df46a8 --- /dev/null +++ b/src/additionalinfoaccessor.h @@ -0,0 +1,88 @@ +/*************************************************************************** + * Copyright (C) 2010 by Peter Penz * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef ADDITIONALINFOACCESSOR_H +#define ADDITIONALINFOACCESSOR_H + +#include +#include + +#include +#include + +/** + * @brief Allows to access the information that is available by KFileItemDelegate::Information. + * + * The information that is available by KFileItemDelegate::Information will be shown + * in Dolphin the following way: + * - As additional columns in the details view + * - As additional lines in the icons view + * - As menu entries in the "Sort By" and "Additional Information" groups + * - As popup menu entries in the details view header popup + * - As checkable entries in the View Properties dialog + * + * The AdditionalInfoAccessor provides a central place to get all available keys, + * the corresponding translations, action names, etc., so that modifications or + * extensions in KFileItemDelegate only require adjustments in the implementation + * of this class. + */ +class LIBDOLPHINPRIVATE_EXPORT AdditionalInfoAccessor +{ +public: + static AdditionalInfoAccessor& instance(); + + /** + * @return List of all available information entries of KFileItemDelegate. + * All entries of this list are keys for accessing the corresponding + * data (see actionCollectionName(), translation(), bitValue()). + */ + KFileItemDelegate::InformationList keys() const; + + /** + * @return Key for the model column with the index \p columnIndex. + */ + KFileItemDelegate::Information keyForColumn(int columnIndex) const; + + QString actionCollectionName(KFileItemDelegate::Information info) const; + + QString translation(KFileItemDelegate::Information info) const; + + /** + * @return Bitvalue for \p info that is stored in a ViewProperties instance. + */ + int bitValue(KFileItemDelegate::Information info) const; + +protected: + AdditionalInfoAccessor(); + virtual ~AdditionalInfoAccessor(); + friend class AdditionalInfoAccessorSingleton; + +private: + struct AdditionalInfo { + const char* const actionCollectionName; + const char* const translation; + const int bitValue; + }; + + KFileItemDelegate::InformationList m_informations; + QMap m_map; +}; + +#endif + diff --git a/src/additionalinfomanager.cpp b/src/additionalinfomanager.cpp deleted file mode 100644 index e27bcd262..000000000 --- a/src/additionalinfomanager.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2010 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ - -#include "additionalinfomanager.h" - -#include "dolphinmodel.h" -#include -#include - -class AdditionalInfoManagerSingleton -{ -public: - AdditionalInfoManager instance; -}; -K_GLOBAL_STATIC(AdditionalInfoManagerSingleton, s_additionalInfoManager) - -AdditionalInfoManager& AdditionalInfoManager::instance() -{ - return s_additionalInfoManager->instance; -} - -KFileItemDelegate::InformationList AdditionalInfoManager::keys() const -{ - return m_informations; -} - -KFileItemDelegate::Information AdditionalInfoManager::keyForColumn(int columnIndex) 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 info; -} - -QString AdditionalInfoManager::actionCollectionName(KFileItemDelegate::Information info) const -{ - return QLatin1String(m_map[info]->actionCollectionName); -} - -QString AdditionalInfoManager::translation(KFileItemDelegate::Information info) const -{ - return i18n(m_map[info]->translation); -} - -int AdditionalInfoManager::bitValue(KFileItemDelegate::Information info) const -{ - return m_map[info]->bitValue; -} - -AdditionalInfoManager::AdditionalInfoManager() : - m_informations(), - m_map() -{ - static const AdditionalInfoManager::AdditionalInfo additionalInfos[] = { - { "size", I18N_NOOP2("@label", "Size"), 1 }, - { "date", I18N_NOOP2("@label", "Date"), 2 }, - { "permissions", I18N_NOOP2("@label", "Permissions"), 4 }, - { "owner", I18N_NOOP2("@label", "Owner"), 8 }, - { "group", I18N_NOOP2("@label", "Group"), 16 }, - { "type", I18N_NOOP2("@label", "Type"), 32 }, - { "destination", I18N_NOOP2("@label", "Destination"), 64 }, - { "path", I18N_NOOP2("@label", "Path"), 128 } - }; - - 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]); - - m_informations = m_map.keys(); -} - -AdditionalInfoManager::~AdditionalInfoManager() -{ -} - diff --git a/src/additionalinfomanager.h b/src/additionalinfomanager.h deleted file mode 100644 index 83b62c158..000000000 --- a/src/additionalinfomanager.h +++ /dev/null @@ -1,88 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2010 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ - -#ifndef ADDITIONALINFOMANAGER_H -#define ADDITIONALINFOMANAGER_H - -#include -#include - -#include -#include - -/** - * @brief Manages the information that is available by KFileItemDelegate::Information. - * - * The information that is available by KFileItemDelegate::Information will be shown - * in Dolphin the following way: - * - As additional columns in the details view - * - As additional lines in the icons view - * - As menu entries in the "Sort By" and "Additional Information" groups - * - As popup menu entries in the details view header popup - * - As checkable entries in the View Properties dialog - * - * The AdditionalInfoManager provides a central place to get all available keys, - * the corresponding translations, action names, etc., so that modifications or - * extensions in KFileItemDelegate only require adjustments in the implementation - * of this class. - */ -class LIBDOLPHINPRIVATE_EXPORT AdditionalInfoManager -{ -public: - static AdditionalInfoManager& instance(); - - /** - * @return List of all available information entries of KFileItemDelegate. - * All entries of this list are keys for accessing the corresponding - * data (see actionCollectionName(), translation(), bitValue()). - */ - KFileItemDelegate::InformationList keys() const; - - /** - * @return Key for the model column with the index \p columnIndex. - */ - KFileItemDelegate::Information keyForColumn(int columnIndex) const; - - QString actionCollectionName(KFileItemDelegate::Information info) const; - - QString translation(KFileItemDelegate::Information info) const; - - /** - * @return Bitvalue for \p info that is stored in a ViewProperties instance. - */ - int bitValue(KFileItemDelegate::Information info) const; - -protected: - AdditionalInfoManager(); - virtual ~AdditionalInfoManager(); - friend class AdditionalInfoManagerSingleton; - -private: - struct AdditionalInfo { - const char* const actionCollectionName; - const char* const translation; - const int bitValue; - }; - - KFileItemDelegate::InformationList m_informations; - QMap m_map; -}; - -#endif - diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 130c9e9b3..ee4d3e42e 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -20,7 +20,7 @@ #include "dolphindetailsview.h" -#include "additionalinfomanager.h" +#include "additionalinfoaccessor.h" #include "dolphinmodel.h" #include "dolphinviewcontroller.h" #include "dolphinfileitemdelegate.h" @@ -992,7 +992,7 @@ void DolphinDetailsView::updateDecorationSize(bool showPreview) KFileItemDelegate::Information DolphinDetailsView::infoForColumn(int columnIndex) const { - return AdditionalInfoManager::instance().keyForColumn(columnIndex); + return AdditionalInfoAccessor::instance().keyForColumn(columnIndex); } void DolphinDetailsView::resizeColumns() diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 3cfeccfde..83f700374 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -49,7 +49,7 @@ #include #include -#include "additionalinfomanager.h" +#include "additionalinfoaccessor.h" #include "dolphinmodel.h" #include "dolphincolumnviewcontainer.h" #include "dolphinviewcontroller.h" @@ -972,16 +972,16 @@ void DolphinView::updateAdditionalInfo(const KFileItemDelegate::InformationList& void DolphinView::updateAdditionalInfoActions(KActionCollection* collection) { - const AdditionalInfoManager& infoManager = AdditionalInfoManager::instance(); + const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); const KFileItemDelegate::InformationList checkedInfos = m_viewAccessor.itemDelegate()->showInformation(); - const KFileItemDelegate::InformationList infos = infoManager.keys(); + const KFileItemDelegate::InformationList infos = infoAccessor.keys(); const bool enable = (m_mode == DolphinView::DetailsView) || (m_mode == DolphinView::IconsView); foreach (const KFileItemDelegate::Information& info, infos) { - QAction* action = collection->action(infoManager.actionCollectionName(info)); + QAction* action = collection->action(infoAccessor.actionCollectionName(info)); Q_ASSERT(action != 0); action->setEnabled(enable); action->setChecked(checkedInfos.contains(info)); diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 62dd4fcfa..2f98d8426 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -19,7 +19,7 @@ #include "dolphinviewactionhandler.h" -#include "additionalinfomanager.h" +#include "additionalinfoaccessor.h" #include "settings/viewpropertiesdialog.h" #include "dolphinview.h" #include "zoomlevelinfo.h" @@ -221,13 +221,13 @@ QActionGroup* DolphinViewActionHandler::createAdditionalInformationActionGroup() showInformationMenu->setText(i18nc("@action:inmenu View", "Additional Information")); showInformationMenu->setDelayed(false); - const AdditionalInfoManager& infoManager = AdditionalInfoManager::instance(); + const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); - const KFileItemDelegate::InformationList infos = infoManager.keys(); + const KFileItemDelegate::InformationList infos = infoAccessor.keys(); foreach (KFileItemDelegate::Information info, infos) { - const QString name = infoManager.actionCollectionName(info); + const QString name = infoAccessor.actionCollectionName(info); KToggleAction* action = m_actionCollection->add(name); - action->setText(infoManager.translation(info)); + action->setText(infoAccessor.translation(info)); action->setData(info); action->setActionGroup(additionalInfoGroup); } @@ -247,12 +247,12 @@ QActionGroup* DolphinViewActionHandler::createSortByActionGroup() sortByName->setData(QVariant::fromValue(DolphinView::SortByName)); sortByActionGroup->addAction(sortByName); - const AdditionalInfoManager& infoManager = AdditionalInfoManager::instance(); - const KFileItemDelegate::InformationList infos = infoManager.keys(); + const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); + const KFileItemDelegate::InformationList infos = infoAccessor.keys(); foreach (KFileItemDelegate::Information info, infos) { - const QString name = infoManager.actionCollectionName(info); + const QString name = infoAccessor.actionCollectionName(info); KToggleAction* action = m_actionCollection->add(name); - action->setText(infoManager.translation(info)); + action->setText(infoAccessor.translation(info)); // TODO: replace DolphinView::Sorting by KFileItemDelegate::Information! action->setData(QVariant::fromValue(DolphinView::SortByName)); sortByActionGroup->addAction(action); diff --git a/src/viewproperties.cpp b/src/viewproperties.cpp index d153e5427..9107828d6 100644 --- a/src/viewproperties.cpp +++ b/src/viewproperties.cpp @@ -20,7 +20,7 @@ #include "viewproperties.h" -#include "additionalinfomanager.h" +#include "additionalinfoaccessor.h" #include "settings/dolphinsettings.h" #include "dolphin_directoryviewpropertysettings.h" #include "dolphin_generalsettings.h" @@ -192,11 +192,11 @@ bool ViewProperties::sortFoldersFirst() const void ViewProperties::setAdditionalInfo(const KFileItemDelegate::InformationList& list) { - AdditionalInfoManager& infoManager = AdditionalInfoManager::instance(); + AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); int infoMask = 0; foreach (KFileItemDelegate::Information currentInfo, list) { - infoMask = infoMask | infoManager.bitValue(currentInfo); + infoMask = infoMask | infoAccessor.bitValue(currentInfo); } const int encodedInfo = encodedAdditionalInfo(infoMask); @@ -212,11 +212,11 @@ KFileItemDelegate::InformationList ViewProperties::additionalInfo() const const int decodedInfo = decodedAdditionalInfo(); - AdditionalInfoManager& infoManager = AdditionalInfoManager::instance(); - const KFileItemDelegate::InformationList infos = infoManager.keys(); + AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); + const KFileItemDelegate::InformationList infos = infoAccessor.keys(); foreach (const KFileItemDelegate::Information info, infos) { - if (decodedInfo & infoManager.bitValue(info)) { + if (decodedInfo & infoAccessor.bitValue(info)) { usedInfos.append(info); } } @@ -304,9 +304,9 @@ int ViewProperties::decodedAdditionalInfo() const if (decodedInfo == 0) { // A details view without any additional info makes no sense, hence // provide at least a size-info and date-info as fallback - AdditionalInfoManager& infoManager = AdditionalInfoManager::instance(); - decodedInfo = infoManager.bitValue(KFileItemDelegate::Size) | - infoManager.bitValue(KFileItemDelegate::ModificationTime); + AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance(); + decodedInfo = infoAccessor.bitValue(KFileItemDelegate::Size) | + infoAccessor.bitValue(KFileItemDelegate::ModificationTime); } break; case DolphinView::IconsView: -- cgit v1.3