┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2012-03-13 16:26:16 +0100
committerPeter Penz <[email protected]>2012-03-13 16:29:45 +0100
commitf041099904d809b5370285185fbbb2303c40b953 (patch)
tree5070608d5c19033a119bec98b9466d889bd8bd7c /src/settings
parent6c60bf0ad54258976d9dcbd6586b26c65d8d4b78 (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.cpp41
-rw-r--r--src/settings/additionalinfodialog.h5
-rw-r--r--src/settings/viewpropertiesdialog.cpp20
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());