QString SmsWidget::parseQuotes(QString _s) { QRegExp r; r.setPattern("^(.*)<<(.*)>>(.*)$"); if (r.exactMatch(_s)) return parseQuotes(r.cap(1)) + "<font color=\"#0E459C\"><i><<" + r.cap(2) + ">></i></font>" + parseQuotes(r.cap(3)); else return _s; }
void historical(const string& ticker, const gr::date& from, const gr::date& to, forward_list<pair<string,quote_>>& quotes) { ostringstream sout; sout<< "http://ichart.yahoo.com/table.csv?" << "s=" << ticker << "&a=" << int(from.month()) - 1 << "&b=" << from.day() << "&c=" << from.year() << "&d=" << int(to.month()) - 1 << "&e=" << to.day() << "&f=" << to.year() << "&g=d&ignore=.csv"; Easy result; result.setOpt(Options::Url(sout.str())); ostringstream oss; oss<< result; istringstream iss(oss.str()); parseQuotes(iss, quotes); }
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(); }
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(); }
QString parseSingle(QString::const_iterator &it) { skipWhile(it, spaces); return (*it == '"') ? parseQuotes(it) : parseToken(it); }