From: Peter Penz Date: Mon, 7 Dec 2009 20:45:20 +0000 (+0000) Subject: Activated "clicking on tags" fix from Sebastian Trüg. By providing a different link... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/207cb06316826ab79ad562a08e346172b7ecc171 Activated "clicking on tags" fix from Sebastian Trüg. By providing a different link color the difference to the "Change tags..." link is visible. svn path=/trunk/KDE/kdebase/apps/; revision=1059985 --- diff --git a/src/panels/information/kmetadatawidget.cpp b/src/panels/information/kmetadatawidget.cpp index 8b658a03f..5d019691b 100644 --- a/src/panels/information/kmetadatawidget.cpp +++ b/src/panels/information/kmetadatawidget.cpp @@ -97,9 +97,9 @@ public: void slotMetaDataUpdateDone(); void slotLinkActivated(const QString& link); -#ifdef HAVE_NEPOMUK void slotTagActivated(const Nepomuk::Tag& tag); +#ifdef HAVE_NEPOMUK /** * Disables the metadata widget and starts the job that * changes the meta data asynchronously. After the job @@ -264,9 +264,11 @@ void KMetaDataWidget::Private::setRowVisible(QWidget* infoWidget, bool visible) void KMetaDataWidget::Private::initMetaInfoSettings() { - static const int s_metainformationrcVersion = 1; + const int currentVersion = 1; // increase version, if the blacklist of disabled + // properties should be updated + KConfig config("kmetainformationrc", KConfig::NoGlobals); - if (config.group( "Misc" ).readEntry("version", 0) < s_metainformationrcVersion) { + if (config.group("Misc").readEntry("version", 0) < currentVersion) { // The resource file is read the first time. Assure // that some meta information is disabled per default. @@ -289,7 +291,7 @@ void KMetaDataWidget::Private::initMetaInfoSettings() } // mark the group as initialized - config.group( "Misc" ).writeEntry("version", s_metainformationrcVersion); + config.group("Misc").writeEntry("version", currentVersion); } } @@ -429,12 +431,14 @@ void KMetaDataWidget::Private::slotCommentChanged(const QString& comment) #endif } -#ifdef HAVE_NEPOMUK void KMetaDataWidget::Private::slotTagActivated(const Nepomuk::Tag& tag) { +#ifdef HAVE_NEPOMUK emit q->urlActivated(tag.resourceUri()); -} +#else + Q_UNUSED(tag); #endif +} void KMetaDataWidget::Private::slotMetaDataUpdateDone() { diff --git a/src/panels/information/kmetadatawidget.h b/src/panels/information/kmetadatawidget.h index a7d131e14..715defbc3 100644 --- a/src/panels/information/kmetadatawidget.h +++ b/src/panels/information/kmetadatawidget.h @@ -140,9 +140,7 @@ private: Q_PRIVATE_SLOT(d, void slotCommentChanged(const QString& comment)) Q_PRIVATE_SLOT(d, void slotMetaDataUpdateDone()) Q_PRIVATE_SLOT(d, void slotLinkActivated(const QString& link)) -#ifdef HAVE_NEPOMUK Q_PRIVATE_SLOT(d, void slotTagActivated(const Nepomuk::Tag& tag)) -#endif }; Q_DECLARE_OPERATORS_FOR_FLAGS(KMetaDataWidget::MetaDataTypes) diff --git a/src/panels/information/ktaggingwidget.cpp b/src/panels/information/ktaggingwidget.cpp index 4c0ab98be..6634d35af 100644 --- a/src/panels/information/ktaggingwidget.cpp +++ b/src/panels/information/ktaggingwidget.cpp @@ -62,15 +62,17 @@ void KTaggingWidget::setTags(const QList& tags) if (!first) { m_tagsText += ", "; } -#ifdef DOLPHIN_ENABLE_CLICKABLE_TAGS if (m_readOnly) { -#endif m_tagsText += tag.genericLabel(); -#ifdef DOLPHIN_ENABLE_CLICKABLE_TAGS } else { - m_tagsText += QString::fromLatin1( "%2" ).arg( KUrl(tag.resourceUri()).url(), tag.genericLabel() ); + // use the text color for the tag-links, to create a visual difference + // to the semantically different "Change..." link + const QColor linkColor =palette().text().color(); + const char* link = "%3"; + m_tagsText += QString::fromLatin1(link).arg(linkColor.name(), + KUrl(tag.resourceUri()).url(), + tag.genericLabel()); } -#endif first = false; } @@ -85,7 +87,7 @@ void KTaggingWidget::setTags(const QList& tags) if (m_readOnly) { text = m_tagsText; } else { - text = "

" + m_tagsText + " " + i18nc("@label", "Change...") + "

"; + text += m_tagsText + " " + i18nc("@label", "Change...") + ""; } } m_label->setText(text); @@ -117,36 +119,35 @@ bool KTaggingWidget::event(QEvent* event) void KTaggingWidget::slotLinkActivated(const QString& link) { - if ( link == QLatin1String( "changeTags" ) ) { - KEditTagsDialog dialog(m_tags, this, Qt::Dialog); - KConfigGroup dialogConfig(KGlobal::config(), "Nepomuk KEditTagsDialog"); - dialog.restoreDialogSize(dialogConfig); - - if (dialog.exec() == QDialog::Accepted) { - const QList oldTags = m_tags; - m_tags = dialog.tags(); - - if (oldTags.count() != m_tags.count()) { - emit tagsChanged(m_tags); - } else { - // The number of tags is equal. Check whether the - // content of the tags are also equal: - const int tagsCount = m_tags.count(); - for (int i = 0; i < tagsCount; ++i) { - if (oldTags[i].genericLabel() != m_tags[i].genericLabel()) { - // at least one tag has been changed - emit tagsChanged(m_tags); - break; - } + if (link != QLatin1String("changeTags")) { + emit tagActivated(Nepomuk::Tag(KUrl(link))); + return; + } + + KEditTagsDialog dialog(m_tags, this, Qt::Dialog); + KConfigGroup dialogConfig(KGlobal::config(), "Nepomuk KEditTagsDialog"); + dialog.restoreDialogSize(dialogConfig); + + if (dialog.exec() == QDialog::Accepted) { + const QList oldTags = m_tags; + m_tags = dialog.tags(); + + if (oldTags.count() != m_tags.count()) { + emit tagsChanged(m_tags); + } else { + // The number of tags is equal. Check whether the + // content of the tags are also equal: + const int tagsCount = m_tags.count(); + for (int i = 0; i < tagsCount; ++i) { + if (oldTags[i].genericLabel() != m_tags[i].genericLabel()) { + // at least one tag has been changed + emit tagsChanged(m_tags); + break; } } } - - dialog.saveDialogSize(dialogConfig, KConfigBase::Persistent); - } - else { - emit tagActivated(Nepomuk::Tag(KUrl(link))); } + dialog.saveDialogSize(dialogConfig, KConfigBase::Persistent); } #include "ktaggingwidget_p.moc"