#include "cfontview.h" #include "ui_cfontview.h" #include "common.h" #include cFontView::cFontView(QWidget *parent) : QWidget(parent), ui(new Ui::cFontView) { ui->setupUi(this); ui->m_lpSampleText->setAutoFillBackground(true); this->setMouseTracking(true); this->setAttribute(Qt::WA_Hover); QPalette palette = this->palette(); // m_defaultColor = palette.color(this->backgroundRole()); m_defaultColor = palette.color(QPalette::Window); m_selectedColor = palette.color(QPalette::Highlight); connect(ui->m_lpFontName, &cCheckBox::windowEntered, this, &cFontView::windowEntered); connect(ui->m_lpFontName, &cCheckBox::windowLeft, this, &cFontView::windowLeft); connect(ui->m_lpSampleText, &cLabel::windowEntered, this, &cFontView::windowEntered); connect(ui->m_lpSampleText, &cLabel::windowLeft, this, &cFontView::windowLeft); } cFontView::~cFontView() { delete ui; } void cFontView::setText(const QString& text) { ui->m_lpSampleText->setText(text); } void cFontView::setFont(const QFont& font) { // qDebug() << "family: " << font.family(); // qDebug() << "capitalization: " << font.capitalization(); // qDebug() << "defaultFamily: " << font.defaultFamily(); // qDebug() << "families: " << font.families(); // qDebug() << "family: " << font.family(); // qDebug() << "fixedPitch: " << font.fixedPitch(); // qDebug() << "hintingPreference: " << font.hintingPreference(); // qDebug() << "italic: " << font.italic(); // qDebug() << "kerning: " << font.kerning(); // qDebug() << "key: " << font.key(); // qDebug() << "letterSpacing: " << font.letterSpacing(); // qDebug() << "letterSpacingType: " << font.letterSpacingType(); // qDebug() << "overline: " << font.overline(); // qDebug() << "stretch: " << font.stretch(); // qDebug() << "strikeOut: " << font.strikeOut(); // qDebug() << "style: " << font.style(); // qDebug() << "styleHint: " << font.styleHint(); // qDebug() << "styleName: " << font.styleName(); // qDebug() << "styleStrategy: " << font.styleStrategy(); // qDebug() << "toString: " << font.toString(); // qDebug() << "underline: " << font.underline(); // qDebug() << "weight: " << font.weight(); // qDebug() << "wordSpacing: " << font.wordSpacing(); // qDebug() << "substitutions: " << font.substitutions(); // qDebug() << "--------------------"; ui->m_lpFontName->setText(font.family() + "(" + font.styleName() + ")"); ui->m_lpSampleText->setFont(font); } void cFontView::setBackground(const QColor& color) { m_backgroundColor = color; setColor(); } void cFontView::setForeground(const QColor& color) { m_foregroundColor = color; setColor(); } void cFontView::setColor() { QString foreground; QString background; if(m_foregroundColor.isValid()) foreground = "color: " + color2rgba(m_foregroundColor) + "; "; if(m_backgroundColor.isValid()) background = "background-color: " + color2rgba(m_backgroundColor) + "; "; if(!foreground.isEmpty() || !background.isEmpty()) ui->m_lpSampleText->setStyleSheet("QLabel { " + foreground + background + " }"); } void cFontView::enterEvent(QEvent* /*ev*/) { windowEntered(); } void cFontView::leaveEvent(QEvent* /*ev*/) { windowLeft(); } void cFontView::windowEntered() { ui->m_lpFontName->setStyleSheet("QCheckBox { background-color: " + color2rgba(m_selectedColor) + "; }"); } void cFontView::windowLeft() { ui->m_lpFontName->setStyleSheet("QCheckBox { background-color: " + color2rgba(m_defaultColor) + "; }"); } cFontViewList::cFontViewList(QObject* parent) : QObject(parent) { } void cFontViewList::add(cFontView* fontView) { this->append(fontView); } void cFontViewList::clearAll() { for(int i = 0;i < count();i++) delete at(i); clear(); }