void OverlayEditorScene::updateMuted() { QImageReader qir(QLatin1String("skin:muted_self.svg")); QSize sz = qir.size(); sz.scale(SCALESIZE(MutedDeafened), Qt::KeepAspectRatio); qir.setScaledSize(sz); qgpiMuted->setPixmap(QPixmap::fromImage(qir.read())); moveMuted(); }
void OverlayEditorScene::updateAvatar() { QImage img; QImageReader qir(QLatin1String("skin:default_avatar.svg")); QSize sz = qir.size(); sz.scale(SCALESIZE(Avatar), Qt::KeepAspectRatio); qir.setScaledSize(sz); img = qir.read(); qgpiAvatar->setPixmap(QPixmap::fromImage(img)); moveAvatar(); }
QImage MainWindow::fetch_image(QString absolute_file_name, QSize max_size, PhotoMetaData &pmd) { pmd = load_metadata(absolute_file_name);//The preview image needs this returned QImageReader qir(absolute_file_name); QSize orig = qir.size(); float ratio, rw, rh , width, height; if(pmd.rotation_angle==0 || pmd.rotation_angle==180) { width = orig.width(); height = orig.height(); } else { height = orig.width(); width = orig.height(); } rw = (float)max_size.width()/width; rh = (float)max_size.height()/height; if( rw > rh) ratio = rh; else ratio = rw; qir.setScaledSize(ratio*orig); return rotate(pmd.rotation_angle, qir.read()); }
void OverlayUser::updateLayout() { QPixmap pm; if (scene()) uiSize = iroundf(scene()->sceneRect().height() + 0.5); prepareGeometryChange(); for (int i=0;i<4;++i) qgpiName[i]->setPixmap(pm); qgpiAvatar->setPixmap(pm); qgpiChannel->setPixmap(pm); { QImageReader qir(QLatin1String("skin:muted_self.svg")); QSize sz = qir.size(); sz.scale(SCALESIZE(MutedDeafened), Qt::KeepAspectRatio); qir.setScaledSize(sz); qgpiMuted->setPixmap(QPixmap::fromImage(qir.read())); } { QImageReader qir(QLatin1String("skin:deafened_self.svg")); QSize sz = qir.size(); sz.scale(SCALESIZE(MutedDeafened), Qt::KeepAspectRatio); qir.setScaledSize(sz); qgpiDeafened->setPixmap(QPixmap::fromImage(qir.read())); } qgpiMuted->setPos(alignedPosition(scaledRect(os->qrfMutedDeafened, uiSize * os->fZoom), qgpiMuted->boundingRect(), os->qaMutedDeafened)); qgpiMuted->setZValue(1.0f); qgpiMuted->setOpacity(os->fMutedDeafened); qgpiDeafened->setPos(alignedPosition(scaledRect(os->qrfMutedDeafened, uiSize * os->fZoom), qgpiDeafened->boundingRect(), os->qaMutedDeafened)); qgpiDeafened->setZValue(1.0f); qgpiDeafened->setOpacity(os->fMutedDeafened); qgpiAvatar->setPos(0.0f, 0.0f); qgpiAvatar->setOpacity(os->fAvatar); for (int i=0;i<4;++i) { qgpiName[i]->setPos(0.0f, 0.0f); qgpiName[i]->setZValue(2.0f); qgpiName[i]->setOpacity(os->fUserName); } qgpiChannel->setPos(0.0f, 0.0f); qgpiChannel->setZValue(3.0f); qgpiChannel->setOpacity(os->fChannel); QRectF childrenBounds = os->qrfAvatar | os->qrfChannel | os->qrfMutedDeafened | os->qrfUserName; bool haspen = (os->qcBoxPen != os->qcBoxFill) && (! qFuzzyCompare(os->qcBoxPen.alphaF(), static_cast<qreal>(0.0f))); qreal pw = haspen ? qMax<qreal>(1.0f, os->fBoxPenWidth * uiSize * os->fZoom) : 0.0f; qreal pad = os->fBoxPad * uiSize * os->fZoom; QPainterPath pp; pp.addRoundedRect(childrenBounds.x() * uiSize * os->fZoom + -pw / 2.0f - pad, childrenBounds.y() * uiSize * os->fZoom + -pw / 2.0f - pad, childrenBounds.width() * uiSize * os->fZoom + pw + 2.0f * pad, childrenBounds.height() * uiSize * os->fZoom + pw + 2.0f * pad, 2.0f * pw, 2.0f * pw); qgpiBox->setPath(pp); qgpiBox->setPos(0.0f, 0.0f); qgpiBox->setZValue(-1.0f); qgpiBox->setPen(haspen ? QPen(os->qcBoxPen, pw) : Qt::NoPen); qgpiBox->setBrush(qFuzzyCompare(os->qcBoxFill.alphaF(), static_cast<qreal>(0.0f)) ? Qt::NoBrush : os->qcBoxFill); qgpiBox->setOpacity(1.0f); if (! cuUser) { switch (tsColor) { case Settings::Passive: qsName = Overlay::tr("Silent"); break; case Settings::Talking: qsName = Overlay::tr("Talking"); break; case Settings::Whispering: qsName = Overlay::tr("Whisper"); break; case Settings::Shouting: qsName = Overlay::tr("Shout"); break; } } }
void OverlayUser::updateUser() { if (os->bUserName && (qgpiName[0]->pixmap().isNull() || (cuUser && (qsName != cuUser->qsName)))) { if (cuUser) qsName = cuUser->qsName; OverlayTextLine tl(qsName, os->qfUserName); for (int i=0; i<4; ++i) { const QPixmap &pm = tl.createPixmap(SCALESIZE(UserName), os->qcUserName[i]); qgpiName[i]->setPixmap(pm); if (i == 0) qgpiName[0]->setPos(alignedPosition(scaledRect(os->qrfUserName, uiSize * os->fZoom), qgpiName[0]->boundingRect(), os->qaUserName)); else qgpiName[i]->setPos(qgpiName[0]->pos()); } } if (os->bChannel && (qgpiChannel->pixmap().isNull() || (cuUser && (qsChannelName != cuUser->cChannel->qsName)))) { if (cuUser) qsChannelName = cuUser->cChannel->qsName; const QPixmap &pm = OverlayTextLine(qsChannelName, os->qfChannel).createPixmap(SCALESIZE(Channel), os->qcChannel); qgpiChannel->setPixmap(pm); qgpiChannel->setPos(alignedPosition(scaledRect(os->qrfChannel, uiSize * os->fZoom), qgpiChannel->boundingRect(), os->qaChannel)); } if (os->bAvatar && (qgpiAvatar->pixmap().isNull() || (cuUser && (qbaAvatar != cuUser->qbaTextureHash)))) { if (cuUser) qbaAvatar = cuUser->qbaTextureHash; QImage img; if (! qbaAvatar.isNull() && cuUser->qbaTexture.isEmpty()) { g.o->requestTexture(cuUser); } else if (qbaAvatar.isNull()) { QImageReader qir(QLatin1String("skin:default_avatar.svg")); QSize sz = qir.size(); sz.scale(SCALESIZE(Avatar), Qt::KeepAspectRatio); qir.setScaledSize(sz); img = qir.read(); } else { QBuffer qb(& cuUser->qbaTexture); qb.open(QIODevice::ReadOnly); QImageReader qir(&qb, cuUser->qbaTextureFormat); QSize sz = qir.size(); sz.scale(SCALESIZE(Avatar), Qt::KeepAspectRatio); qir.setScaledSize(sz); img = qir.read(); } qgpiAvatar->setPixmap(QPixmap::fromImage(img)); qgpiAvatar->setPos(alignedPosition(scaledRect(os->qrfAvatar, uiSize * os->fZoom), qgpiAvatar->boundingRect(), os->qaAvatar)); } qgpiAvatar->setVisible(os->bAvatar); if (cuUser) { ClientUser *self = ClientUser::get(g.uiSession); if (os->bMutedDeafened) { if (cuUser->bDeaf || cuUser->bSelfDeaf) { qgpiMuted->hide(); qgpiDeafened->show(); } else if (cuUser->bMute || cuUser->bSelfMute || cuUser->bLocalMute || cuUser->bSuppress) { qgpiMuted->show(); qgpiDeafened->hide(); } else { qgpiMuted->hide(); qgpiDeafened->hide(); } } else { qgpiMuted->hide(); qgpiDeafened->hide(); } bool samechannel = self && (self->cChannel == cuUser->cChannel); qgpiChannel->setVisible(os->bChannel && ! samechannel); tsColor = cuUser->tsState; } else { qgpiChannel->setVisible(os->bChannel && (tsColor != Settings::Passive) && (tsColor != Settings::Talking)); qgpiMuted->setVisible(os->bChannel); qgpiDeafened->hide(); } if (os->bUserName) for (int i=0;i<4;++i) qgpiName[i]->setVisible(i == tsColor); else for (int i=0;i<4;++i) qgpiName[i]->setVisible(false); qgpiBox->setVisible(os->bBox); setOpacity(os->fUser[tsColor]); }