int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTextEdit *editor = new QTextEdit;

    QTextDocument *document = new QTextDocument(editor);
    QTextCursor cursor(document);

    QImage image(64, 64, QImage::Format_RGB32);
    image.fill(qRgb(255, 160, 128));

//! [Adding a resource]
    document->addResource(QTextDocument::ImageResource,
        QUrl("mydata://image.png"), QVariant(image));
//! [Adding a resource]

//! [Inserting an image with a cursor]
    QTextImageFormat imageFormat;
    imageFormat.setName("mydata://image.png");
    cursor.insertImage(imageFormat);
//! [Inserting an image with a cursor]

    cursor.insertBlock();
    cursor.insertText("Code less. Create more.");

    editor->setDocument(document);
    editor->setWindowTitle(tr("Text Document Images"));
    editor->resize(320, 480);
    editor->show();

//! [Inserting an image using HTML]
    editor->append("<img src=\"mydata://image.png\" />");
//! [Inserting an image using HTML]

    return app.exec();
}
Example #2
0
/**
 * Inserts an valid image
 * Copies the specific image in the program folder
 */
void MainWindow::on_actionImage_triggered()
{
    QString scriboDir = QDir::home().absolutePath() + QDir::separator() + "scribo";

    if ( !QDir(scriboDir + QDir::separator() + "img").exists() )
        QDir().mkdir(scriboDir + QDir::separator() + "img");

    QString filePath = QFileDialog::getOpenFileName(this, tr("Select an image"),
                                      QDir::home().absolutePath(), "Bitmap Files (*.bmp)\n"
                                        "JPEG (*.jpg *jpeg)\n"
                                        "GIF (*.gif)\n"
                                        "PNG (*.png)");
    QStringList list = filePath.split( "/" );
    QString imageName = list.value(list.length() - 1 );
    QString imagePath = scriboDir + QDir::separator() + "img" + QDir::separator() + imageName;

    QFile::copy(filePath, imagePath);
    QUrl Uri ( QString ( "file://%1" ).arg ( imagePath ) );
    QImage image = QImageReader ( imagePath ).read();

    QTextDocument * textDocument = ui->textEdit_mainWindow_surface->document();
    textDocument->addResource( QTextDocument::ImageResource, Uri, QVariant ( image ) );
    cursor = ui->textEdit_mainWindow_surface->textCursor();
    QTextImageFormat imageFormat;
    imageFormat.setWidth( image.width() );
    imageFormat.setHeight( image.height() );
    imageFormat.setName( Uri.toString() );
    cursor.insertImage(imageFormat);
}
void CommentDialog::on_button_smilely_clicked()
{
	QSelectFaceWidget* selectFace = new QSelectFaceWidget(Global::emotionPathTemp, this);
	selectFace->setStyleSheet("QLabel{color: #000000}QPushButton{background-color: transparent}");
	QPoint GlobalPoint(this->ui.button_smilely->mapToGlobal(QPoint(0, 0)));//获取控件在窗体中的坐标
	int y = GlobalPoint.y();
	selectFace->popUp(GlobalPoint, this->ui.button_smilely->height()+10);

	QObject::connect(selectFace, &QSelectFaceWidget::FaceSelected, [=](const QString &filename){
 		QString iconName = GetPicName(filename);
		QTextDocument *document =this->ui.TextEdit_commentText->document();
		QTextCursor cursor = this->ui.TextEdit_commentText->textCursor();
		QFileInfo fiPic(filename);
		if (fiPic.exists())
		{
			QImage image(filename);
			image = image.scaled(30, 30, Qt::KeepAspectRatio, Qt::SmoothTransformation);
			document->addResource(QTextDocument::ImageResource, QUrl(iconName), image);
			cursor.insertImage(iconName);
		}

		this->ui.TextEdit_commentText->setFocus();
		//this->ui.TextEdit_commentText->moveCursor(QTextCursor::NoMove);
	});
	

};
Example #4
0
QPair< QString, QSize > TextEdit::Private::addImageResource( const QString & fileName, const QUrl & uri ) {
    QTextDocument * document = this->host->document();
    QImage image( QImage( uri.toLocalFile() ).scaled( 50, 50, Qt::KeepAspectRatio, Qt::SmoothTransformation ) );
    document->addResource( QTextDocument::ImageResource, QUrl( fileName ), image );

    return qMakePair( fileName, image.size() );
}
Example #5
0
QTextDocument *KisNodeToolTip::createDocument(const QModelIndex &index)
{
    QTextDocument *doc = new QTextDocument(this);

    QImage thumb = index.data(int(KisNodeModel::BeginThumbnailRole) + 250).value<QImage>();
    doc->addResource(QTextDocument::ImageResource, QUrl("data:thumbnail"), thumb);

    QString name = index.data(Qt::DisplayRole).toString();
    KisBaseNode::PropertyList properties = index.data(KisNodeModel::PropertiesRole).value<KisBaseNode::PropertyList>();
    QString rows;
    const QString row = QString("<tr><td align=\"right\">%1:</td><td align=\"left\">%2</td></tr>");
    QString value;
    for(int i = 0, n = properties.count(); i < n; ++i) {
        if (properties[i].isMutable)
            value = properties[i].state.toBool() ? i18n("Yes") : i18n("No");
        else
            value = properties[i].state.toString();

        rows.append(row.arg(properties[i].name).arg(value));
    }

    rows = QString("<table>%1</table>").arg(rows);

    const QString image = QString("<table border=\"1\"><tr><td><img src=\"data:thumbnail\"></td></tr></table>");
    const QString body = QString("<h3 align=\"center\">%1</h3>").arg(name)
                       + QString("<table><tr><td>%1</td><td>%2</td></tr></table>").arg(image).arg(rows);
    const QString html = QString("<html><body>%1</body></html>").arg(body);

    doc->setHtml(html);
    doc->setTextWidth(qMin(doc->size().width(), qreal(500.0)));

    return doc;
}
Example #6
0
//! [1]
void TextEdit::insertFromMimeData( const QMimeData *source )
{
    if (source->hasImage())
    {
        QImage image = qvariant_cast<QImage>(source->imageData());
        QTextCursor cursor = this->textCursor();
        QTextDocument *document = this->document();
        document->addResource(QTextDocument::ImageResource, QUrl("image"), image);
        cursor.insertImage("image");
    }
}
Example #7
0
void QQTextEdit::insertImg(const QString &url, const QString &path)
{
    QTextDocument *doc = document();
    QTextCursor cursor(doc);
    cursor.movePosition(QTextCursor::End);

    QImage img(path);
    QUrl qurl(url);
    doc->addResource(QTextDocument::ImageResource, qurl, img);
    cursor.insertImage(url);
}
Example #8
0
void ChatLogWin::insertImg(const QString &img_name)
{
    QTextDocument *doc = ui_->msgbrowse->document();
    QTextCursor cursor(doc);
    cursor.movePosition(QTextCursor::End);

    QImage img(QQGlobal::tempDir() + "/" + img_name);
    QUrl url(img_name);
    doc->addResource(QTextDocument::ImageResource, url, img);
    cursor.insertImage(img_name);
}
Example #9
0
void ChatLogWin::insertQQFace(const QString &face_id)
{
    QTextDocument *doc = ui_->msgbrowse->document();
    QTextCursor cursor(doc);
    cursor.movePosition(QTextCursor::End);

    QString path = QQGlobal::resourceDir() + "/qqface/default/" + face_id + ".gif";
    QImage img(path);
    QUrl url(face_id);
    doc->addResource(QTextDocument::ImageResource, url, img);
    cursor.insertImage(face_id);
}
Example #10
0
void Dialog::reloadResource(QTextEdit *ed) {
    QTextDocument *doc = ed->document();
    int w = smiles->size().width() / W_CNT;
    int h = smiles->size().height() / H_CNT;
    for (int i = 0; i < W_CNT; ++i)
        for (int j = 0; j < H_CNT; ++j) {
            QImage icon = smiles->copy(j * w, i * h, w, h);
            QString nm = "[smile:" + QString::number(W_CNT * i + j) + "]";
            doc->addResource(QTextDocument::ImageResource, QUrl(nm), icon);
            //teHistory->document()->addResource(QTextDocument::ImageResource, QUrl(but->name()), smiles->copy(j * w, i * h, w, h));
        }
}
Example #11
0
void QQTextEdit::insertQQFace(const QString &face_id)
{
    QTextDocument *doc = document();
    QTextCursor cursor(doc);
    cursor.movePosition(QTextCursor::End);

    QString path = QQGlobal::resourceDir() + "/qqface/default/" + face_id + ".gif";
    QImage img(path);
    QString src = kQQFacePre+face_id;
    QUrl url(src);
    doc->addResource(QTextDocument::ImageResource, url, img);
    cursor.insertImage(src);
}
Example #12
0
void FillCellHelper::insertDecoration( KDReports::ReportBuilder& builder, QTextDocument& textDoc )
{
    QImage img = qvariant_cast<QImage>( cellDecoration );
    if ( img.isNull() ) {
        img = qvariant_cast<QIcon>( cellDecoration ).pixmap( iconSize ).toImage();
    }
    if ( !img.isNull() ) {
        static int imageNumber = 0;
        const QString name = QString::fromLatin1( "cell-image%1.png" ).arg( ++imageNumber );
        textDoc.addResource( QTextDocument::ImageResource, QUrl( name ), img );
        builder.currentDocumentData().addResourceName( name );
        cellCursor.insertImage( name );
    }
}
void ImageTextBrowser::requestFinished(QNetworkReply * result)
{
    if (!result->error())
    {
        QByteArray res = result->readAll();
        QPixmap pixmap;
        pixmap.loadFromData(res);
        QImage img = pixmap.toImage();

        QTextDocument *doc = this->document();
        doc->addResource(QTextDocument::ImageResource,result->url(),QVariant(img));
        setHtml(toHtml());
        QScrollBar * vBar = this->verticalScrollBar();
        vBar->setValue(vBar->maximum());
    }
}
Example #14
0
void QTextPanel::stressTestPaint()
{
    /////////pageClear();  /* remove all if exist text */
    
    
    QTextDocument *playdoc = new QTextDocument();
    QTextCursor c(playdoc);
    c.setPosition(0,QTextCursor::MoveAnchor);
    
    int loop = -1;
    c.beginEditBlock();
    
    QStringList colorNames = QColor::colorNames();
    foreach (QString name, colorNames) {
        loop++;
        
        if (loop != 0) { 
        c.insertBlock();
        }
        
        ////////qDebug() << "### name ->" << name;
        
        QPixmap e = createColorMaps( name );
        playdoc->addResource(QTextDocument::ImageResource,QUrl(name),e);
        QTextImageFormat format;
        format.setName( name );
        format.setHeight ( e.height() );
        format.setWidth ( e.width() );
        format.setToolTip(name);
        c.insertImage( format );
        c.insertText(QString(QChar::LineSeparator));   /* br */
        ////////////QTextBlockFormat bbformat = c.blockFormat();
        /////////bbformat.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysAfter);
        ////////c.setBlockFormat(bbformat);
        
        for (int i = 0; i < 15; ++i)  {
        c.insertText(name+ "   .");   
        }
        c.endEditBlock();
        c.atBlockEnd();
        
    }
Example #15
0
def canInsertFromMimeData(source):
if source.hasImage:
    return True
       else:
               return QTextEdit.canInsertFromMimeData(source)

//! [0]

//! [1]
                          void TextEdit::insertFromMimeData( const QMimeData *source )
    {
        if (source->hasImage())
        {
            QImage image = qvariant_cast<QImage>(source->imageData());
            QTextCursor cursor = this->textCursor();
            QTextDocument *document = this->document();
            document->addResource(QTextDocument::ImageResource, QUrl("image"), image);
            cursor.insertImage("image");
        }
    }
Example #16
0
void TextEdit::imageOpen()
{
	QString fn = QFileDialog::getOpenFileName(this, tr("Open File..."),
	QString(), tr("images (*.png *.bmp *.jpg *.jpeg);;All Files (*)"));
	if (!fn.isEmpty()) {
		QMimeData mimeData;
		mimeData.setImageData(QImage(fn));
		QTextCursor cursor = this->textEdit->textCursor();
		QTextDocument *document = this->textEdit->document();
		QString newfile, imageName;
		do {
			imageName = name + "/img_" + QTime::currentTime().toString("mmsszzz.") + fn.section(".",-1);
			newfile = path + imageName;
		} while(QFile::exists(newfile));
		QFile::copy(fn, newfile);
		document->addResource(QTextDocument::ImageResource, newfile, QImage(newfile));
		cursor.insertImage(imageName);
		listAddedImages<<newfile;
	}
}
Example #17
0
void MailViewer::displayAttachments(const MessageHeader& msg)
{   
#if 0 //code doesn't yet work
   QTextDocument* textDocument = ui->message_content->document();
   QImage image;
   int i = 1;
   foreach (const bts::bitchat::attachment& attachment, msg.attachments)
      {
      image.fromData(attachment.body.data());
      QUrl url(QString("attachment_image_%1").arg(i++));
      textDocument->addResource( QTextDocument::ImageResource, url, QVariant ( image ) );
      QTextCursor cursor = ui->message_content->textCursor();
      QTextImageFormat imageFormat;
      imageFormat.setWidth( image.width() );
      imageFormat.setHeight( image.height() );
      imageFormat.setName( url.toString() );
      cursor.insertImage(imageFormat);
      }
#endif
}
Example #18
0
// Вставка MIME данных
void EditorTextArea::insertFromMimeData(const QMimeData *source)
{
    QTextCursor cursor = this->textCursor();
    QTextDocument *document = this->document();

// Вставка картинки
    if(source->hasImage())
    {
        QImage image=qvariant_cast<QImage>(source->imageData());

        // Картинка будет хранится в ресурсах во внутреннем формате
        // без потери качества, поэтому затем при записи
        // легко сохраняется в PNG формат. Чтобы избежать путаницы,
        // сразу имя ресурса картинки задается как PNG файл
        QString imageName="image"+QString::number(rand())+".png";

        document->addResource(QTextDocument::ImageResource, QUrl(imageName), image);
        cursor.insertImage(imageName);
        return;
    }

    if(source->hasHtml())
    {
        QString html=qvariant_cast<QString>(source->html());
        cursor.insertHtml(html);
        return;
    }

    if(source->hasText())
    {
        QString text=qvariant_cast<QString>(source->text());
        cursor.insertText(text);
        return;
    }

}
Example #19
0
void QTextDocumentProto::addResource(int type, const QUrl &name, const QVariant &resource)
{
  QTextDocument *item = qscriptvalue_cast<QTextDocument*>(thisObject());
  if (item)
    item->addResource(type, name, resource);
}
Example #20
0
void ContactListEdit::addContactEntry(const QString& contactText, const bts::addressbook::contact& c)
  {
  QFont        default_font;
  default_font.setPointSize( default_font.pointSize() - 1 );
  QFontMetrics font_metrics(default_font);
  QRect        bounding = font_metrics.boundingRect(contactText);
  int          completion_width = font_metrics.width(contactText);
  int          completion_height = bounding.height();

  completion_width += 20;

  QImage   completion_image(completion_width, completion_height + 4, QImage::Format_ARGB32);
  completion_image.fill(QColor(0, 0, 0, 0) );
  QPainter painter;
  painter.begin(&completion_image);
  painter.setFont(default_font);
  painter.setRenderHint(QPainter::Antialiasing);

  QBrush brush(Qt::SolidPattern);
  brush.setColor( QColor( 205, 220, 241 ) );
  QPen  pen;

  bool isKeyhoteeFounder = Contact::isKeyhoteeFounder(c);

  if (isKeyhoteeFounder)
    {
    QLinearGradient grad(QPointF(0, 0), QPointF(0, 1));
    grad.setCoordinateMode(QGradient::ObjectBoundingMode);
    grad.setColorAt(0, QColor(35, 40, 3));
    grad.setColorAt(0.102273, QColor(136, 106, 22));
    grad.setColorAt(0.225, QColor(166, 140, 41));
    grad.setColorAt(0.285, QColor(204, 181, 74));
    grad.setColorAt(0.345, QColor(235, 219, 102));
    grad.setColorAt(0.415, QColor(245, 236, 112));
    grad.setColorAt(0.52, QColor(209, 190, 76));
    grad.setColorAt(0.57, QColor(187, 156, 51));
    grad.setColorAt(0.635, QColor(168, 142, 42));
    grad.setColorAt(0.695, QColor(202, 174, 68));
    grad.setColorAt(0.75, QColor(218, 202, 86));
    grad.setColorAt(0.815, QColor(208, 187, 73));
    grad.setColorAt(0.88, QColor(187, 156, 51));
    grad.setColorAt(0.935, QColor(137, 108, 26));
    grad.setColorAt(1, QColor(35, 40, 3));

    brush = QBrush(grad);
    pen.setColor( QColor( 103, 51, 1 ) );
    }
  else
    {
    brush.setColor( QColor( 205, 220, 241 ) );
    pen.setColor( QColor( 105,110,180 ) );
    }

  painter.setBrush(brush);
  painter.setPen(pen);
  painter.drawRoundedRect(0, 0, completion_width - 1, completion_image.height() - 1, 8, 8,
    Qt::AbsoluteSize);
  painter.setPen(QPen());
  painter.drawText(QPoint(10, completion_height - 2), contactText);

  QTextDocument* doc = document();
  doc->addResource(QTextDocument::ImageResource, QUrl(contactText), completion_image);
  QTextImageFormat format;
  format.setName(contactText);

  encodePublicKey(c.public_key, &format);

  QTextCursor txtCursor = textCursor();
  txtCursor.insertImage(format);

  txtCursor.insertText(" ");
  setTextCursor(txtCursor);
  }
Example #21
0
QTextDocument *MyPrint::print(QSqlQueryModel *model, RowList colHeaders, QString title, QString footer, int groupCols = 0)
{
    QString body;
    QStringList colls;
    body.append("<html><head>"
                "<link rel='stylesheet' type='text/css' href='format.css'>"
                "</head><body>");
    if (title!="")
        body.append("<center><H2>" + title + "</H2></center><br>");
    body.append("<center><table border='1' class = 'mine'><tr>");
    RowList::const_iterator i = colHeaders.constBegin();
    while (i != colHeaders.constEnd()) {
        colls.append(QString::number(i.key()));
        body.append("<th>" + i.value() + "</th>\n");
        ++i;
    }
    body.append("</tr>\n");
    while (model->canFetchMore())
        model->fetchMore();
    QMap<int,QString> groupTitles; // заголовки групп groupTitles(номер колонки, название группы)
    QMap<int,int> groupCounts; // количество элементов в группе groupCounts(номер колонки, кол-во)
    for (int index = 0; index < model->rowCount(); index++)
    {
        body.append("<tr>\n");
        for (int listId = 0; listId < colls.count(); listId++)
        {
            if(listId < groupCols) // если колонки нужно сгруппировать(если это групируемая колонка)
            {
                if(groupTitles.value(listId) != model->record(index).value(colls[listId].toInt()).toString())
                {
                    groupTitles[listId] = model->record(index).value(colls[listId].toInt()).toString();
                    body.append("<td class='grHead' colspan = '"+QString::number(colls.count()-listId)+"'><b>");
                    body.append(groupTitles[listId]);
                    body.append("</b></td>\n</tr>\n<tr>\n");
                    if(listId == groupCols-1)
                        for(int i=0; i < listId + 1; i++)
                            body.append("<td>1</td>\n");
                    else
                        for(int i=0; i < listId + 1; i++)
                            body.append("<td></td>\n");
                    groupCounts[listId] = 1;
                }
                else
                {
                    groupCounts[listId] = groupCounts[listId] + 1;
                    body.append("<td>" + QString::number(groupCounts[listId]) + "</td>\n");
                }
            }
            else
            {
                body.append("<td>");
                body.append(model->record(index).value(colls[listId].toInt()).toString());
                body.append("</td>\n");
            }
        }
        body.append("</tr>\n");
    }
    body.append("</table></center>");
    if (footer!="")

        body.append("<center>" + footer + "</center>");

    body.append("</body></html>");
//    qDebug()<<body;
    QTextDocument *toPrint = new QTextDocument;
    //    toPrint->addResource(QTextDocument::ImageResource, QUrl( "bg.png" ), QPixmap(":/img/img/institution_icon.png") );
    toPrint->addResource(QTextDocument::StyleSheetResource, QUrl( "format.css" ), css->reportCss);
    toPrint->setHtml(body);
    return toPrint;
}