[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kio/kfile
From: Peter Penz <peter.penz19 () gmail ! com>
Date: 2010-11-01 19:13:48
Message-ID: 20101101191348.52C15AC89B () svn ! kde ! org
[Download RAW message or body]
SVN commit 1192039 by ppenz:
Apply the read-only state to the metadata-widgets
M +31 -33 kfilemetadataprovider.cpp
--- trunk/KDE/kdelibs/kio/kfile/kfilemetadataprovider.cpp #1192038:1192039
@@ -44,6 +44,28 @@
#include <QEvent>
#include <QLabel>
+namespace {
+ static QString plainText(const QString& richText)
+ {
+ QString plainText;
+ plainText.reserve(richText.length());
+
+ bool skip = false;
+ for (int i = 0; i < richText.length(); ++i) {
+ const QChar c = richText.at(i);
+ if (c == QLatin1Char('<')) {
+ skip = true;
+ } else if (c == QLatin1Char('>')) {
+ skip = false;
+ } else if (!skip) {
+ plainText.append(c);
+ }
+ }
+
+ return plainText;
+ }
+};
+
// The default size hint of QLabel tries to return a square size.
// This does not work well in combination with layouts that use
// heightForWidth(): In this case it is possible that the content
@@ -55,9 +77,6 @@
public:
explicit ValueWidget(QWidget* parent = 0);
virtual QSize sizeHint() const;
-
-private:
- QString plainText() const;
};
ValueWidget::ValueWidget(QWidget* parent) :
@@ -72,30 +91,11 @@
// that would be sufficient. However this method is not accessible, so
// as workaround the tags from a richtext are removed manually here to
// have a proper size hint.
- return metrics.size(Qt::TextSingleLine, plainText());
+ return metrics.size(Qt::TextSingleLine, plainText(text()));
}
-QString ValueWidget::plainText() const
-{
- QString plainText;
- const QString richText = text();
- plainText.reserve(richText.length());
- bool skip = false;
- for (int i = 0; i < richText.length(); ++i) {
- const QChar c = richText.at(i);
- if (c == QLatin1Char('<')) {
- skip = true;
- } else if (c == QLatin1Char('>')) {
- skip = false;
- } else if (!skip) {
- plainText.append(c);
- }
- }
- return plainText;
-}
-
class KFileMetaDataProvider::Private
{
@@ -123,7 +123,7 @@
QList<Nepomuk::Resource> resourceList() const;
QWidget* createRatingWidget(int rating, QWidget* parent);
QWidget* createTagWidget(const QList<Nepomuk::Tag>& tags, QWidget* parent);
- QWidget* createm_commentWidget(const QString& comment, QWidget* parent);
+ QWidget* createCommentWidget(const QString& comment, QWidget* parent);
#endif
QWidget* createValueWidget(const QString& value, QWidget* parent);
@@ -312,6 +312,9 @@
Nepomuk::TagWidget* tagWidget = new Nepomuk::TagWidget(parent);
tagWidget->setModeFlags(Nepomuk::TagWidget::MiniMode);
tagWidget->setSelectedTags(tags);
+ tagWidget->setModeFlags(m_readOnly
+ ? Nepomuk::TagWidget::MiniMode | \
Nepomuk::TagWidget::ReadOnly + : \
Nepomuk::TagWidget::MiniMode);
connect(tagWidget, SIGNAL(selectionChanged(QList<Nepomuk::Tag>)),
q, SLOT(slotTagsChanged(QList<Nepomuk::Tag>)));
@@ -323,10 +326,11 @@
return tagWidget;
}
-QWidget* KFileMetaDataProvider::Private::createm_commentWidget(const QString& \
comment, QWidget* parent) +QWidget* \
KFileMetaDataProvider::Private::createCommentWidget(const QString& comment, QWidget* \
parent) {
KCommentWidget* commentWidget = new KCommentWidget(parent);
commentWidget->setText(comment);
+ commentWidget->setReadOnly(m_readOnly);
connect(commentWidget, SIGNAL(commentChanged(const QString&)),
q, SLOT(slotCommentChanged(const QString&)));
@@ -342,7 +346,7 @@
ValueWidget* valueWidget = new ValueWidget(parent);
valueWidget->setWordWrap(true);
valueWidget->setAlignment(Qt::AlignTop | Qt::AlignLeft);
- valueWidget->setText(value);
+ valueWidget->setText(m_readOnly ? plainText(value) : value);
return valueWidget;
}
@@ -458,12 +462,6 @@
#ifdef HAVE_NEPOMUK
if (!d->m_tagWidget.isNull()) {
- Nepomuk::TagWidget::ModeFlags flags = \
d->m_tagWidget.data()->modeFlags();
- if (readOnly) {
- flags |= Nepomuk::TagWidget::ReadOnly;
- } else {
- flags &= ~Nepomuk::TagWidget::ReadOnly;
- }
d->m_tagWidget.data()->setModeFlags(readOnly
? Nepomuk::TagWidget::MiniMode | \
Nepomuk::TagWidget::ReadOnly
: Nepomuk::TagWidget::MiniMode);
@@ -509,7 +507,7 @@
widget = d->createTagWidget(tags, parent);
} else if (uri == QLatin1String("kfileitem#comment")) {
- widget = d->createm_commentWidget(value.toString(), parent);
+ widget = d->createCommentWidget(value.toString(), parent);
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic