void KStandardItemListWidget::hideEvent(QHideEvent* event)
{
    disconnect(KFileItemClipboard::instance(), SIGNAL(cutItemsChanged()),
               this, SLOT(slotCutItemsChanged()));

    KItemListWidget::hideEvent(event);
}
void KFileItemClipboard::updateCutItems()
{
    const QMimeData* mimeData = QApplication::clipboard()->mimeData();

    // mimeData can be 0 according to https://bugs.kde.org/show_bug.cgi?id=335053
    if (!mimeData) {
        m_cutItems.clear();
        emit cutItemsChanged();
        return;
    }

    const QByteArray data = mimeData->data("application/x-kde-cutselection");
    const bool isCutSelection = (!data.isEmpty() && data.at(0) == QLatin1Char('1'));
    if (isCutSelection) {
        m_cutItems = KUrl::List::fromMimeData(mimeData).toSet();
    } else {
        m_cutItems.clear();
    }
    emit cutItemsChanged();
}
void KStandardItemListWidget::showEvent(QShowEvent* event)
{
    KItemListWidget::showEvent(event);

    // Listen to changes of the clipboard to mark the item as cut/uncut
    KFileItemClipboard* clipboard = KFileItemClipboard::instance();

    const KUrl itemUrl = data().value("url").value<KUrl>();
    m_isCut = clipboard->isCut(itemUrl);

    connect(clipboard, SIGNAL(cutItemsChanged()),
            this, SLOT(slotCutItemsChanged()));
}