Skip to content

Commit

Permalink
ListItem: some amendments
Browse files Browse the repository at this point in the history
  • Loading branch information
fperillo committed Oct 6, 2017
1 parent f7cd860 commit 1bfb999
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 83 deletions.
97 changes: 24 additions & 73 deletions components/qtmateriallistitem.cpp
Expand Up @@ -35,11 +35,11 @@ void QtMaterialListItemPrivate::init()
// type = Material::LetterListItem;
useThemeColors = true;

QFontDatabase db;
QFont font(db.font("Times New Roman", "Medium", 16));
font.setPointSizeF(16);
font.setLetterSpacing(QFont::PercentageSpacing, 102);
q->setFont(font);
// QFontDatabase db;
// QFont font(db.font("Roboto", "Regular", 10));
// font.setPointSize(10);
// font.setLetterSpacing(QFont::PercentageSpacing, 102);
// q->setFont(font);
q->setContentsMargins(0,0,0,0);

QSizePolicy policy(QSizePolicy::MinimumExpanding,
Expand All @@ -56,6 +56,13 @@ QtMaterialListItem::QtMaterialListItem(QWidget *parent)
d_ptr(new QtMaterialListItemPrivate(this))
{
d_func()->init();
if( QFontDatabase::addApplicationFont( ":/fonts/rregular" ) == -1 )
setSize(128);
QFontDatabase::addApplicationFont( ":/fonts/rmedium" );
QFontDatabase::addApplicationFont( ":/fonts/rlight" );
QFontDatabase::addApplicationFont( ":/fonts/ubuntu" );
// if (QFontDatabase::addApplicationFont( ":/fonts/Roboto/Roboto-Regular.ttf" ) == -1 )
// QMessageBox::about( this, "Titolo", "stringa" );
}

QtMaterialListItem::~QtMaterialListItem()
Expand Down Expand Up @@ -213,9 +220,9 @@ void QtMaterialListItem::paintEvent(QPaintEvent *event)

QRect r = rect();
QRect textRect;
const qreal hs = d->size/2;
// const qreal hs = d->size/2;

painter.fillRect( rect(), QColor(215,215,215));
painter.fillRect( rect(), QColor(255,255,255));

painter.setRenderHint(QPainter::Antialiasing);

Expand All @@ -226,18 +233,12 @@ void QtMaterialListItem::paintEvent(QPaintEvent *event)
if( !d->icon.isNull() && d->image.isNull() )
{
textRect = r.adjusted( 72,0,-16,0 );
// iconRect = r.adjusted( 16, 16,-16,-16 );
// IMAGE painter.drawPixmap(QRect(16, 16, 24, 24), d->pixmap);
//
QRect iconGeometry(16, 16, 24, 24);
QPixmap pixmap = d->icon.pixmap(24, 24);
QPainter icon(&pixmap);
icon.setCompositionMode(QPainter::CompositionMode_SourceIn);
icon.fillRect(pixmap.rect(), QtMaterialStyle::instance().themeColor("text"));
painter.drawPixmap(iconGeometry, pixmap);

// painter.drawPixmap(QRect(width()/2-hs, height()/2-hs, d->size, d->size), d->pixmap);

}
else if( !d->icon.isNull() && ! d->image.isNull() )
{
Expand All @@ -264,67 +265,17 @@ void QtMaterialListItem::paintEvent(QPaintEvent *event)
else
textRect = r.adjusted( 16,0,-16,0 );

painter.setFont( font() );
painter.setPen( QtMaterialStyle::instance().themeColor("text") );
painter.setRenderHint(QPainter::Antialiasing);
painter.drawText(textRect, Qt::AlignLeft + Qt::AlignVCenter, QString(d->letter));
//QFontDatabase db;
//QFont font(db.font("Ubuntu", "Regular", 16));
// font.setPointSize(16);
// font.setLetterSpacing(QFont::PercentageSpacing, 102);
QFont font("Roboto-Regular");
font.setPointSize(16);

/*
if (!isEnabled())
{
QBrush brush;
brush.setStyle(Qt::SolidPattern);
brush.setColor(QtMaterialStyle::instance().themeColor("disabled"));
painter.setPen(Qt::NoPen);
painter.setBrush(brush);
painter.drawEllipse(QRectF((width()-d->size)/2, (height()-d->size)/2,
d->size, d->size));
return;
}
*/
/*
if (Material::ImageListItem != d->type)
{
QBrush brush;
brush.setStyle(Qt::SolidPattern);
brush.setColor(backgroundColor());
painter.setPen(Qt::NoPen);
painter.setBrush(brush);
painter.drawEllipse(QRectF((width()-d->size)/2, (height()-d->size)/2,
d->size, d->size));
}
painter.setFont( font );
painter.setPen(QtMaterialStyle::instance().themeColor("text"));
painter.setRenderHint(QPainter::Antialiasing);

switch (d->type)
{
case Material::ImageListItem:
{
QPainterPath path;
path.addEllipse(width()/2-hs, height()/2-hs, d->size, d->size);
painter.setClipPath(path);
painter.drawText(textRect, Qt::AlignLeft + Qt::AlignVCenter, QString(d->letter));

painter.drawPixmap(QRect(width()/2-hs, height()/2-hs, d->size, d->size),
d->pixmap);
break;
}
case Material::IconListItem:
{
QRect iconGeometry((width()-hs)/2, (height()-hs)/2, hs, hs);
QPixmap pixmap = d->icon.pixmap(hs, hs);
QPainter icon(&pixmap);
icon.setCompositionMode(QPainter::CompositionMode_SourceIn);
icon.fillRect(pixmap.rect(), textColor());
painter.drawPixmap(iconGeometry, pixmap);
break;
}
case Material::LetterListItem:
{
painter.setPen(textColor());
painter.setBrush(Qt::NoBrush);
painter.drawText(r, Qt::AlignCenter, QString(d->letter));
break;
}
default:
break;
}
*/
}
12 changes: 6 additions & 6 deletions components/resources.qrc
@@ -1,11 +1,11 @@
<RCC>
<qresource prefix="/fonts">
<file>../fonts/Roboto/Roboto-Black.ttf</file>
<file>../fonts/Roboto/Roboto-Bold.ttf</file>
<file>../fonts/Roboto/Roboto-Medium.ttf</file>
<file>../fonts/Roboto/Roboto-Regular.ttf</file>
<file>../fonts/Roboto/Roboto-Light.ttf</file>
<file>../fonts/Roboto/Roboto-Thin.ttf</file>
<file alias="rblack">../fonts/Roboto/Roboto-Black.ttf</file>
<file alias="rbold">../fonts/Roboto/Roboto-Bold.ttf</file>
<file alias="rmedium">../fonts/Roboto/Roboto-Medium.ttf</file>
<file alias="rregular">../fonts/Roboto/Roboto-Regular.ttf</file>
<file alias="rlight">../fonts/Roboto/Roboto-Light.ttf</file>
<file alias="rthin">../fonts/Roboto/Roboto-Thin.ttf</file>
</qresource>
<qresource prefix="/icons">
<file>icons/communication/svg/production/ic_message_24px.svg</file>
Expand Down
8 changes: 4 additions & 4 deletions examples/listitemsettingseditor.cpp
Expand Up @@ -8,7 +8,7 @@ ListItemSettingsEditor::ListItemSettingsEditor(QWidget *parent)
ui(new Ui::ListItemSettingsForm),
m_listitem(new QtMaterialListItem())
{
m_listitem->setLetter( QString("This is the first, image+icon+text, lineitem" ));
m_listitem->setLetter( QString("This is the first, image+icon+text, lineitem. I want the string to be longer and longer to test clipping." ));
m_listitem->setIcon(QtMaterialTheme::icon("communication", "message"));
m_listitem->setImage(QImage(":/images/assets/sikh.jpg"));
QVBoxLayout *layout = new QVBoxLayout;
Expand All @@ -25,18 +25,18 @@ ListItemSettingsEditor::ListItemSettingsEditor(QWidget *parent)
layout->setContentsMargins(20, 20, 20, 20);

QtMaterialListItem *m_listitem2 = new QtMaterialListItem;
m_listitem2->setLetter( QString("This is the second, icon+text, lineitem" ));
m_listitem2->setLetter( QString("This is the second, icon+text, lineitem. I want the string to be longer and longer to test clipping." ));
m_listitem2->setIcon(QtMaterialTheme::icon("communication", "message"));

QtMaterialListItem *m_listitem3 = new QtMaterialListItem;
m_listitem3->setLetter( QString("This is the third, text only, lineitem" ));
m_listitem3->setLetter( QString("This is the third, text only, lineitem. I want the string to be longer and longer to test clipping." ));

// m_listitem2->setImage(QImage(":/images/assets/sikh.jpg"));


layout = new QVBoxLayout;
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(1);
layout->setSpacing(0);
canvas->setLayout(layout);
layout->addWidget(m_listitem);
layout->addWidget(m_listitem2);
Expand Down

0 comments on commit 1bfb999

Please sign in to comment.