/***************************************************************************
- * Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
+ * Copyright (C) 2008 by Peter Penz <peter.penz19@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
#include "dolphinfileitemdelegate.h"
#include "dolphinmodel.h"
-#include <kfileitem.h>
-#include <kicon.h>
-#include <kiconloader.h>
-#include <kstringhandler.h>
+#include <KColorScheme>
+#include <KFileItem>
+#include <KGlobalSettings>
+#include <KIcon>
+#include <KIconLoader>
+#include <KStringHandler>
#include <QAbstractItemModel>
#include <QAbstractProxyModel>
KFileItemDelegate(parent),
m_hasMinimizedNameColumn(false),
m_cachedSize(),
- m_cachedEmblems()
+ m_cachedEmblems(),
+ m_cachedInactiveTextColorDirty(true)
{
setJobTransfersVisible(true);
+ connect(KGlobalSettings::self(), SIGNAL(kdisplayPaletteChanged()), this, SLOT(handleDisplayPaletteChange()));
}
DolphinFileItemDelegate::~DolphinFileItemDelegate()
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;
+ if (m_cachedInactiveTextColorDirty) {
+ m_cachedInactiveTextColor = KColorScheme(QPalette::Active).foreground(KColorScheme::InactiveText).color();
+ m_cachedInactiveTextColorDirty = false;
+ }
+ palette.setColor(QPalette::Text, m_cachedInactiveTextColor);
+ 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.
return width;
}
+void DolphinFileItemDelegate::handleDisplayPaletteChange()
+{
+ m_cachedInactiveTextColorDirty = true;
+}
+
void DolphinFileItemDelegate::adjustOptionWidth(QStyleOptionViewItemV4& option,
const QAbstractProxyModel* proxyModel,
const DolphinModel* dolphinModel,
// have been optimized for the base colors of the corresponding Oxygen emblems.
switch (state) {
case KVersionControlPlugin::UpdateRequiredVersion: tintColor = Qt::yellow; break;
- case KVersionControlPlugin::LocallyModifiedUnstagedVersion: tintColor = Qt::darkRed; break;
+ case KVersionControlPlugin::LocallyModifiedUnstagedVersion: tintColor = Qt::darkGreen; break;
case KVersionControlPlugin::LocallyModifiedVersion: tintColor = Qt::green; break;
- case KVersionControlPlugin::AddedVersion: tintColor = Qt::darkGreen; break;
+ case KVersionControlPlugin::AddedVersion: tintColor = Qt::green; break;
case KVersionControlPlugin::RemovedVersion: tintColor = Qt::darkRed; break;
case KVersionControlPlugin::ConflictingVersion: tintColor = Qt::red; break;
case KVersionControlPlugin::UnversionedVersion: