void Water::differPixels() { // 現在のカメラのpixelデータを取得 unsigned char *pixels = camera.getPixels(); for ( int y=0; y<waterHeight; y++ ) { for ( int x=0; x<waterWidth; x++ ) { // pixelのindexの設定 int index = (y*waterWidth + x) * 3; // 前フレームとのRGBの差分を計算 int R = int(pixels[index]) - int(pixelsBuffer[index]); int G = int(pixels[index+1]) - int(pixelsBuffer[index+1]); int B = int(pixels[index+2]) - int(pixelsBuffer[index+2]); // 前フレームとの差分が一定値を超えたら if ( R*R + G*G + B*B >= 70*70 ) { // ベクトル場に力を加える VF.addOutwardCircle(x, y, 20, 0.05); if ( y > border + waterLevel ) { createBubble(x, y); } } } } // 最後に今のフレームのpixelをbufferに保存 for ( int i=0; i<waterHeight*waterWidth*3; i++ ) { pixelsBuffer[i] = pixels[i]; } }
PacientScene::PacientScene(QObject *parent) : QGraphicsScene(parent) { addPixmap(QPixmap(":/images/corps.jpg")); _menu = new QMenu(); _menu->addAction("New bubble...", this, SLOT(createBubble())); }
SmsWidget::SmsWidget(QMyMessage _sms, QPixmap _ico, bool received) : originalText(_sms.getMessage()), msg(_sms), type(received), number(_sms.getPhone()), readed(_sms.getReaded()), caricaAltri(false) { id = _sms.getId(); name = _sms.getParsedName(); labelGroup = new QLabel(_sms.getParsedName()); labelGroup->setFont(QFont(labelGroup->font().family(), -1, QFont::Bold, false)); labelGroup->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); labelGroup->setMaximumSize(10000, 18); labelIco = new QLabel(); labelIco->setPixmap(_ico); labelIco->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); labelIco->setMaximumSize(16, 16); labelIco->setMinimumSize(16, 16); labelIco->setScaledContents(true); QString service = _sms.getAccountName(); if(!service.isEmpty()) labelIco->setToolTip(service); labelIcoReceived = new QLabel(); labelIcoReceived->setMaximumSize(16, 16); labelIcoReceived->setMinimumSize(16, 16); labelIcoReceived->setScaledContents(true); createBubble(_sms.getReaded(), received); labelTime = new QLabel(msg.getData().toString("dd/MM/yyyy hh:mm:ss")); labelTime->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); labelTime->setMaximumSize(10000, 18); QString _txt = msg.getMessage(); _txt = _txt.replace("<","<"); _txt = _txt.replace(">",">"); _txt = parseQuotes(_txt); _txt = parseLinks(_txt); _txt = parseAts(_txt); labelTxt = new QLabel(_txt); labelTxt->setTextInteractionFlags(Qt::LinksAccessibleByMouse); labelTxt->setWordWrap(true); labelTxt->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); connect(labelTxt, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString))); hLayout = new QHBoxLayout; vLayout = new QVBoxLayout; labelGroup->adjustSize(); labelIco->adjustSize(); labelIcoReceived->adjustSize(); labelTxt->adjustSize(); labelTime->adjustSize(); hLayout->addWidget(labelIcoReceived); hLayout->addWidget(labelGroup); hLayout->addWidget(labelTime); hLayout->addWidget(labelIco); vLayout->addLayout(hLayout); vLayout->addWidget(labelTxt); setLayout(vLayout); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); adjustSize(); }
void SmsWidget::setReaded(bool _r) { readed = _r; createBubble(_r, type); }
SmsWidget::SmsWidget(QString _txt, QPixmap _ico, bool received, QDateTime time ,QString user, QString service, QString _id, libJackSMS::dataTypes::phoneNumber _number, bool _letto) : originalText(_txt), type(received), id(_id), number(_number), readed(_letto), dateTim(time), caricaAltri(false) { name = user; labelGroup = new QLabel(user); labelGroup->setFont(QFont(labelGroup->font().family(), -1, QFont::Bold, false)); labelGroup->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed); labelGroup->setMaximumSize(10000,18); labelIco = new QLabel(); labelIco->setPixmap(_ico); labelIco->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); labelIco->setMaximumSize(16, 16); labelIco->setMinimumSize(16, 16); labelIco->setScaledContents(true); if (!service.isEmpty()) labelIco->setToolTip(service); labelIcoReceived = new QLabel(); labelIcoReceived->setMaximumSize(16, 16); labelIcoReceived->setMinimumSize(16, 16); labelIcoReceived->setScaledContents(true); createBubble(_letto, received); labelTime = new QLabel(time.toString("dd/MM/yyyy hh:mm:ss")); labelTime->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); labelTime->setMaximumSize(10000, 18); _txt = _txt.replace("<", "<"); _txt = _txt.replace(">", ">"); _txt = parseQuotes(_txt); _txt = parseLinks(_txt); _txt = parseAts(_txt); labelTxt = new QLabel(_txt); labelTxt->setTextInteractionFlags(Qt::LinksAccessibleByMouse); labelTxt->setWordWrap(true); labelTxt->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); connect(labelTxt, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString))); hLayout = new QHBoxLayout; vLayout = new QVBoxLayout; labelGroup->adjustSize(); labelIco->adjustSize(); labelIcoReceived->adjustSize(); labelTxt->adjustSize(); labelTime->adjustSize(); hLayout->addWidget(labelIcoReceived); hLayout->addWidget(labelGroup); hLayout->addWidget(labelTime); hLayout->addWidget(labelIco); vLayout->addLayout(hLayout); vLayout->addWidget(labelTxt); setLayout(vLayout); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); adjustSize(); }