Quantcast
Channel: QtWebEngine
Viewing all articles
Browse latest Browse all 13965

QClipboard::mimeData() returns null

$
0
0
Hello, I am trying to use QClipboard on N9 and Meego and it looks like does not work, the same code works when running in Desktop. I have tried the following simple code both on N9 simulator and nemo virtual machine: widget class header #ifndef WIDGET_H #define WIDGET_H   #include <QWidget> class QPushButton; class QClipboard;   class Widget : public QWidget {     Q_OBJECT public:     explicit Widget(QWidget *parent = 0); public slots:     void    putUrls();     void    putText();     void    showData();     void    clipboardChanged(); private:    QPushButton  *getBtn;    QPushButton  *putUrlBtn;    QPushButton  *putTextBtn;    QClipboard   *clip;     }; #endif // WIDGET_H widget class #include "widget.h" #include <QPushButton> #include <QVBoxLayout> #include <QClipboard> #include <QDebug> #include <QMimeData> #include <QStringList> #include <QUrl> #include <QTemporaryFile> #include <QApplication> #include <QShowEvent> #include <QWidget>   Widget::Widget(QWidget *parent) :     QWidget(parent)   , clip(0) {     QVBoxLayout *lay = new QVBoxLayout(this);     getBtn = new QPushButton("show clipboard", this);     lay->addWidget(getBtn);     putUrlBtn = new QPushButton("put url", this);     lay->addWidget(putUrlBtn);     putTextBtn =  new QPushButton("put text", this);     lay->addWidget(putTextBtn);     connect(getBtn,    SIGNAL(clicked()), this , SLOT(showData()));     connect(putUrlBtn, SIGNAL(clicked()), this, SLOT(putUrls()));     connect(putTextBtn,SIGNAL(clicked()), this, SLOT(putText())); }   void Widget::putText() {     QClipboard * clipboard = QApplication::clipboard();     if ( clipboard )  {         clipboard->setText( QLatin1String("has text") );     }else {         qDebug() << Q_FUNC_INFO << "no clipboard";     } }   void Widget::putUrls() {     QTemporaryFile temp;     temp.open();     QByteArray d ("11212121212\n");     temp.write(d) ;     temp.close();     QClipboard * clipboard = QApplication::clipboard();     if ( clipboard )     {         QMimeData *mime= new QMimeData();         QUrl url(QUrl::fromLocalFile(temp.fileName()));         qDebug() << "valid" << url.isValid() << url.toString();         QList<QUrl>  files;         files.append(url);         mime->setUrls(files);         clipboard->setMimeData(mime, QClipboard::Clipboard);         qDebug() << "\n\n--------- ";     } }   void Widget::showData() {     QClipboard *clipboard = QApplication::clipboard();     if ( clipboard )     {         if (clip == 0)         {             clip = clipboard;             connect(clip, SIGNAL(dataChanged()), this, SLOT(clipboardChanged()));         }         const QMimeData * mime = clipboard->mimeData(QClipboard::Clipboard);         if (mime == 0)         {             qDebug("QClipboard::mimeData() returns null");             return;         }           QStringList formats = mime->formats();         for(int counter=0; counter < formats.count(); counter++)         {             QByteArray d = mime->data(formats.at(counter));             if (!d.isEmpty())             {                 qDebug() << "format" << formats.at(counter) << "data" << d << endl;             }         }       } }   void Widget::clipboardChanged() {     qDebug() << Q_FUNC_INFO << "clipboard changed"; } main #include <QApplication> #include "widget.h"   int main(int argc, char *argv[]) {     QApplication a(argc, argv);             Widget  w;     w.show();     return a.exec(); }

Viewing all articles
Browse latest Browse all 13965

Trending Articles