mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-17 15:31:20 +00:00
Reactivate showing of general meta information. This is also done as part of the LoadFilesThread and is no special case anymore like in the old code base.
svn path=/trunk/KDE/kdebase/apps/; revision=1033722
This commit is contained in:
parent
a56d2e78ce
commit
b786c28e04
|
@ -51,13 +51,6 @@
|
|||
#include "phononwidget.h"
|
||||
#include "pixmapviewer.h"
|
||||
|
||||
#ifdef HAVE_NEPOMUK
|
||||
#define DISABLE_NEPOMUK_LEGACY
|
||||
#include <Nepomuk/Resource>
|
||||
#include <Nepomuk/Types/Property>
|
||||
#include <Nepomuk/Variant>
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Helper function for sorting items with qSort() in
|
||||
* InformationPanelContent::contextMenu().
|
||||
|
@ -188,30 +181,6 @@ void InformationPanelContent::showItem(const KFileItem& item)
|
|||
setNameLabelText(itemUrl.fileName());
|
||||
}
|
||||
|
||||
/* TODO: move to MetaDataWidget
|
||||
if (!item.isDir() && item.nepomukUri().isValid()) {
|
||||
KConfig config("kmetainformationrc", KConfig::NoGlobals);
|
||||
KConfigGroup settings = config.group("Show");
|
||||
initMetaInfoSettings(settings);
|
||||
|
||||
Nepomuk::Resource res(item.url());
|
||||
|
||||
QHash<QUrl, Nepomuk::Variant> properties = res.properties();
|
||||
QHash<QUrl, Nepomuk::Variant>::const_iterator it = properties.constBegin();
|
||||
while (it != properties.constEnd()) {
|
||||
Nepomuk::Types::Property prop(it.key());
|
||||
if (settings.readEntry(prop.name(), true)) {
|
||||
// TODO #1: use Nepomuk::formatValue(res, prop) if available
|
||||
// instead of it.value().toString()
|
||||
// TODO #2: using tunedLabel() is a workaround for KDE 4.3 until
|
||||
// we get translated labels
|
||||
m_metaTextLabel->add(tunedLabel(prop.label()) + ':', it.value().toString());
|
||||
}
|
||||
++it;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if (m_metaDataWidget != 0) {
|
||||
m_metaDataWidget->setItem(item);
|
||||
}
|
||||
|
@ -299,7 +268,6 @@ bool InformationPanelContent::eventFilter(QObject* obj, QEvent* event)
|
|||
|
||||
void InformationPanelContent::configureSettings()
|
||||
{
|
||||
#ifdef HAVE_NEPOMUK
|
||||
if (m_item.isNull() ||
|
||||
!m_item.nepomukUri().isValid()) {
|
||||
return;
|
||||
|
@ -333,13 +301,12 @@ void InformationPanelContent::configureSettings()
|
|||
|
||||
KConfig config("kmetainformationrc", KConfig::NoGlobals);
|
||||
KConfigGroup settings = config.group("Show");
|
||||
initMetaInfoSettings(settings);
|
||||
|
||||
QList<QAction*> actions;
|
||||
|
||||
// Get all meta information labels that are available for
|
||||
// the currently shown file item and add them to the popup.
|
||||
Nepomuk::Resource res(m_item.url());
|
||||
/*Nepomuk::Resource res(m_item.url());
|
||||
QHash<QUrl, Nepomuk::Variant> properties = res.properties();
|
||||
QHash<QUrl, Nepomuk::Variant>::const_iterator it = properties.constBegin();
|
||||
while (it != properties.constEnd()) {
|
||||
|
@ -375,7 +342,7 @@ void InformationPanelContent::configureSettings()
|
|||
}
|
||||
|
||||
++it;
|
||||
}
|
||||
}*/
|
||||
|
||||
if (!actions.isEmpty()) {
|
||||
popup.addSeparator();
|
||||
|
@ -421,7 +388,6 @@ void InformationPanelContent::configureSettings()
|
|||
}*/
|
||||
|
||||
showItem(m_item);
|
||||
#endif
|
||||
}
|
||||
|
||||
void InformationPanelContent::showIcon(const KFileItem& item)
|
||||
|
@ -511,52 +477,4 @@ void InformationPanelContent::setNameLabelText(const QString& text)
|
|||
m_nameLabel->setText(wrappedText);
|
||||
}
|
||||
|
||||
void InformationPanelContent::initMetaInfoSettings(KConfigGroup& group)
|
||||
{
|
||||
if (!group.readEntry("initialized", false)) {
|
||||
// The resource file is read the first time. Assure
|
||||
// that some meta information is disabled per default.
|
||||
|
||||
static const char* disabledProperties[] = {
|
||||
"asText", "contentSize", "depth", "fileExtension",
|
||||
"fileName", "fileSize", "isPartOf", "mimetype", "name",
|
||||
"parentUrl", "plainTextContent", "sourceModified",
|
||||
"size", "url",
|
||||
0 // mandatory last entry
|
||||
};
|
||||
|
||||
int i = 0;
|
||||
while (disabledProperties[i] != 0) {
|
||||
group.writeEntry(disabledProperties[i], false);
|
||||
++i;
|
||||
}
|
||||
|
||||
// mark the group as initialized
|
||||
group.writeEntry("initialized", true);
|
||||
}
|
||||
}
|
||||
|
||||
QString InformationPanelContent::tunedLabel(const QString& label) const
|
||||
{
|
||||
QString tunedLabel;
|
||||
const int labelLength = label.length();
|
||||
if (labelLength > 0) {
|
||||
tunedLabel.reserve(labelLength);
|
||||
tunedLabel = label[0].toUpper();
|
||||
for (int i = 1; i < labelLength; ++i) {
|
||||
if (label[i].isUpper() && !label[i - 1].isSpace() && !label[i - 1].isUpper()) {
|
||||
tunedLabel += ' ';
|
||||
tunedLabel += label[i].toLower();
|
||||
} else {
|
||||
tunedLabel += label[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
return tunedLabel;
|
||||
}
|
||||
|
||||
void InformationPanelContent::init()
|
||||
{
|
||||
}
|
||||
|
||||
#include "informationpanelcontent.moc"
|
||||
|
|
|
@ -110,21 +110,6 @@ private:
|
|||
*/
|
||||
void setNameLabelText(const QString& text);
|
||||
|
||||
/**
|
||||
* Assures that the settings for the meta information
|
||||
* are initialized with proper default values.
|
||||
*/
|
||||
void initMetaInfoSettings(KConfigGroup& group);
|
||||
|
||||
/**
|
||||
* Temporary helper method for KDE 4.3 as we currently don't get
|
||||
* translated labels for Nepmok literals: Replaces camelcase labels
|
||||
* like "fileLocation" by "File Location:".
|
||||
*/
|
||||
QString tunedLabel(const QString& label) const;
|
||||
|
||||
void init();
|
||||
|
||||
private:
|
||||
KFileItem m_item;
|
||||
|
||||
|
|
|
@ -30,13 +30,21 @@
|
|||
|
||||
#include <config-nepomuk.h>
|
||||
#ifdef HAVE_NEPOMUK
|
||||
#define DISABLE_NEPOMUK_LEGACY
|
||||
|
||||
#include "commentwidget_p.h"
|
||||
#include "nepomukmassupdatejob_p.h"
|
||||
#include "taggingwidget_p.h"
|
||||
|
||||
#include <nepomuk/kratingwidget.h>
|
||||
#include <nepomuk/resource.h>
|
||||
#include <nepomuk/tag.h>
|
||||
#include <kconfig.h>
|
||||
#include <kconfiggroup.h>
|
||||
|
||||
#include <Nepomuk/KRatingWidget>
|
||||
#include <Nepomuk/Resource>
|
||||
#include <Nepomuk/Tag>
|
||||
#include <Nepomuk/Types/Property>
|
||||
#include <Nepomuk/Variant>
|
||||
|
||||
#include <Soprano/Vocabulary/Xesam>
|
||||
#include <QMutex>
|
||||
#include <QThread>
|
||||
|
@ -55,35 +63,38 @@ public:
|
|||
~Private();
|
||||
|
||||
void addRow(QLabel* label, QWidget* infoWidget);
|
||||
void removeMetaInfoRows();
|
||||
void setRowVisible(QWidget* infoWidget, bool visible);
|
||||
|
||||
void slotLoadingFinished();
|
||||
|
||||
QList<Row> rows;
|
||||
QList<Row> m_rows;
|
||||
|
||||
QGridLayout* gridLayout;
|
||||
QGridLayout* m_gridLayout;
|
||||
|
||||
QLabel* typeInfo;
|
||||
QLabel* sizeLabel;
|
||||
QLabel* sizeInfo;
|
||||
QLabel* modifiedInfo;
|
||||
QLabel* ownerInfo;
|
||||
QLabel* permissionsInfo;
|
||||
QLabel* m_typeInfo;
|
||||
QLabel* m_sizeLabel;
|
||||
QLabel* m_sizeInfo;
|
||||
QLabel* m_modifiedInfo;
|
||||
QLabel* m_ownerInfo;
|
||||
QLabel* m_permissionsInfo;
|
||||
|
||||
#ifdef HAVE_NEPOMUK
|
||||
KRatingWidget* ratingWidget;
|
||||
TaggingWidget* taggingWidget;
|
||||
CommentWidget* commentWidget;
|
||||
KRatingWidget* m_ratingWidget;
|
||||
TaggingWidget* m_taggingWidget;
|
||||
CommentWidget* m_commentWidget;
|
||||
|
||||
// shared data between the GUI-thread and
|
||||
// the loader-thread (see LoadFilesThread):
|
||||
QMutex mutex;
|
||||
QMutex m_mutex;
|
||||
struct SharedData
|
||||
{
|
||||
int rating;
|
||||
QString comment;
|
||||
QList<Nepomuk::Tag> tags;
|
||||
} sharedData;
|
||||
QList<QString> metaInfoLabels;
|
||||
QList<QString> metaInfoValues;
|
||||
} m_sharedData;
|
||||
|
||||
/**
|
||||
* Loads the meta data of files and writes
|
||||
|
@ -93,19 +104,33 @@ public:
|
|||
class LoadFilesThread : public QThread
|
||||
{
|
||||
public:
|
||||
LoadFilesThread(SharedData* sharedData, QMutex* mutex);
|
||||
LoadFilesThread(SharedData* m_sharedData, QMutex* m_mutex);
|
||||
virtual ~LoadFilesThread();
|
||||
void loadFiles(const KUrl::List& urls);
|
||||
virtual void run();
|
||||
|
||||
private:
|
||||
SharedData* m_sharedData;
|
||||
QMutex* m_mutex;
|
||||
/**
|
||||
* Assures that the settings for the meta information
|
||||
* are initialized with proper default values.
|
||||
*/
|
||||
void initMetaInfoSettings(KConfigGroup& group);
|
||||
|
||||
/**
|
||||
* Temporary helper method for KDE 4.3 as we currently don't get
|
||||
* translated labels for Nepmok literals: Replaces camelcase labels
|
||||
* like "fileLocation" by "File Location:".
|
||||
*/
|
||||
QString tunedLabel(const QString& label) const;
|
||||
|
||||
private:
|
||||
SharedData* m_m_sharedData;
|
||||
QMutex* m_m_mutex;
|
||||
KUrl::List m_urls;
|
||||
bool m_canceled;
|
||||
};
|
||||
|
||||
LoadFilesThread* loadFilesThread;
|
||||
LoadFilesThread* m_loadFilesThread;
|
||||
#endif
|
||||
|
||||
private:
|
||||
|
@ -113,56 +138,56 @@ private:
|
|||
};
|
||||
|
||||
MetaDataWidget::Private::Private(MetaDataWidget* parent) :
|
||||
rows(),
|
||||
gridLayout(0),
|
||||
typeInfo(0),
|
||||
sizeLabel(0),
|
||||
sizeInfo(0),
|
||||
modifiedInfo(0),
|
||||
ownerInfo(0),
|
||||
permissionsInfo(0),
|
||||
m_rows(),
|
||||
m_gridLayout(0),
|
||||
m_typeInfo(0),
|
||||
m_sizeLabel(0),
|
||||
m_sizeInfo(0),
|
||||
m_modifiedInfo(0),
|
||||
m_ownerInfo(0),
|
||||
m_permissionsInfo(0),
|
||||
#ifdef HAVE_NEPOMUK
|
||||
ratingWidget(0),
|
||||
taggingWidget(0),
|
||||
commentWidget(0),
|
||||
loadFilesThread(0),
|
||||
m_ratingWidget(0),
|
||||
m_taggingWidget(0),
|
||||
m_commentWidget(0),
|
||||
m_loadFilesThread(0),
|
||||
#endif
|
||||
q(parent)
|
||||
{
|
||||
gridLayout = new QGridLayout(parent);
|
||||
m_gridLayout = new QGridLayout(parent);
|
||||
|
||||
typeInfo = new QLabel(parent);
|
||||
sizeLabel = new QLabel(parent);
|
||||
sizeInfo = new QLabel(parent);
|
||||
modifiedInfo = new QLabel(parent);
|
||||
ownerInfo = new QLabel(parent);
|
||||
permissionsInfo = new QLabel(parent);
|
||||
m_typeInfo = new QLabel(parent);
|
||||
m_sizeLabel = new QLabel(parent);
|
||||
m_sizeInfo = new QLabel(parent);
|
||||
m_modifiedInfo = new QLabel(parent);
|
||||
m_ownerInfo = new QLabel(parent);
|
||||
m_permissionsInfo = new QLabel(parent);
|
||||
#ifdef HAVE_NEPOMUK
|
||||
ratingWidget = new KRatingWidget(parent);
|
||||
taggingWidget = new TaggingWidget(parent);
|
||||
commentWidget = new CommentWidget(parent);
|
||||
m_ratingWidget = new KRatingWidget(parent);
|
||||
m_taggingWidget = new TaggingWidget(parent);
|
||||
m_commentWidget = new CommentWidget(parent);
|
||||
#endif
|
||||
|
||||
addRow(new QLabel(i18nc("@label", "Type:"), parent), typeInfo);
|
||||
addRow(sizeLabel, sizeInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Modified:"), parent), modifiedInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Owner:"), parent), ownerInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Permissions:"), parent), permissionsInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Type:"), parent), m_typeInfo);
|
||||
addRow(m_sizeLabel, m_sizeInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Modified:"), parent), m_modifiedInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Owner:"), parent), m_ownerInfo);
|
||||
addRow(new QLabel(i18nc("@label", "Permissions:"), parent), m_permissionsInfo);
|
||||
#ifdef HAVE_NEPOMUK
|
||||
addRow(new QLabel(i18nc("@label", "Rating:"), parent), ratingWidget);
|
||||
addRow(new QLabel(i18nc("@label", "Tags:"), parent), taggingWidget);
|
||||
addRow(new QLabel(i18nc("@label", "Comment:"), parent), commentWidget);
|
||||
addRow(new QLabel(i18nc("@label", "Rating:"), parent), m_ratingWidget);
|
||||
addRow(new QLabel(i18nc("@label", "Tags:"), parent), m_taggingWidget);
|
||||
addRow(new QLabel(i18nc("@label", "Comment:"), parent), m_commentWidget);
|
||||
|
||||
sharedData.rating = 0;
|
||||
loadFilesThread = new LoadFilesThread(&sharedData, &mutex);
|
||||
connect(loadFilesThread, SIGNAL(finished()), q, SLOT(slotLoadingFinished()));
|
||||
m_sharedData.rating = 0;
|
||||
m_loadFilesThread = new LoadFilesThread(&m_sharedData, &m_mutex);
|
||||
connect(m_loadFilesThread, SIGNAL(finished()), q, SLOT(slotLoadingFinished()));
|
||||
#endif
|
||||
}
|
||||
|
||||
MetaDataWidget::Private::~Private()
|
||||
{
|
||||
#ifdef HAVE_NEPOMUK
|
||||
delete loadFilesThread;
|
||||
delete m_loadFilesThread;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -171,7 +196,7 @@ void MetaDataWidget::Private::addRow(QLabel* label, QWidget* infoWidget)
|
|||
Row row;
|
||||
row.label = label;
|
||||
row.infoWidget = infoWidget;
|
||||
rows.append(row);
|
||||
m_rows.append(row);
|
||||
|
||||
// use a brighter color for the label
|
||||
QPalette palette = label->palette();
|
||||
|
@ -181,14 +206,14 @@ void MetaDataWidget::Private::addRow(QLabel* label, QWidget* infoWidget)
|
|||
label->setPalette(palette);
|
||||
|
||||
// add the row to grid layout
|
||||
const int rowIndex = rows.count();
|
||||
gridLayout->addWidget(label, rowIndex, 0, Qt::AlignLeft);
|
||||
gridLayout->addWidget(infoWidget, rowIndex, 1, Qt::AlignRight);
|
||||
const int rowIndex = m_rows.count();
|
||||
m_gridLayout->addWidget(label, rowIndex, 0, Qt::AlignLeft);
|
||||
m_gridLayout->addWidget(infoWidget, rowIndex, 1, Qt::AlignRight);
|
||||
}
|
||||
|
||||
void MetaDataWidget::Private::setRowVisible(QWidget* infoWidget, bool visible)
|
||||
{
|
||||
foreach (const Row& row, rows) {
|
||||
foreach (const Row& row, m_rows) {
|
||||
if (row.infoWidget == infoWidget) {
|
||||
row.label->setVisible(visible);
|
||||
row.infoWidget->setVisible(visible);
|
||||
|
@ -200,19 +225,51 @@ void MetaDataWidget::Private::setRowVisible(QWidget* infoWidget, bool visible)
|
|||
void MetaDataWidget::Private::slotLoadingFinished()
|
||||
{
|
||||
#ifdef HAVE_NEPOMUK
|
||||
QMutexLocker locker(&mutex);
|
||||
ratingWidget->setRating(sharedData.rating);
|
||||
commentWidget->setText(sharedData.comment);
|
||||
taggingWidget->setTags(sharedData.tags);
|
||||
QMutexLocker locker(&m_mutex);
|
||||
m_ratingWidget->setRating(m_sharedData.rating);
|
||||
m_commentWidget->setText(m_sharedData.comment);
|
||||
m_taggingWidget->setTags(m_sharedData.tags);
|
||||
|
||||
// Show the remaining meta information as text. The number
|
||||
// of required rows may very. Existing rows are reused to
|
||||
// prevent flickering.
|
||||
int index = 8; // TODO: don't hardcode this value here
|
||||
const int rowCount = m_rows.count();
|
||||
Q_ASSERT(rowCount >= index);
|
||||
|
||||
Q_ASSERT(m_sharedData.metaInfoLabels.count() == m_sharedData.metaInfoValues.count());
|
||||
const int metaInfoCount = m_sharedData.metaInfoLabels.count();
|
||||
for (int i = 0; i < metaInfoCount; ++i) {
|
||||
if (index < rowCount) {
|
||||
// adjust texts of the current row
|
||||
m_rows[index].label->setText(m_sharedData.metaInfoLabels[i]);
|
||||
QLabel* infoValueLabel = qobject_cast<QLabel*>(m_rows[index].infoWidget);
|
||||
Q_ASSERT(infoValueLabel != 0);
|
||||
infoValueLabel->setText(m_sharedData.metaInfoValues[i]);
|
||||
} else {
|
||||
// create new row
|
||||
QLabel* infoLabel = new QLabel(m_sharedData.metaInfoLabels[i], q);
|
||||
QLabel* infoValue = new QLabel(m_sharedData.metaInfoValues[i], q);
|
||||
addRow(infoLabel, infoValue);
|
||||
}
|
||||
++index;
|
||||
}
|
||||
|
||||
// remove rows that are not needed anymore
|
||||
for (int i = rowCount - 1; i > index; --i) {
|
||||
delete m_rows[i].label;
|
||||
delete m_rows[i].infoWidget;
|
||||
m_rows.pop_back();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef HAVE_NEPOMUK
|
||||
MetaDataWidget::Private::LoadFilesThread::LoadFilesThread(
|
||||
MetaDataWidget::Private::SharedData* sharedData,
|
||||
QMutex* mutex) :
|
||||
m_sharedData(sharedData),
|
||||
m_mutex(mutex),
|
||||
MetaDataWidget::Private::SharedData* m_sharedData,
|
||||
QMutex* m_mutex) :
|
||||
m_m_sharedData(m_sharedData),
|
||||
m_m_mutex(m_mutex),
|
||||
m_urls(),
|
||||
m_canceled(false)
|
||||
{
|
||||
|
@ -228,7 +285,7 @@ MetaDataWidget::Private::LoadFilesThread::~LoadFilesThread()
|
|||
|
||||
void MetaDataWidget::Private::LoadFilesThread::loadFiles(const KUrl::List& urls)
|
||||
{
|
||||
QMutexLocker locker(m_mutex);
|
||||
QMutexLocker locker(m_m_mutex);
|
||||
m_urls = urls;
|
||||
m_canceled = false;
|
||||
start();
|
||||
|
@ -236,14 +293,20 @@ void MetaDataWidget::Private::LoadFilesThread::loadFiles(const KUrl::List& urls)
|
|||
|
||||
void MetaDataWidget::Private::LoadFilesThread::run()
|
||||
{
|
||||
QMutexLocker locker(m_mutex);
|
||||
QMutexLocker locker(m_m_mutex);
|
||||
const KUrl::List urls = m_urls;
|
||||
locker.unlock();
|
||||
|
||||
KConfig config("kmetainformationrc", KConfig::NoGlobals);
|
||||
KConfigGroup settings = config.group("Show");
|
||||
initMetaInfoSettings(settings);
|
||||
|
||||
bool first = true;
|
||||
unsigned int rating = 0;
|
||||
QString comment;
|
||||
QList<Nepomuk::Tag> tags;
|
||||
QList<QString> metaInfoLabels;
|
||||
QList<QString> metaInfoValues;
|
||||
foreach (const KUrl& url, urls) {
|
||||
if (m_canceled) {
|
||||
return;
|
||||
|
@ -269,14 +332,80 @@ void MetaDataWidget::Private::LoadFilesThread::run()
|
|||
tags = file.tags();
|
||||
}
|
||||
|
||||
if (first && (urls.count() == 1)) {
|
||||
// TODO: show shared meta informations instead
|
||||
// of not showing anything on multiple selections
|
||||
QHash<QUrl, Nepomuk::Variant> properties = file.properties();
|
||||
QHash<QUrl, Nepomuk::Variant>::const_iterator it = properties.constBegin();
|
||||
while (it != properties.constEnd()) {
|
||||
Nepomuk::Types::Property prop(it.key());
|
||||
if (true /*settings.readEntry(prop.name(), true)*/) {
|
||||
// TODO #1: use Nepomuk::formatValue(res, prop) if available
|
||||
// instead of it.value().toString()
|
||||
// TODO #2: using tunedLabel() is a workaround for KDE 4.3 until
|
||||
// we get translated labels
|
||||
metaInfoLabels.append(tunedLabel(prop.label()));
|
||||
metaInfoValues.append(it.value().toString());
|
||||
}
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
first = false;
|
||||
}
|
||||
|
||||
locker.relock();
|
||||
m_sharedData->rating = rating;
|
||||
m_sharedData->comment = comment;
|
||||
m_sharedData->tags = tags;
|
||||
m_m_sharedData->rating = rating;
|
||||
m_m_sharedData->comment = comment;
|
||||
m_m_sharedData->tags = tags;
|
||||
m_m_sharedData->metaInfoLabels = metaInfoLabels;
|
||||
m_m_sharedData->metaInfoValues = metaInfoValues;
|
||||
}
|
||||
|
||||
void MetaDataWidget::Private::LoadFilesThread::initMetaInfoSettings(KConfigGroup& group)
|
||||
{
|
||||
if (!group.readEntry("initialized", false)) {
|
||||
// The resource file is read the first time. Assure
|
||||
// that some meta information is disabled per default.
|
||||
|
||||
static const char* disabledProperties[] = {
|
||||
"asText", "contentSize", "depth", "fileExtension",
|
||||
"fileName", "fileSize", "isPartOf", "mimetype", "name",
|
||||
"parentUrl", "plainTextContent", "sourceModified",
|
||||
"size", "url",
|
||||
0 // mandatory last entry
|
||||
};
|
||||
|
||||
int i = 0;
|
||||
while (disabledProperties[i] != 0) {
|
||||
group.writeEntry(disabledProperties[i], false);
|
||||
++i;
|
||||
}
|
||||
|
||||
// mark the group as initialized
|
||||
group.writeEntry("initialized", true);
|
||||
}
|
||||
}
|
||||
|
||||
QString MetaDataWidget::Private::LoadFilesThread::tunedLabel(const QString& label) const
|
||||
{
|
||||
QString tunedLabel;
|
||||
const int labelLength = label.length();
|
||||
if (labelLength > 0) {
|
||||
tunedLabel.reserve(labelLength);
|
||||
tunedLabel = label[0].toUpper();
|
||||
for (int i = 1; i < labelLength; ++i) {
|
||||
if (label[i].isUpper() && !label[i - 1].isSpace() && !label[i - 1].isUpper()) {
|
||||
tunedLabel += ' ';
|
||||
tunedLabel += label[i].toLower();
|
||||
} else {
|
||||
tunedLabel += label[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
return tunedLabel + ':';
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
MetaDataWidget::MetaDataWidget(QWidget* parent) :
|
||||
|
@ -294,18 +423,18 @@ void MetaDataWidget::setItem(const KFileItem& item)
|
|||
{
|
||||
// update values for "type", "size", "modified",
|
||||
// "owner" and "permissions" synchronously
|
||||
d->sizeLabel->setText(i18nc("@label", "Size:"));
|
||||
d->m_sizeLabel->setText(i18nc("@label", "Size:"));
|
||||
if (item.isDir()) {
|
||||
d->typeInfo->setText(i18nc("@label", "Folder"));
|
||||
d->setRowVisible(d->sizeInfo, false);
|
||||
d->m_typeInfo->setText(i18nc("@label", "Folder"));
|
||||
d->setRowVisible(d->m_sizeInfo, false);
|
||||
} else {
|
||||
d->typeInfo->setText(item.mimeComment());
|
||||
d->sizeInfo->setText(KIO::convertSize(item.size()));
|
||||
d->setRowVisible(d->sizeInfo, true);
|
||||
d->m_typeInfo->setText(item.mimeComment());
|
||||
d->m_sizeInfo->setText(KIO::convertSize(item.size()));
|
||||
d->setRowVisible(d->m_sizeInfo, true);
|
||||
}
|
||||
d->modifiedInfo->setText(item.timeString());
|
||||
d->ownerInfo->setText(item.user());
|
||||
d->permissionsInfo->setText(item.permissionsString());
|
||||
d->m_modifiedInfo->setText(item.timeString());
|
||||
d->m_ownerInfo->setText(item.user());
|
||||
d->m_permissionsInfo->setText(item.permissionsString());
|
||||
|
||||
setItems(KFileItemList() << item);
|
||||
}
|
||||
|
@ -315,8 +444,8 @@ void MetaDataWidget::setItems(const KFileItemList& items)
|
|||
if (items.count() > 1) {
|
||||
// calculate the size of all items and show this
|
||||
// information to the user
|
||||
d->sizeLabel->setText(i18nc("@label", "Total Size:"));
|
||||
d->setRowVisible(d->sizeInfo, true);
|
||||
d->m_sizeLabel->setText(i18nc("@label", "Total Size:"));
|
||||
d->setRowVisible(d->m_sizeInfo, true);
|
||||
|
||||
quint64 totalSize = 0;
|
||||
foreach (const KFileItem& item, items) {
|
||||
|
@ -324,7 +453,7 @@ void MetaDataWidget::setItems(const KFileItemList& items)
|
|||
totalSize += item.size();
|
||||
}
|
||||
}
|
||||
d->sizeInfo->setText(KIO::convertSize(totalSize));
|
||||
d->m_sizeInfo->setText(KIO::convertSize(totalSize));
|
||||
}
|
||||
|
||||
#ifdef HAVE_NEPOMUK
|
||||
|
@ -335,7 +464,7 @@ void MetaDataWidget::setItems(const KFileItemList& items)
|
|||
urls.append(url);
|
||||
}
|
||||
}
|
||||
d->loadFilesThread->loadFiles(urls);
|
||||
d->m_loadFilesThread->loadFiles(urls);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue