improvements in layouts editor painting

pull/2/head
Michail Vourlakos 7 years ago
parent ece4d55f1c
commit 20c38f6f22

@ -126,7 +126,19 @@ void ActivityCmbBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem
myOptions.text = assignedActivitiesText(index);
QTextDocument doc;
doc.setHtml(myOptions.text);
QString css;
QBrush nBrush;
if ((option.state & QStyle::State_Active) && (option.state & QStyle::State_Selected)) {
nBrush = option.palette.brush(QPalette::Active, QPalette::HighlightedText);
} else {
nBrush = option.palette.brush(QPalette::Inactive, QPalette::Text);
}
css = QString("body { color : %1; }").arg(nBrush.color().name());
doc.setDefaultStyleSheet(css);
doc.setHtml("<body>" + myOptions.text + "</body>");
myOptions.text = "";
myOptions.widget->style()->drawControl(QStyle::CE_ItemViewItem, &myOptions, painter);
@ -136,6 +148,7 @@ void ActivityCmbBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem
painter->translate(myOptions.rect.left(), myOptions.rect.top() + offsetY);
QRect clip(0, 0, myOptions.rect.width(), myOptions.rect.height());
doc.drawContents(painter, clip);
} else {
QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &myOptions, painter);

@ -25,6 +25,9 @@
#include <QKeyEvent>
#include <QMouseEvent>
#include <QPainter>
#include <QStandardItemModel>
const int HIDDENTEXTCOLUMN = 1;
CheckBoxDelegate::CheckBoxDelegate(QObject *parent)
: QStyledItemDelegate(parent)
@ -33,24 +36,8 @@ CheckBoxDelegate::CheckBoxDelegate(QObject *parent)
void CheckBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
if (option.state & QStyle::State_Selected) {
QPen nPen;
QBrush nBrush;
if (option.state & QStyle::State_Active) {
nBrush = option.palette.highlight();
} else if (option.state & QStyle::State_MouseOver) {
nBrush = option.palette.brush(QPalette::Inactive, QPalette::Highlight);
} else {
nBrush = option.palette.brush(QPalette::Inactive, QPalette::Highlight);
}
painter->setBrush(nBrush);
nPen.setColor(nBrush.color());
painter->setPen(nPen);
painter->drawRect(option.rect);
}
QStandardItemModel *model = (QStandardItemModel *) index.model();
QStyledItemDelegate::paint(painter, option, model->index(index.row(), HIDDENTEXTCOLUMN));
QStyledItemDelegate::paint(painter, option, index);
}

@ -60,5 +60,7 @@ void ColorCmbBoxItemDelegate::paint(QPainter *painter, const QStyleOptionViewIte
painter->drawRect(option.rect - QMargins(5, 5, 5, 5));
}
}
painter->restore();
}

@ -20,6 +20,7 @@
#include "layoutnamedelegate.h"
#include <QApplication>
#include <QBitmap>
#include <QDebug>
#include <QEvent>
#include <QKeyEvent>
@ -60,14 +61,78 @@ void LayoutNameDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
myOptionMain.rect.setWidth(option.rect.width() - startWidth - thick);
QStyledItemDelegate::paint(painter, myOptionMain, index);
//! draw background
//! draw background at edges
QStyledItemDelegate::paint(painter, myOptionS, model->index(index.row(), HIDDENTEXTCOLUMN));
//! Lock Icon 1: Unicode character attempt
/*QString s = QChar(0x2318);
QString s = QChar(0x2757);
myOptionE.text = s;*/
QStyledItemDelegate::paint(painter, myOptionE, model->index(index.row(), HIDDENTEXTCOLUMN));
//! draw icon
//! Lock Icon 2: QIcon attempt that doesnt change color
QIcon lockIcon = QIcon::fromTheme("object-locked");
painter->drawPixmap(destinationE, lockIcon.pixmap(thick, thick));
//! Lock Icon 3: QIcon and change colors attempt
/*QIcon lockIcon = QIcon::fromTheme("object-locked");
QPixmap origPixmap = lockIcon.pixmap(thick, thick);
QPixmap lockPixmap = origPixmap;
QBrush nBrush;
if ((option.state & QStyle::State_Active) && (option.state & QStyle::State_Selected)) {
nBrush = option.palette.brush(QPalette::Active, QPalette::HighlightedText);
} else {
nBrush = option.palette.brush(QPalette::Inactive, QPalette::Text);
}
lockPixmap.fill(nBrush.color());
lockPixmap.setMask(origPixmap.createMaskFromColor(Qt::transparent));
painter->drawPixmap(destinationE, lockPixmap);*/
//! Lock Icon 4: Plasma::Svg and change color group attempt
/*Plasma::Svg svgIcon;
svgIcon.setStatus(Plasma::Svg::Normal);
svgIcon.setUsingRenderingCache(false);
svgIcon.setDevicePixelRatio(qApp->devicePixelRatio());
//! find path
//try to load from iconloader an svg with Plasma::Svg
const auto *iconTheme = KIconLoader::global()->theme();
QString iconPath;
if (iconTheme) {
iconPath = iconTheme->iconPath("object-locked" + QLatin1String(".svg")
, thick
, KIconLoader::MatchBest);
if (iconPath.isEmpty()) {
iconPath = iconTheme->iconPath("object-locked" + QLatin1String(".svgz")
, thick
, KIconLoader::MatchBest);
}
} else {
qWarning() << "KIconLoader has no theme set";
}
if (!iconPath.isEmpty()) {
svgIcon.setImagePath(iconPath);
if ((option.state & QStyle::State_Active) && (option.state & QStyle::State_Selected)) {
svgIcon.setColorGroup(Plasma::Theme::ComplementaryColorGroup);
} else {
svgIcon.setColorGroup(Plasma::Theme::NormalColorGroup);
}
svgIcon.resize(thick, thick);
}
painter->drawPixmap(destinationE, svgIcon.pixmap());*/
return;
}

Loading…
Cancel
Save