kde-workspace/kate/part/schema/katestyletreewidget.cpp
Ivailo Monev 5b22777ceb generic: replace KColorDialog with QColorDialog
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-03 10:48:29 +03:00

722 lines
24 KiB
C++

/* This file is part of the KDE libraries
Copyright (C) 2001-2003 Christoph Cullmann <cullmann@kde.org>
Copyright (C) 2002, 2003 Anders Lund <anders.lund@lund.tdcadsl.dk>
Copyright (C) 2005-2006 Hamish Rodda <rodda@kde.org>
Copyright (C) 2007 Mirko Stocker <me@misto.ch>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "katestyletreewidget.h"
#include <QtGui/QPainter>
#include <QtGui/qevent.h>
#include <QtGui/QAction>
#include <QtGui/QStyledItemDelegate>
#include <QtGui/QHeaderView>
#include <QtGui/QColorDialog>
#include <klocale.h>
#include <kicon.h>
#include <kcolorscheme.h>
#include <kmenu.h>
#include <kmessagebox.h>
#include <kdialog.h>
#include "kateconfig.h"
#include "kateextendedattribute.h"
//BEGIN KateStyleTreeDelegate
class KateStyleTreeDelegate : public QStyledItemDelegate
{
public:
KateStyleTreeDelegate(KateStyleTreeWidget* widget);
virtual void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;
private:
QBrush getBrushForColorColumn(const QModelIndex& index, int column) const;
KateStyleTreeWidget* m_widget;
};
//END
//BEGIN KateStyleTreeWidgetItem decl
/*
QListViewItem subclass to display/edit a style, bold/italic is check boxes,
normal and selected colors are boxes, which will display a color chooser when
activated.
The context name for the style will be drawn using the editor default font and
the chosen colors.
This widget id designed to handle the default as well as the individual hl style
lists.
This widget is designed to work with the KateStyleTreeWidget class exclusively.
Added by anders, jan 23 2002.
*/
class KateStyleTreeWidgetItem : public QTreeWidgetItem
{
public:
KateStyleTreeWidgetItem( QTreeWidgetItem *parent, const QString& styleName, KTextEditor::Attribute::Ptr defaultstyle, KateExtendedAttribute::Ptr data = KateExtendedAttribute::Ptr() );
KateStyleTreeWidgetItem( QTreeWidget *parent, const QString& styleName, KTextEditor::Attribute::Ptr defaultstyle, KateExtendedAttribute::Ptr data = KateExtendedAttribute::Ptr() );
~KateStyleTreeWidgetItem() {}
enum columns {
Context = 0,
Bold,
Italic,
Underline,
StrikeOut,
Foreground,
SelectedForeground,
Background,
SelectedBackground,
UseDefaultStyle,
NumColumns
};
/* initializes the style from the default and the hldata */
void initStyle();
/* updates the hldata's style */
void updateStyle();
/* For bool fields, toggles them, for color fields, display a color chooser */
void changeProperty( int p );
/** unset a color.
* c is 100 (BGColor) or 101 (SelectedBGColor) for now.
*/
void unsetColor( int c );
/* style context name */
QString contextName() const { return text(0); }
/* only true for a hl mode item using its default style */
bool defStyle() const;
/* true for default styles */
bool isDefault() const;
/* whichever style is active (currentStyle for hl mode styles not using
the default style, defaultStyle otherwise) */
KTextEditor::Attribute::Ptr style() const { return currentStyle; }
virtual QVariant data( int column, int role ) const;
KateStyleTreeWidget* treeWidget() const;
private:
/* private methods to change properties */
void toggleDefStyle();
void setColor( int );
/* helper function to copy the default style into the KateExtendedAttribute,
when a property is changed and we are using default style. */
KTextEditor::Attribute::Ptr currentStyle, // the style currently in use (was "is")
defaultStyle; // default style for hl mode contexts and default styles (was "ds")
KateExtendedAttribute::Ptr actualStyle; // itemdata for hl mode contexts (was "st")
};
//END
//BEGIN KateStyleTreeWidget
KateStyleTreeWidget::KateStyleTreeWidget( QWidget *parent, bool showUseDefaults )
: QTreeWidget( parent )
{
setItemDelegate(new KateStyleTreeDelegate(this));
setRootIsDecorated(false);
QStringList headers;
headers << i18nc("@title:column Meaning of text in editor", "Context") << QString() << QString() << QString() << QString() << i18nc("@title:column Text style", "Normal") << i18nc("@title:column Text style", "Selected") << i18nc("@title:column Text style", "Background") << i18nc("@title:column Text style", "Background Selected");
if(showUseDefaults) {
headers << i18n("Use Default Style");
}
setHeaderLabels(headers);
headerItem()->setIcon(1, KIcon("format-text-bold"));
headerItem()->setIcon(2, KIcon("format-text-italic"));
headerItem()->setIcon(3, KIcon("format-text-underline"));
headerItem()->setIcon(4, KIcon("format-text-strikethrough"));
// grap the bg color, selected color and default font
normalcol = KColorScheme(QPalette::Active, KColorScheme::View).foreground().color();
bgcol = KateRendererConfig::global()->backgroundColor();
selcol = KateRendererConfig::global()->selectionColor();
docfont = KateRendererConfig::global()->font();
QPalette pal = viewport()->palette();
pal.setColor(QPalette::Background, bgcol);
viewport()->setPalette( pal );
}
QIcon brushIcon(const QColor& color)
{
QPixmap pm(16,16);
QRect all(0,0,15,15);
{
QPainter p(&pm);
p.fillRect(all, color);
p.setPen(Qt::black);
p.drawRect(all);
}
return QIcon(pm);
}
bool KateStyleTreeWidget::edit( const QModelIndex & index, EditTrigger trigger, QEvent * event )
{
if(index.column() == KateStyleTreeWidgetItem::Context)
return false;
KateStyleTreeWidgetItem *i = dynamic_cast<KateStyleTreeWidgetItem*>(itemFromIndex(index));
if (!i)
return QTreeWidget::edit(index, trigger, event);
switch (trigger) {
case QAbstractItemView::DoubleClicked:
case QAbstractItemView::SelectedClicked:
case QAbstractItemView::EditKeyPressed:
i->changeProperty(index.column());
update(index);
update(index.sibling(index.row(), KateStyleTreeWidgetItem::Context));
return false;
default:
return QTreeWidget::edit(index, trigger, event);
}
}
void KateStyleTreeWidget::resizeColumns()
{
for (int i = 0; i < columnCount(); ++i)
resizeColumnToContents(i);
}
void KateStyleTreeWidget::showEvent( QShowEvent * event )
{
QTreeWidget::showEvent(event);
resizeColumns();
}
void KateStyleTreeWidget::contextMenuEvent( QContextMenuEvent * event )
{
KateStyleTreeWidgetItem *i = dynamic_cast<KateStyleTreeWidgetItem*>(itemAt(event->pos()));
if (!i) return;
KMenu m( this );
KTextEditor::Attribute::Ptr currentStyle = i->style();
// the title is used, because the menu obscures the context name when
// displayed on behalf of spacePressed().
QPainter p;
p.setPen(Qt::black);
QIcon cl = brushIcon( i->style()->foreground().color() );
QIcon scl = brushIcon( i->style()->selectedForeground().color() );
QIcon bgcl = brushIcon( i->style()->hasProperty(QTextFormat::BackgroundBrush) ? i->style()->background().color() : viewport()->palette().base().color() );
QIcon sbgcl = brushIcon( i->style()->hasProperty(KTextEditor::Attribute::SelectedBackground) ? i->style()->selectedBackground().color() : viewport()->palette().base().color() );
m.addTitle( i->contextName() );
QAction* a = m.addAction( i18n("&Bold"), this, SLOT(changeProperty()) );
a->setCheckable(true);
a->setChecked( currentStyle->fontBold() );
a->setData(KateStyleTreeWidgetItem::Bold);
a = m.addAction( i18n("&Italic"), this, SLOT(changeProperty()) );
a->setCheckable(true);
a->setChecked( currentStyle->fontItalic() );
a->setData(KateStyleTreeWidgetItem::Italic);
a = m.addAction( i18n("&Underline"), this, SLOT(changeProperty()) );
a->setCheckable(true);
a->setChecked( currentStyle->fontUnderline() );
a->setData(KateStyleTreeWidgetItem::Underline);
a = m.addAction( i18n("S&trikeout"), this, SLOT(changeProperty()) );
a->setCheckable(true);
a->setChecked( currentStyle->fontStrikeOut() );
a->setData(KateStyleTreeWidgetItem::StrikeOut);
m.addSeparator();
a = m.addAction( cl, i18n("Normal &Color..."), this, SLOT(changeProperty()) );
a->setData(KateStyleTreeWidgetItem::Foreground);
a = m.addAction( scl, i18n("&Selected Color..."), this, SLOT(changeProperty()) );
a->setData(KateStyleTreeWidgetItem::SelectedForeground);
a = m.addAction( bgcl, i18n("&Background Color..."), this, SLOT(changeProperty()) );
a->setData(KateStyleTreeWidgetItem::Background);
a = m.addAction( sbgcl, i18n("S&elected Background Color..."), this, SLOT(changeProperty()) );
a->setData(KateStyleTreeWidgetItem::SelectedBackground);
// Unset [some] colors. I could show one only if that button was clicked, but that
// would disable setting this with the keyboard (how many aren't doing just
// that every day? ;)
// ANY ideas for doing this in a nicer way will be warmly wellcomed.
KTextEditor::Attribute::Ptr style = i->style();
if ( style->hasProperty( QTextFormat::BackgroundBrush) || style->hasProperty( KTextEditor::Attribute::SelectedBackground ) )
{
m.addSeparator();
if ( style->hasProperty( QTextFormat::BackgroundBrush) ) {
a = m.addAction( i18n("Unset Background Color"), this, SLOT(unsetColor()) );
a->setData(100);
}
if ( style->hasProperty( KTextEditor::Attribute::SelectedBackground ) ) {
a = m.addAction( i18n("Unset Selected Background Color"), this, SLOT(unsetColor()) );
a->setData(101);
}
}
if ( ! i->isDefault() && ! i->defStyle() ) {
m.addSeparator();
a = m.addAction( i18n("Use &Default Style"), this, SLOT(changeProperty()) );
a->setCheckable(true);
a->setChecked( i->defStyle() );
a->setData(KateStyleTreeWidgetItem::UseDefaultStyle);
}
m.exec( event->globalPos() );
}
void KateStyleTreeWidget::changeProperty()
{
static_cast<KateStyleTreeWidgetItem*>(currentItem())->changeProperty( static_cast<QAction*>(sender())->data().toInt() );
}
void KateStyleTreeWidget::unsetColor()
{
static_cast<KateStyleTreeWidgetItem*>(currentItem())->unsetColor( static_cast<QAction*>(sender())->data().toInt() );
}
void KateStyleTreeWidget::updateGroupHeadings()
{
for(int i = 0; i < topLevelItemCount(); i++) {
QTreeWidgetItem* currentTopLevelItem = topLevelItem(i);
QTreeWidgetItem* firstChild = currentTopLevelItem->child(0);
if(firstChild) {
QColor foregroundColor = firstChild->data(KateStyleTreeWidgetItem::Foreground, Qt::DisplayRole).value<QColor>();
QColor backgroundColor = firstChild->data(KateStyleTreeWidgetItem::Background, Qt::DisplayRole).value<QColor>();
currentTopLevelItem->setForeground(KateStyleTreeWidgetItem::Context, foregroundColor);
if(backgroundColor.isValid()) {
currentTopLevelItem->setBackground(KateStyleTreeWidgetItem::Context, backgroundColor);
}
}
}
}
void KateStyleTreeWidget::emitChanged( )
{
updateGroupHeadings();
emit changed();
}
void KateStyleTreeWidget::addItem( const QString & styleName, KTextEditor::Attribute::Ptr defaultstyle, KateExtendedAttribute::Ptr data )
{
new KateStyleTreeWidgetItem(this, styleName, defaultstyle, data);
}
void KateStyleTreeWidget::addItem( QTreeWidgetItem * parent, const QString & styleName, KTextEditor::Attribute::Ptr defaultstyle, KateExtendedAttribute::Ptr data )
{
new KateStyleTreeWidgetItem(parent, styleName, defaultstyle, data);
updateGroupHeadings();
}
//END
//BEGIN KateStyleTreeWidgetItem
KateStyleTreeDelegate::KateStyleTreeDelegate(KateStyleTreeWidget* widget)
: m_widget(widget)
{
}
QBrush KateStyleTreeDelegate::getBrushForColorColumn(const QModelIndex& index, int column) const
{
QModelIndex colorIndex = index.sibling(index.row(), column);
QVariant displayData = colorIndex.model()->data(colorIndex);
return qvariant_cast<QBrush>(displayData);
}
void KateStyleTreeDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
static QSet<int> columns;
if (!columns.count())
columns << KateStyleTreeWidgetItem::Foreground << KateStyleTreeWidgetItem::SelectedForeground << KateStyleTreeWidgetItem::Background << KateStyleTreeWidgetItem::SelectedBackground;
if(index.column() == KateStyleTreeWidgetItem::Context) {
QStyleOptionViewItem styleContextItem(option);
QBrush brush = getBrushForColorColumn(index, KateStyleTreeWidgetItem::SelectedBackground);
if (brush != QBrush()) {
styleContextItem.palette.setBrush(QPalette::Highlight, brush);
}
brush = getBrushForColorColumn(index, KateStyleTreeWidgetItem::SelectedForeground);
if (brush != QBrush()) {
styleContextItem.palette.setBrush(QPalette::HighlightedText, brush);
}
return QStyledItemDelegate::paint(painter, styleContextItem, index);
}
QStyledItemDelegate::paint(painter, option, index);
if (!columns.contains(index.column())) {
return;
}
QVariant displayData = index.model()->data(index);
if (displayData.type() != QVariant::Brush)
return;
QBrush brush = qvariant_cast<QBrush>(displayData);
QStyleOptionButton opt;
opt.rect = option.rect;
opt.palette = m_widget->palette();
bool set = brush != QBrush();
if (!set) {
opt.text = i18nc("No text or background color set", "None set");
brush = Qt::white;
}
m_widget->style()->drawControl(QStyle::CE_PushButton, &opt, painter, m_widget);
if (set)
painter->fillRect(m_widget->style()->subElementRect(QStyle::SE_PushButtonContents, &opt,m_widget), brush);
}
KateStyleTreeWidgetItem::KateStyleTreeWidgetItem( QTreeWidgetItem *parent, const QString & stylename,
KTextEditor::Attribute::Ptr defaultAttribute, KateExtendedAttribute::Ptr actualAttribute )
: QTreeWidgetItem( parent ),
currentStyle( 0L ),
defaultStyle( defaultAttribute ),
actualStyle( actualAttribute )
{
initStyle();
setText(0, stylename);
}
KateStyleTreeWidgetItem::KateStyleTreeWidgetItem( QTreeWidget *parent, const QString & stylename,
KTextEditor::Attribute::Ptr defaultAttribute, KateExtendedAttribute::Ptr actualAttribute )
: QTreeWidgetItem( parent ),
currentStyle( 0L ),
defaultStyle( defaultAttribute ),
actualStyle( actualAttribute )
{
initStyle();
setText(0, stylename);
}
void KateStyleTreeWidgetItem::initStyle()
{
if (!actualStyle)
{
currentStyle = defaultStyle;
}
else
{
currentStyle = new KTextEditor::Attribute (*defaultStyle);
if (actualStyle->hasAnyProperty())
*currentStyle += *actualStyle;
}
setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
}
static Qt::CheckState toCheckState(bool b) {
return b ? Qt::Checked : Qt::Unchecked;
}
QVariant KateStyleTreeWidgetItem::data( int column, int role ) const
{
if (column == Context) {
switch (role) {
case Qt::ForegroundRole:
if (style()->hasProperty(QTextFormat::ForegroundBrush))
return style()->foreground().color();
break;
case Qt::BackgroundRole:
if (style()->hasProperty(QTextFormat::BackgroundBrush))
return style()->background().color();
break;
case Qt::FontRole:
return style()->font();
break;
}
}
if (role == Qt::CheckStateRole) {
switch (column) {
case Bold:
return toCheckState(style()->fontBold());
case Italic:
return toCheckState(style()->fontItalic());
case Underline:
return toCheckState(style()->fontUnderline());
case StrikeOut:
return toCheckState(style()->fontStrikeOut());
case UseDefaultStyle:
/* can't compare all attributes, currentStyle has always more than defaultStyle (e.g. the item's name),
* so we just compare the important ones:*/
return toCheckState(
currentStyle->foreground() == defaultStyle->foreground()
&& currentStyle->background() == defaultStyle->background()
&& currentStyle->selectedForeground() == defaultStyle->selectedForeground()
&& currentStyle->selectedBackground() == defaultStyle->selectedBackground()
&& currentStyle->fontBold() == defaultStyle->fontBold()
&& currentStyle->fontItalic() == defaultStyle->fontItalic()
&& currentStyle->fontUnderline() == defaultStyle->fontUnderline()
&& currentStyle->fontStrikeOut() == defaultStyle->fontStrikeOut());
}
}
if (role == Qt::DisplayRole) {
switch (column) {
case Foreground:
return style()->foreground();
case SelectedForeground:
return style()->selectedForeground();
case Background:
return style()->background();
case SelectedBackground:
return style()->selectedBackground();
}
}
return QTreeWidgetItem::data(column, role);
}
void KateStyleTreeWidgetItem::updateStyle()
{
// nothing there, not update it, will crash
if (!actualStyle)
return;
if ( currentStyle->hasProperty(QTextFormat::FontWeight) )
{
if ( currentStyle->fontWeight() != actualStyle->fontWeight())
actualStyle->setFontWeight( currentStyle->fontWeight() );
}
else actualStyle->clearProperty( QTextFormat::FontWeight );
if ( currentStyle->hasProperty(QTextFormat::FontItalic) )
{
if ( currentStyle->fontItalic() != actualStyle->fontItalic())
actualStyle->setFontItalic( currentStyle->fontItalic() );
}
else actualStyle->clearProperty( QTextFormat::FontItalic );
if ( currentStyle->hasProperty(QTextFormat::FontStrikeOut) )
{
if ( currentStyle->fontStrikeOut() != actualStyle->fontStrikeOut())
actualStyle->setFontStrikeOut( currentStyle->fontStrikeOut() );
}
else actualStyle->clearProperty( QTextFormat::FontStrikeOut );
if ( currentStyle->hasProperty(QTextFormat::FontUnderline) )
{
if ( currentStyle->fontUnderline() != actualStyle->fontUnderline())
actualStyle->setFontUnderline( currentStyle->fontUnderline() );
}
else actualStyle->clearProperty( QTextFormat::FontUnderline );
if ( currentStyle->hasProperty(KTextEditor::Attribute::Outline) )
{
if ( currentStyle->outline() != actualStyle->outline())
actualStyle->setOutline( currentStyle->outline() );
}
else actualStyle->clearProperty( KTextEditor::Attribute::Outline );
if ( currentStyle->hasProperty(QTextFormat::ForegroundBrush) )
{
if ( currentStyle->foreground() != actualStyle->foreground())
actualStyle->setForeground( currentStyle->foreground() );
}
else actualStyle->clearProperty( QTextFormat::ForegroundBrush );
if ( currentStyle->hasProperty(KTextEditor::Attribute::SelectedForeground) )
{
if ( currentStyle->selectedForeground() != actualStyle->selectedForeground())
actualStyle->setSelectedForeground( currentStyle->selectedForeground() );
}
else actualStyle->clearProperty( KTextEditor::Attribute::SelectedForeground );
if ( currentStyle->hasProperty(QTextFormat::BackgroundBrush) )
{
if ( currentStyle->background() != actualStyle->background())
actualStyle->setBackground( currentStyle->background() );
}
else actualStyle->clearProperty( QTextFormat::BackgroundBrush );
if ( currentStyle->hasProperty(KTextEditor::Attribute::SelectedBackground) )
{
if ( currentStyle->selectedBackground() != actualStyle->selectedBackground())
actualStyle->setSelectedBackground( currentStyle->selectedBackground() );
}
else actualStyle->clearProperty( KTextEditor::Attribute::SelectedBackground );
}
/* only true for a hl mode item using its default style */
bool KateStyleTreeWidgetItem::defStyle() const { return actualStyle && actualStyle->properties() != defaultStyle->properties(); }
/* true for default styles */
bool KateStyleTreeWidgetItem::isDefault() const { return actualStyle ? false : true; }
void KateStyleTreeWidgetItem::changeProperty( int p )
{
if ( p == Bold )
currentStyle->setFontBold( ! currentStyle->fontBold() );
else if ( p == Italic )
currentStyle->setFontItalic( ! currentStyle->fontItalic() );
else if ( p == Underline )
currentStyle->setFontUnderline( ! currentStyle->fontUnderline() );
else if ( p == StrikeOut )
currentStyle->setFontStrikeOut( ! currentStyle->fontStrikeOut() );
else if ( p == UseDefaultStyle )
toggleDefStyle();
else
setColor( p );
updateStyle ();
treeWidget()->emitChanged();
}
void KateStyleTreeWidgetItem::toggleDefStyle()
{
if ( *currentStyle == *defaultStyle ) {
KMessageBox::information( treeWidget(),
i18n("\"Use Default Style\" will be automatically unset when you change any style properties."),
i18n("Kate Styles"),
"Kate hl config use defaults" );
}
else {
currentStyle = KTextEditor::Attribute::Ptr(new KTextEditor::Attribute( *defaultStyle ));
updateStyle();
QModelIndex currentIndex = treeWidget()->currentIndex();
while(currentIndex.isValid()) {
treeWidget()->update(currentIndex);
currentIndex = currentIndex.sibling(currentIndex.row(), currentIndex.column() - 1);
}
}
}
void KateStyleTreeWidgetItem::setColor( int column )
{
QColor c; // use this
QColor d; // default color
if ( column == Foreground)
{
c = currentStyle->foreground().color();
d = defaultStyle->foreground().color();
}
else if ( column == SelectedForeground )
{
c = currentStyle->selectedForeground().color();
d = defaultStyle->selectedForeground().color();
}
else if ( column == Background )
{
c = currentStyle->background().color();
d = defaultStyle->background().color();
}
else if ( column == SelectedBackground )
{
c = currentStyle->selectedBackground().color();
d = defaultStyle->selectedBackground().color();
}
if (!c.isValid()) {
c = d;
}
c = QColorDialog::getColor( c, treeWidget(), KDialog::makeStandardCaption(i18n("Select Color"), treeWidget()) );
if (!c.isValid()) return;
bool def = ! c.isValid();
// if set default, and the attrib is set in the default style use it
// else if set default, unset it
// else set the selected color
switch (column)
{
case Foreground:
if ( def )
{
if ( defaultStyle->hasProperty(QTextFormat::ForegroundBrush) )
currentStyle->setForeground( defaultStyle->foreground());
else
currentStyle->clearProperty(QTextFormat::ForegroundBrush);
}
else
currentStyle->setForeground( c );
break;
case SelectedForeground:
if ( def )
{
if ( defaultStyle->hasProperty(KTextEditor::Attribute::SelectedForeground) )
currentStyle->setSelectedForeground( defaultStyle->selectedForeground());
else
currentStyle->clearProperty(KTextEditor::Attribute::SelectedForeground);
}
else
currentStyle->setSelectedForeground( c );
break;
case Background:
if ( def )
{
if ( defaultStyle->hasProperty(QTextFormat::BackgroundBrush) )
currentStyle->setBackground( defaultStyle->background());
else
currentStyle->clearProperty(QTextFormat::BackgroundBrush);
}
else
currentStyle->setBackground( c );
break;
case SelectedBackground:
if ( def )
{
if ( defaultStyle->hasProperty(KTextEditor::Attribute::SelectedBackground) )
currentStyle->setSelectedBackground( defaultStyle->selectedBackground());
else
currentStyle->clearProperty(KTextEditor::Attribute::SelectedBackground);
}
else
currentStyle->setSelectedBackground( c );
break;
}
//FIXME
//repaint();
}
void KateStyleTreeWidgetItem::unsetColor( int c )
{
if ( c == 100 && currentStyle->hasProperty(QTextFormat::BackgroundBrush) )
currentStyle->clearProperty(QTextFormat::BackgroundBrush);
else if ( c == 101 && currentStyle->hasProperty(KTextEditor::Attribute::SelectedBackground) )
currentStyle->clearProperty(KTextEditor::Attribute::SelectedBackground);
updateStyle();
treeWidget()->emitChanged();
}
KateStyleTreeWidget* KateStyleTreeWidgetItem::treeWidget() const
{
return static_cast<KateStyleTreeWidget*>(QTreeWidgetItem::treeWidget());
}
//END
#include "moc_katestyletreewidget.cpp"