forked from shivamdixit/kollaborate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
clipboarditem.cpp
56 lines (48 loc) · 1.35 KB
/
clipboarditem.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "clipboarditem.h"
#include <QApplication>
#include <QClipboard>
#include <QMimeData>
#include <QSettings>
ClipboardItem::ClipboardItem(QObject *parent) :
QObject(parent),
vlc(0)
{
button = new QPushButton;
button->setMaximumSize(300, 30);
button->setFocusPolicy(Qt::NoFocus);
QObject::connect(button, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
}
ClipboardItem::~ClipboardItem()
{
button->deleteLater();
if (vlc) {
vlc->kill();
vlc->waitForFinished();
delete vlc;
}
}
void ClipboardItem::onButtonClicked()
{
QClipboard *sysClipboard = QApplication::clipboard();
QMimeData *clipMime = new QMimeData;
if(mimeType != "screen") {
if (mimeType == "html") {
clipMime->setHtml(data);
clipMime->setText(dataPlain);
} else if (mimeType == "plain") {
clipMime->setText(data);
} else {
delete clipMime;
return;
}
sysClipboard->setMimeData(clipMime);
} else {
QString groupAddress;
QSettings *settings = new QSettings;
int pinMod = settings->value("pin").toInt() % 256;
delete settings;
groupAddress = "239.255.0." + QString::number(pinMod);
vlc = new QProcess;
vlc->start("vlc udp://" + data + "@" + groupAddress + ":12345");
}
}