diff options
| author | Peter Penz <[email protected]> | 2012-03-13 16:26:16 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-03-13 16:29:45 +0100 |
| commit | f041099904d809b5370285185fbbb2303c40b953 (patch) | |
| tree | 5070608d5c19033a119bec98b9466d889bd8bd7c /src/settings | |
| parent | 6c60bf0ad54258976d9dcbd6586b26c65d8d4b78 (diff) | |
Remove RolesInfoAccessor
Now KFileItemModel provides a way to access the available roles
including their translations. Note that the 3 roles "comments",
"rating" and "tags" have not been implemented yet in KFileItemModel
and turning them on does not work currently.
Diffstat (limited to 'src/settings')
| -rw-r--r-- | src/settings/additionalinfodialog.cpp | 41 | ||||
| -rw-r--r-- | src/settings/additionalinfodialog.h | 5 | ||||
| -rw-r--r-- | src/settings/viewpropertiesdialog.cpp | 20 |
3 files changed, 35 insertions, 31 deletions
diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp index 6bcee4a1b..9e5f170da 100644 --- a/src/settings/additionalinfodialog.cpp +++ b/src/settings/additionalinfodialog.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Peter Penz ([email protected]) * + * Copyright (C) 2007-2012 by Peter Penz <[email protected]> * * * * 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 * @@ -20,18 +20,16 @@ #include "additionalinfodialog.h" #include <KLocale> - +#include "kitemviews/kfileitemmodel.h" #include <QCheckBox> #include <QLabel> #include <QVBoxLayout> -#include "views/rolesaccessor.h" - AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, const QList<QByteArray>& visibleRoles) : KDialog(parent), m_visibleRoles(visibleRoles), - m_checkBoxes() + m_listWidget(0) { setCaption(i18nc("@title:window", "Additional Information")); setButtons(Ok | Cancel); @@ -39,30 +37,29 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, QWidget* mainWidget = new QWidget(this); mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - QVBoxLayout* layout = new QVBoxLayout(mainWidget); // Add header QLabel* header = new QLabel(mainWidget); header->setText(i18nc("@label", "Select which additional information should be shown:")); header->setWordWrap(true); - layout->addWidget(header); // Add checkboxes - const RolesAccessor& rolesAccessor = RolesAccessor::instance(); - const QList<QByteArray> roles = rolesAccessor.roles(); - foreach (const QByteArray& role, roles) { - QCheckBox* checkBox = new QCheckBox(rolesAccessor.translation(role), mainWidget); - checkBox->setChecked(visibleRoles.contains(role)); - layout->addWidget(checkBox); - m_checkBoxes.append(checkBox); + m_listWidget = new QListWidget(mainWidget); + m_listWidget->setSelectionMode(QAbstractItemView::NoSelection); + const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation(); + foreach (const KFileItemModel::RoleInfo& info, rolesInfo) { + QListWidgetItem* item = new QListWidgetItem(info.translation, m_listWidget); + item->setCheckState(visibleRoles.contains(info.role) ? Qt::Checked : Qt::Unchecked); } + QVBoxLayout* layout = new QVBoxLayout(mainWidget); + layout->addWidget(header); + layout->addWidget(m_listWidget); layout->addStretch(1); setMainWidget(mainWidget); - const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), - "AdditionalInfoDialog"); + const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog"); restoreDialogSize(dialogConfig); connect(this, SIGNAL(okClicked()), this, SLOT(slotOk())); @@ -70,8 +67,7 @@ AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent, AdditionalInfoDialog::~AdditionalInfoDialog() { - KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), - "AdditionalInfoDialog"); + KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"), "AdditionalInfoDialog"); saveDialogSize(dialogConfig, KConfigBase::Persistent); } @@ -84,11 +80,12 @@ void AdditionalInfoDialog::slotOk() { m_visibleRoles.clear(); - const QList<QByteArray> roles = RolesAccessor::instance().roles(); int index = 0; - foreach (const QByteArray& role, roles) { - if (m_checkBoxes[index]->isChecked()) { - m_visibleRoles.append(role); + const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation(); + foreach (const KFileItemModel::RoleInfo& info, rolesInfo) { + const QListWidgetItem* item = m_listWidget->item(index); + if (item->checkState() == Qt::Checked) { + m_visibleRoles.append(info.role); } ++index; } diff --git a/src/settings/additionalinfodialog.h b/src/settings/additionalinfodialog.h index 9048489cc..dd51768e5 100644 --- a/src/settings/additionalinfodialog.h +++ b/src/settings/additionalinfodialog.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Peter Penz ([email protected]) * + * Copyright (C) 2007-2012 by Peter Penz <[email protected]> * * * * 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 * @@ -22,6 +22,7 @@ #include <KDialog> #include <QList> +#include <QListWidget> class QCheckBox; @@ -42,7 +43,7 @@ private slots: private: QList<QByteArray> m_visibleRoles; - QList<QCheckBox*> m_checkBoxes; + QListWidget* m_listWidget; }; #endif diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp index 420daec8d..20461a394 100644 --- a/src/settings/viewpropertiesdialog.cpp +++ b/src/settings/viewpropertiesdialog.cpp @@ -21,7 +21,7 @@ #include "viewpropertiesdialog.h" #include "additionalinfodialog.h" -#include "views/rolesaccessor.h" +#include "kitemviews/kfileitemmodel.h" #include "views/dolphinview.h" #include "dolphin_generalsettings.h" #include "dolphin_iconsmodesettings.h" @@ -107,10 +107,9 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) : m_sortOrder->addItem(i18nc("@item:inlistbox Sort", "Descending")); m_sorting = new KComboBox(sortingBox); - const RolesAccessor& rolesAccessor = RolesAccessor::instance(); - const QList<QByteArray> roles = rolesAccessor.roles(); - foreach (const QByteArray& role, roles) { - m_sorting->addItem(rolesAccessor.translation(role), role); + const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation(); + foreach (const KFileItemModel::RoleInfo& info, rolesInfo) { + m_sorting->addItem(info.translation, info.role); } m_sortFoldersFirst = new QCheckBox(i18nc("@option:check", "Show folders first")); @@ -393,8 +392,15 @@ void ViewPropertiesDialog::loadSettings() const int sortOrderIndex = (m_viewProps->sortOrder() == Qt::AscendingOrder) ? 0 : 1; m_sortOrder->setCurrentIndex(sortOrderIndex); - const QList<QByteArray> roles = RolesAccessor::instance().roles(); - const int sortRoleIndex = roles.indexOf(m_viewProps->sortRole()); + const QList<KFileItemModel::RoleInfo> rolesInfo = KFileItemModel::rolesInformation(); + int sortRoleIndex = 0; + for (int i = 0; i < rolesInfo.count(); ++i) + foreach (const KFileItemModel::RoleInfo& info, rolesInfo) { + if (info.role == m_viewProps->sortRole()) { + sortRoleIndex = i; + break; + } + } m_sorting->setCurrentIndex(sortRoleIndex); m_sortFoldersFirst->setChecked(m_viewProps->sortFoldersFirst()); |
