void RenderThemeChromiumWin::systemFont(int propId, FontDescription& fontDescription) const { // This logic owes much to RenderThemeSafari.cpp. FontDescription* cachedDesc = 0; AtomicString faceName; float fontSize = 0; switch (propId) { case CSSValueSmallCaption: cachedDesc = &smallSystemFont; if (!smallSystemFont.isAbsoluteSize()) { NONCLIENTMETRICS metrics; getNonClientMetrics(&metrics); faceName = AtomicString(metrics.lfSmCaptionFont.lfFaceName, wcslen(metrics.lfSmCaptionFont.lfFaceName)); fontSize = systemFontSize(metrics.lfSmCaptionFont); } break; case CSSValueMenu: cachedDesc = &menuFont; if (!menuFont.isAbsoluteSize()) { NONCLIENTMETRICS metrics; getNonClientMetrics(&metrics); faceName = AtomicString(metrics.lfMenuFont.lfFaceName, wcslen(metrics.lfMenuFont.lfFaceName)); fontSize = systemFontSize(metrics.lfMenuFont); } break; case CSSValueStatusBar: cachedDesc = &labelFont; if (!labelFont.isAbsoluteSize()) { NONCLIENTMETRICS metrics; getNonClientMetrics(&metrics); faceName = metrics.lfStatusFont.lfFaceName; fontSize = systemFontSize(metrics.lfStatusFont); } break; case CSSValueWebkitMiniControl: case CSSValueWebkitSmallControl: case CSSValueWebkitControl: faceName = defaultGUIFont(); // Why 2 points smaller? Because that's what Gecko does. fontSize = defaultFontSize - pointsToPixels(2); break; default: faceName = defaultGUIFont(); fontSize = defaultFontSize; break; } if (!cachedDesc) cachedDesc = &fontDescription; if (fontSize) { cachedDesc->firstFamily().setFamily(faceName); cachedDesc->setIsAbsoluteSize(true); cachedDesc->setGenericFamily(FontDescription::NoFamily); cachedDesc->setSpecifiedSize(fontSize); cachedDesc->setWeight(FontWeightNormal); cachedDesc->setItalic(false); } fontDescription = *cachedDesc; }
void ItemPinned::updateSize(QSize maximumSize, int idealWidth) { setMinimumWidth(idealWidth); setMaximumWidth(maximumSize.width()); const int border = pointsToPixels(12); const int childItemWidth = idealWidth - border; const auto childItemMaximumSize = QSize(maximumSize.width() - border, maximumSize.height()); m_childItem->updateSize(childItemMaximumSize, childItemWidth); adjustSize(); }
QFontEngineS60::QFontEngineS60(const QFontDef &request, const QFontEngineS60Extensions *extensions) : m_extensions(extensions) , m_originalFont(0) , m_originalFontSizeInPixels((request.pixelSize >= 0)? request.pixelSize:pointsToPixels(request.pointSize)) , m_scaledFont(0) , m_scaledFontSizeInPixels(0) , m_activeFont(0) { QFontEngine::fontDef = request; setFontScale(1.0); cache_cost = sizeof(QFontEngineS60); }
void ConfigTabAppearance::updateFontButtons() { if ( !isVisible() ) return; const int iconExtent = pointsToPixels(12); const QSize iconSize(iconExtent * 2, iconExtent); const auto ratio = ui->scrollAreaTheme->devicePixelRatio(); QPixmap pix(iconSize * ratio); pix.setDevicePixelRatio(ratio); const QRect textRect( QPoint(0, 0), iconSize ); const QRegExp re("^pushButton(.*)Font$"); QList<QPushButton *> buttons = ui->scrollAreaTheme->findChildren<QPushButton *>(re); for (auto button : buttons) { if ( re.indexIn(button->objectName()) == -1 ) Q_ASSERT(false); const QString colorButtonName = "pushButtonColor" + re.cap(1); QPushButton *buttonFg = ui->scrollAreaTheme->findChild<QPushButton *>(colorButtonName + "Fg"); QColor colorFg = (buttonFg == nullptr) ? m_theme.color("fg") : evalColor( buttonFg->property("VALUE").toString(), m_theme ); QPushButton *buttonBg = ui->scrollAreaTheme->findChild<QPushButton *>(colorButtonName + "Bg"); QColor colorBg = (buttonBg == nullptr) ? m_theme.color("bg") : evalColor( buttonBg->property("VALUE").toString(), m_theme ); pix.fill(colorBg); QPainter painter(&pix); painter.setPen(colorFg); QFont font = m_theme.themeFontFromString( button->property("VALUE").toString() ); painter.setFont(font); painter.drawText( textRect, Qt::AlignCenter, tr("Abc", "Preview text for font settings in appearance dialog") ); button->setIcon(pix); button->setIconSize(iconSize); } }
void ActionHandler::closeAction(Action *action) { QString msg; QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information; if ( action->actionFailed() ) { msg += tr("Error: %1\n").arg(action->errorString()) + action->errorOutput(); icon = QSystemTrayIcon::Critical; } else if ( action->exitCode() != 0 ) { msg += tr("Exit code: %1\n").arg(action->exitCode()) + action->errorOutput(); icon = QSystemTrayIcon::Warning; } else if ( !action->inputFormats().isEmpty() ) { QModelIndex index = action->index(); ClipboardBrowser *c = m_wnd->browserForItem(index); if (c) { QStringList removeFormats = action->inputFormats(); removeFormats.removeAll( action->outputFormat() ); if ( !removeFormats.isEmpty() ) c->model()->setData(index, removeFormats, contentType::removeFormats); } } if ( !msg.isEmpty() ) { const int maxWidthPoints = ConfigurationManager::instance()->value("notification_maximum_width").toInt(); const QString command = action->command() .replace("copyq eval --", "copyq:"); const QString name = QString(command).replace('\n', " "); const QString format = tr("Command %1").arg(quoteString("%1")); const QString title = elideText(name, QFont(), format, pointsToPixels(maxWidthPoints)); msg.append("\n---\n" + command + "\n---"); m_wnd->showMessage(title, msg, icon); } m_activeActionDialog->actionFinished(action); Q_ASSERT(m_actionCounter > 0); --m_actionCounter; emit runningActionsCountChanged(); action->deleteLater(); }
void ItemPinned::paintEvent(QPaintEvent *paintEvent) { const auto *parent = parentWidget(); auto color = parent->palette().color(QPalette::Background); const int lightThreshold = 100; const bool menuBackgrounIsLight = color.lightness() > lightThreshold; color.setHsl( color.hue(), color.saturation(), qMax(0, qMin(255, color.lightness() + (menuBackgrounIsLight ? -200 : 50))) ); QPainter painter(this); const int border = pointsToPixels(6); const QRect rect(width() - border, 0, width(), height()); painter.setOpacity(0.15); painter.fillRect(rect, color); QWidget::paintEvent(paintEvent); }
void setFontPixelSize(QFont *font) { font->setPixelSize(pointsToPixels(font->pointSize())); }