┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-05-14 16:55:43 +0000
committerPeter Penz <[email protected]>2010-05-14 16:55:43 +0000
commit949a2538f8821503657528a3afb9ee3572bf7807 (patch)
tree03cc69e6428b532d1c9fd3ce58cb6eebfb17448b /src/settings
parentf69f314c50b537e6abb38d958cc26f3238515df8 (diff)
Use the AdditionalInfoAccessor to be flexible for future changes/extensions in KFileItemDelegate.
svn path=/trunk/KDE/kdebase/apps/; revision=1126703
Diffstat (limited to 'src/settings')
-rw-r--r--src/settings/additionalinfodialog.cpp82
-rw-r--r--src/settings/additionalinfodialog.h14
-rw-r--r--src/settings/viewpropertiesdialog.cpp2
3 files changed, 44 insertions, 54 deletions
diff --git a/src/settings/additionalinfodialog.cpp b/src/settings/additionalinfodialog.cpp
index 2f735fffe..109213fe7 100644
--- a/src/settings/additionalinfodialog.cpp
+++ b/src/settings/additionalinfodialog.cpp
@@ -19,48 +19,52 @@
#include "additionalinfodialog.h"
+#include "additionalinfoaccessor.h"
#include <klocale.h>
-#include <kvbox.h>
#include <QCheckBox>
+#include <QLabel>
+#include <QVBoxLayout>
AdditionalInfoDialog::AdditionalInfoDialog(QWidget* parent,
- KFileItemDelegate::InformationList info) :
+ KFileItemDelegate::InformationList infoList) :
KDialog(parent),
- m_info(info),
- m_size(0),
- m_date(0),
- m_permissions(0),
- m_owner(0),
- m_group(0),
- m_type(0)
+ m_infoList(infoList),
+ m_checkBoxes()
{
setCaption(i18nc("@title:window", "Additional Information"));
setButtons(Ok | Cancel);
setDefaultButton(Ok);
- KVBox* box = new KVBox(this);
+ QWidget* mainWidget = new QWidget(this);
+ mainWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
+ QVBoxLayout* layout = new QVBoxLayout(mainWidget);
- m_size = new QCheckBox(i18nc("@option:check Additional Information", "Size"), box);
- m_date = new QCheckBox(i18nc("@option:check Additional Information", "Date"), box);
- m_permissions = new QCheckBox(i18nc("@option:check Additional Information", "Permissions"), box);
- m_owner = new QCheckBox(i18nc("@option:check Additional Information", "Owner"), box);
- m_group = new QCheckBox(i18nc("@option:check Additional Information", "Group"), box);
- m_type = new QCheckBox(i18nc("@option:check Additional Information", "Type"), box);
- connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
+ // Add header
+ QLabel* header = new QLabel(mainWidget);
+ header->setText(i18nc("@label", "Configure which additional information should be shown."));
+ header->setWordWrap(true);
+ layout->addWidget(header);
+
+ // Add checkboxes
+ const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
+ const KFileItemDelegate::InformationList keys = infoAccessor.keys();
+ foreach (const KFileItemDelegate::Information info, keys) {
+ QCheckBox* checkBox = new QCheckBox(infoAccessor.translation(info), mainWidget);
+ checkBox->setChecked(infoList.contains(info));
+ layout->addWidget(checkBox);
+ m_checkBoxes.append(checkBox);
+ }
- m_size->setChecked(info.contains(KFileItemDelegate::Size));
- m_date->setChecked(info.contains(KFileItemDelegate::ModificationTime));
- m_permissions->setChecked(info.contains(KFileItemDelegate::Permissions));
- m_owner->setChecked(info.contains(KFileItemDelegate::Owner));
- m_group->setChecked(info.contains(KFileItemDelegate::OwnerAndGroup));
- m_type->setChecked(info.contains(KFileItemDelegate::FriendlyMimeType));
+ layout->addStretch(1);
- setMainWidget(box);
+ setMainWidget(mainWidget);
const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
"AdditionalInfoDialog");
restoreDialogSize(dialogConfig);
+
+ connect(this, SIGNAL(okClicked()), this, SLOT(slotOk()));
}
AdditionalInfoDialog::~AdditionalInfoDialog()
@@ -70,32 +74,22 @@ AdditionalInfoDialog::~AdditionalInfoDialog()
saveDialogSize(dialogConfig, KConfigBase::Persistent);
}
-KFileItemDelegate::InformationList AdditionalInfoDialog::additionalInfo() const
+KFileItemDelegate::InformationList AdditionalInfoDialog::informationList() const
{
- return m_info;
+ return m_infoList;
}
void AdditionalInfoDialog::slotOk()
{
- m_info.clear();
+ m_infoList.clear();
- if (m_size->isChecked()) {
- m_info.append(KFileItemDelegate::Size);
- }
- if (m_date->isChecked()) {
- m_info.append(KFileItemDelegate::ModificationTime);
- }
- if (m_permissions->isChecked()) {
- m_info.append(KFileItemDelegate::Permissions);
- }
- if (m_owner->isChecked()) {
- m_info.append(KFileItemDelegate::Owner);
- }
- if (m_group->isChecked()) {
- m_info.append(KFileItemDelegate::OwnerAndGroup);
- }
- if (m_type->isChecked()) {
- m_info.append(KFileItemDelegate::FriendlyMimeType);
+ const KFileItemDelegate::InformationList keys = AdditionalInfoAccessor::instance().keys();
+ int index = 0;
+ foreach (const KFileItemDelegate::Information info, keys) {
+ if (m_checkBoxes[index]->isChecked()) {
+ m_infoList.append(info);
+ }
+ ++index;
}
}
diff --git a/src/settings/additionalinfodialog.h b/src/settings/additionalinfodialog.h
index 9771960f0..54d23f2e3 100644
--- a/src/settings/additionalinfodialog.h
+++ b/src/settings/additionalinfodialog.h
@@ -22,6 +22,7 @@
#include <kdialog.h>
#include <kfileitemdelegate.h>
+#include <QList>
class QCheckBox;
@@ -33,21 +34,16 @@ class AdditionalInfoDialog : public KDialog
Q_OBJECT
public:
- explicit AdditionalInfoDialog(QWidget* parent, KFileItemDelegate::InformationList info);
+ AdditionalInfoDialog(QWidget* parent, KFileItemDelegate::InformationList infoList);
virtual ~AdditionalInfoDialog();
- KFileItemDelegate::InformationList additionalInfo() const;
+ KFileItemDelegate::InformationList informationList() const;
private slots:
void slotOk();
private:
- KFileItemDelegate::InformationList m_info;
- QCheckBox* m_size;
- QCheckBox* m_date;
- QCheckBox* m_permissions;
- QCheckBox* m_owner;
- QCheckBox* m_group;
- QCheckBox* m_type;
+ KFileItemDelegate::InformationList m_infoList;
+ QList<QCheckBox*> m_checkBoxes;
};
#endif
diff --git a/src/settings/viewpropertiesdialog.cpp b/src/settings/viewpropertiesdialog.cpp
index 39d9cc786..3941a61cc 100644
--- a/src/settings/viewpropertiesdialog.cpp
+++ b/src/settings/viewpropertiesdialog.cpp
@@ -318,7 +318,7 @@ void ViewPropertiesDialog::configureAdditionalInfo()
QPointer<AdditionalInfoDialog> dialog = new AdditionalInfoDialog(this, info);
if (dialog->exec() == QDialog::Accepted) {
- m_viewProps->setAdditionalInfo(dialog->additionalInfo());
+ m_viewProps->setAdditionalInfo(dialog->informationList());
markAsDirty(true);
}
delete dialog;