11ClipWindow::ClipWindow(QWidget *parent)
14 clipboard = QGuiApplication::clipboard();
16 QWidget *centralWidget =
new QWidget(
this);
17 QWidget *currentItem =
new QWidget(centralWidget);
18 QLabel *mimeTypeLabel =
new QLabel(tr(
"MIME types:"), currentItem);
19 mimeTypeCombo =
new QComboBox(currentItem);
20 QLabel *dataLabel =
new QLabel(tr(
"Data:"), currentItem);
21 dataInfoLabel =
new QLabel(
"", currentItem);
23 previousItems =
new QListWidget(centralWidget);
26 connect(clipboard, &QClipboard::dataChanged,
27 this, &ClipWindow::updateClipboard);
30 QVBoxLayout *currentLayout =
new QVBoxLayout(currentItem);
31 currentLayout->addWidget(mimeTypeLabel);
32 currentLayout->addWidget(mimeTypeCombo);
33 currentLayout->addWidget(dataLabel);
34 currentLayout->addWidget(dataInfoLabel);
35 currentLayout->addStretch(1);
37 QHBoxLayout *mainLayout =
new QHBoxLayout(centralWidget);
38 mainLayout->addWidget(currentItem, 1);
39 mainLayout->addWidget(previousItems);
41 setCentralWidget(centralWidget);
42 setWindowTitle(tr(
"Clipboard"));
48 mimeTypeCombo->clear();
50 QStringList formats = clipboard->mimeData()->formats();
51 if (formats.isEmpty())
54 for (
const auto &format : formats) {
55 QByteArray data = clipboard->mimeData()->data(format);
60 mimeTypeCombo->addItems(formats);
62 int size = clipboard->mimeData()->data(formats[0]).size();
63 QListWidgetItem *newItem =
new QListWidgetItem(previousItems);
64 newItem->setText(tr(
"%1 (%2 bytes)").arg(formats[0]).arg(size));
66 updateData(formats[0]);