QString SmsWidget::parseLinks(QString _s)
{
    QRegExp r;
    r.setPattern("^(.*)(http|https|ftp|ftps)\\:\\/\\/([^ ]+)(.*)$");
    if (r.exactMatch(_s))
        return parseLinks(r.cap(1)) + "<a href=\"" + r.cap(2) + "://" + r.cap(3) + "\">" + r.cap(2) + "://" + r.cap(3) + "</a> " + parseLinks(r.cap(4));
    else
        return _s;
}
Exemple #2
0
 virtual void parse(QDomElement & resources)
 {
     QDomNodeList nodes = resources.elementsByTagName("computer");
     parseNodes(nodes);
     QDomNodeList stores = resources.elementsByTagName("storage");
     parseStores(stores);
     QDomNodeList switches = resources.elementsByTagName("router");
     parseSwitches(switches);
     QDomNodeList links = resources.elementsByTagName("link");
     parseLinks(links);
 }
Exemple #3
0
 virtual void parse(QDomElement & demand)
 {
     this->demand = demand;
     QString name = demand.attribute("id");
     request->setName(name.toStdString());
     QDomNodeList nodes = demand.elementsByTagName("vm");
     parseNodes(nodes);
     QDomNodeList stores = demand.elementsByTagName("storage");
     parseStores(stores);
     QDomNodeList links = demand.elementsByTagName("link");
     parseLinks(links);
 }
Exemple #4
0
int WikiParser::renderInternal(const String &Source, String &Html)
{
	String Tmp;
	String Text=Source;
	Text.replace("\r\n","\n");

	extractNoWiki(Text);
	extractSourcecode(Text);
	extractDiagrams(Text);

	String Line;

	Array Rows;
	Rows.explode(Text,"\n");
	Array Match;

	for (size_t j=0;j<Rows.size();j++) {
		Line=Rows[j];
		nobr=false;
		parseHeadlines(Line);
		parseLinks(Line);
		parseDoxygen(Line);

		if (parseOL(Line)) continue;
		if (parseUL(Line)) continue;
		if (parseIndent(Line)) continue;


		parseTable(Line);
		parseAutoPRE(Line);		// Zeilen mit Space am Anfang?

		// An bestimmten Stellen wollen wir am Ende kein <br>

		if (Line.pregMatch("/^.*<\\/li>$/i")) nobr=true;
		if (Line.pregMatch("/^.*<nobr>$/i")) {
			Line.pregReplace("/<nobr>$/i","");
			nobr=true;
		}

		Line.trim();
		ret+=Line;
		if (!nobr) ret+="<br>";
		ret+="\n";
	}
	finalize();

	if (indexenabled) buildIndex(Html);	// Index hinzufügen
	Html+=ret;
	return 1;

}
Exemple #5
0
static Scheme* parseScheme(uint8_t* data) {
    Scheme *ret = malloc(sizeof(Scheme));
    int len = parseArraySize(data);
    for(int i = 0; i < len; i++) {
        if(i == 0) {
            ret->lines = parseLines(data, &(ret->linesLen));
        } else if(i == 1) {
            ret->stations = parseStations(data, &(ret->stationsLen));
        } else if(i == 2) {
            ret->links = parseLinks(data, &(ret->linksLen));
        }
    }
    return ret;
}
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("<","&lt;");
    _txt = _txt.replace(">","&gt;");
    _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("<", "&lt;");
    _txt = _txt.replace(">", "&gt;");
    _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();
}