X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a5cf21ff06aff44cde563eaceae3c6cef452ee48..aefa8ce888ffe9f8699319314672a6bc42f8d95f:/src/views/dolphinfileitemdelegate.cpp diff --git a/src/views/dolphinfileitemdelegate.cpp b/src/views/dolphinfileitemdelegate.cpp index 6b706c88b..0372ce674 100644 --- a/src/views/dolphinfileitemdelegate.cpp +++ b/src/views/dolphinfileitemdelegate.cpp @@ -20,9 +20,11 @@ #include "dolphinfileitemdelegate.h" #include "dolphinmodel.h" +#include #include #include #include +#include #include #include @@ -57,6 +59,15 @@ void DolphinFileItemDelegate::paint(QPainter* painter, adjustOptionWidth(opt, proxyModel, dolphinModel, index); } + if (!isNameColumn) { + // Use the inactive text color for all columns except the name column. This indicates for the user that + // hovering other columns does not change the actions context. + QPalette palette = opt.palette; + const QColor textColor = KColorScheme(QPalette::Active).foreground(KColorScheme::InactiveText).color(); + palette.setColor(QPalette::Text, textColor); + opt.palette = palette; + } + if (dolphinModel->hasVersionData() && isNameColumn) { // The currently shown items are under revision control. Show the current revision // state by adding an emblem and changing the text tintColor. @@ -82,7 +93,7 @@ void DolphinFileItemDelegate::paint(QPainter* painter, int DolphinFileItemDelegate::nameColumnWidth(const QString& name, const QStyleOptionViewItem& option) { QFontMetrics fontMetrics(option.font); - int width = option.decorationSize.width() + fontMetrics.width(name) + 16; + int width = option.decorationSize.width() + fontMetrics.width(KStringHandler::preProcessWrap(name)) + 16; const int defaultWidth = option.rect.width(); if ((defaultWidth > 0) && (defaultWidth < width)) { @@ -118,11 +129,12 @@ void DolphinFileItemDelegate::adjustOptionTextColor(QStyleOptionViewItemV4& opti // as tint colors and are mixed with the current set text color. The tint colors // have been optimized for the base colors of the corresponding Oxygen emblems. switch (state) { - case KVersionControlPlugin::UpdateRequiredVersion: tintColor = Qt::yellow; break; - case KVersionControlPlugin::LocallyModifiedVersion: tintColor = Qt::green; break; - case KVersionControlPlugin::AddedVersion: tintColor = Qt::darkGreen; break; - case KVersionControlPlugin::RemovedVersion: tintColor = Qt::darkRed; break; - case KVersionControlPlugin::ConflictingVersion: tintColor = Qt::red; break; + case KVersionControlPlugin::UpdateRequiredVersion: tintColor = Qt::yellow; break; + case KVersionControlPlugin::LocallyModifiedUnstagedVersion: tintColor = Qt::darkRed; break; + case KVersionControlPlugin::LocallyModifiedVersion: tintColor = Qt::green; break; + case KVersionControlPlugin::AddedVersion: tintColor = Qt::darkGreen; break; + case KVersionControlPlugin::RemovedVersion: tintColor = Qt::darkRed; break; + case KVersionControlPlugin::ConflictingVersion: tintColor = Qt::red; break; case KVersionControlPlugin::UnversionedVersion: case KVersionControlPlugin::NormalVersion: default: @@ -142,7 +154,7 @@ void DolphinFileItemDelegate::adjustOptionTextColor(QStyleOptionViewItemV4& opti QPixmap DolphinFileItemDelegate::emblemForState(KVersionControlPlugin::VersionState state, const QSize& size) const { - Q_ASSERT(state <= KVersionControlPlugin::ConflictingVersion); + Q_ASSERT(state <= KVersionControlPlugin::LocallyModifiedUnstagedVersion); if (m_cachedSize != size) { m_cachedSize = size; @@ -159,17 +171,35 @@ QPixmap DolphinFileItemDelegate::emblemForState(KVersionControlPlugin::VersionSt } const QSize emblemSize(emblemHeight, emblemHeight); - for (int i = KVersionControlPlugin::NormalVersion; i <= KVersionControlPlugin::ConflictingVersion; ++i) { + for (int i = KVersionControlPlugin::NormalVersion; i <= KVersionControlPlugin::LocallyModifiedUnstagedVersion; ++i) { QString iconName; switch (i) { - case KVersionControlPlugin::NormalVersion: iconName = "vcs-normal"; break; - case KVersionControlPlugin::UpdateRequiredVersion: iconName = "vcs-update-required"; break; - case KVersionControlPlugin::LocallyModifiedVersion: iconName = "vcs-locally-modified"; break; - case KVersionControlPlugin::AddedVersion: iconName = "vcs-added"; break; - case KVersionControlPlugin::RemovedVersion: iconName = "vcs-removed"; break; - case KVersionControlPlugin::ConflictingVersion: iconName = "vcs-conflicting"; break; + case KVersionControlPlugin::NormalVersion: + iconName = "vcs-normal"; + break; + case KVersionControlPlugin::UpdateRequiredVersion: + iconName = "vcs-update-required"; + break; + case KVersionControlPlugin::LocallyModifiedVersion: + iconName = "vcs-locally-modified"; + break; + case KVersionControlPlugin::LocallyModifiedUnstagedVersion: + iconName = "vcs-locally-modified-unstaged"; + break; + case KVersionControlPlugin::AddedVersion: + iconName = "vcs-added"; + break; + case KVersionControlPlugin::RemovedVersion: + iconName = "vcs-removed"; + break; + case KVersionControlPlugin::ConflictingVersion: + iconName = "vcs-conflicting"; + break; case KVersionControlPlugin::UnversionedVersion: - default: Q_ASSERT(false); break; + break; + default: + Q_ASSERT(false); + break; } m_cachedEmblems[i] = KIcon(iconName).pixmap(emblemSize);