23 #include <QApplication> 26 #include <QReadLocker> 27 #include <QWriteLocker> 59 if (mode != QClipboard::Clipboard)
return;
60 bool data_available = !
isEmpty();
71 const QList<unsigned int> &track_list,
75 if (!length || !track_list.count())
return;
84 track_list, offset, offset + length - 1);
94 qApp->processEvents();
95 QApplication::clipboard()->setMimeData(buffer, QClipboard::Clipboard);
107 if (length <= 1) length = 0;
108 if (length && !signal_manager.
deleteRange(offset, length))
113 QApplication::clipboard()->mimeData(QClipboard::Clipboard),
116 if (!decoded_samples)
return false;
119 signal_manager.
selectRange(offset, decoded_samples);
126 QApplication::clipboard()->clear();
132 const QMimeData *mime_data =
133 QApplication::clipboard()->mimeData(QClipboard::Clipboard);
136 if (!mime_data)
return true;
139 foreach (
const QString &format, mime_data->formats())
void selectRange(sample_index_t offset, sample_index_t length)
static ClipBoard & instance()
Kwave::MetaDataList & metaData()
void copy(QWidget *widget, Kwave::SignalManager &signal_manager, const QList< unsigned int > &track_list, sample_index_t offset, sample_index_t length)
bool deleteRange(sample_index_t offset, sample_index_t length, const QList< unsigned int > &track_list)
void slotChanged(QClipboard::Mode mode)
static sample_index_t decode(QWidget *widget, const QMimeData *e, Kwave::SignalManager &sig, sample_index_t pos)
bool paste(QWidget *widget, Kwave::SignalManager &signal_manager, sample_index_t offset, sample_index_t length)
virtual bool encode(QWidget *widget, Kwave::MultiTrackReader &src, const Kwave::MetaDataList &meta_data)
void clipboardChanged(bool data_available)
static bool canDecode(const QString &mimetype_name)
static Kwave::ClipBoard g_clipboard