void ClipboardDialog::on_listWidgetFormats_currentItemChanged( QListWidgetItem *current, QListWidgetItem *) { ui->actionRemove_Format->setEnabled(current != NULL); const QString mime = current ? current->text() : QString(); const bool hasImage = mime.startsWith(QString("image")) ; ui->textEdit->clear(); ui->textEdit->setVisible(!hasImage); ui->scrollAreaImage->setVisible(hasImage); if (hasImage) ui->labelContent->setBuddy(ui->scrollAreaImage); else ui->labelContent->setBuddy(ui->textEdit); const QByteArray bytes = m_data.value(mime).toByteArray(); m_timerTextLoad.stop(); if (hasImage) { QPixmap pix; pix.loadFromData( bytes, mime.toLatin1() ); ui->labelImage->setPixmap(pix); } else { m_textToShow = dataToText(bytes, mime); addText(); } ui->labelProperties->setText( tr("<strong>Size:</strong> %1 bytes", "Size of data in bytes").arg(bytes.size()) ); }
void ClipboardDialog::onListWidgetFormatsCurrentItemChanged( QListWidgetItem *current, QListWidgetItem *) { ui->actionRemove_Format->setEnabled(current != nullptr); const QString mime = current ? current->text() : QString(); const bool hasImage = mime.startsWith(QString("image")) ; const QByteArray animationFormat = QString(mime).remove(QRegExp("^image/")).toUtf8(); const bool hasAnimation = QMovie::supportedFormats().contains(animationFormat); ui->textEdit->clear(); ui->textEdit->setVisible(!hasImage); ui->scrollAreaImage->setVisible(hasImage); if (hasImage) ui->labelContent->setBuddy(ui->scrollAreaImage); else ui->labelContent->setBuddy(ui->textEdit); const QByteArray bytes = m_data.value(mime).toByteArray(); m_timerTextLoad.stop(); if (hasAnimation) { if (m_animation) m_animation->deleteLater(); if (m_animationBuffer) m_animationBuffer->deleteLater(); m_animationBuffer = new QBuffer(this); m_animationBuffer->open(QIODevice::ReadWrite); m_animationBuffer->write(bytes); m_animationBuffer->seek(0); m_animation = new QMovie(this); m_animation->setDevice(m_animationBuffer); m_animation->setFormat(animationFormat); ui->labelImage->setMovie(m_animation); m_animation->start(); } else if (hasImage) { QPixmap pix; pix.loadFromData( bytes, mime.toLatin1() ); ui->labelImage->setPixmap(pix); } else { m_textToShow = dataToText(bytes, mime); addText(); } ui->labelProperties->setText( tr("<strong>Size:</strong> %1 bytes", "Size of data in bytes").arg(bytes.size()) ); }
QByteArray getUtf8Data(const QMimeData &data, const QString &format) { if (format == mimeText || format == mimeHtml) return dataToText( data.data(format), format ).toUtf8(); if (format == mimeUriList) { QByteArray bytes; foreach ( const QUrl &url, data.urls() ) { if ( !bytes.isEmpty() ) bytes += '\n'; bytes += url.toString().toUtf8(); } return bytes; }
void ClipboardDialog::on_listWidgetFormats_currentItemChanged( QListWidgetItem *current, QListWidgetItem *) { ui->actionRemove_Format->setEnabled(current != NULL); QTextEdit *edit = ui->textEditContent; QString mime = current ? current->text() : QString(); edit->clear(); const QByteArray bytes = m_data.value(mime).toByteArray(); if ( mime.startsWith(QString("image")) ) { edit->document()->addResource( QTextDocument::ImageResource, QUrl("data://1"), bytes ); edit->setHtml( QString("<img src=\"data://1\" />") ); } else { edit->setPlainText( dataToText(bytes, mime) ); } ui->labelProperties->setText( tr("<strong>Size:</strong> %1 bytes", "Size of data in bytes").arg(bytes.size()) ); }