File indexing completed on 2024-05-12 09:55:48
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Waqar Ahmed <waqar.17a@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "tabmimedata.h" 0008 0009 #include <QDataStream> 0010 0011 TabMimeData::TabMimeData(KateViewSpace *vs, DocOrWidget d) 0012 : QMimeData() 0013 , sourceVS(vs) 0014 , doc(d) 0015 { 0016 if (doc.doc() && doc.doc()->url().isValid()) { 0017 setUrls({doc.doc()->url()}); 0018 } 0019 } 0020 0021 bool TabMimeData::hasValidData(const QMimeData *md) 0022 { 0023 bool valid = md && md->hasFormat(QStringLiteral("application/kate.tab.mimedata")); 0024 if (valid) { 0025 QByteArray data = md->data(QStringLiteral("application/kate.tab.mimedata")); 0026 QDataStream ds(data); 0027 int line = 0; 0028 int column = 0; 0029 QUrl url; 0030 ds >> line; 0031 ds >> column; 0032 ds >> url; 0033 return url.isValid(); 0034 } 0035 return false; 0036 } 0037 0038 std::optional<TabMimeData::DroppedData> TabMimeData::data(const QMimeData *md) 0039 { 0040 if (!md || !md->hasFormat(QStringLiteral("application/kate.tab.mimedata"))) { 0041 return {}; 0042 } 0043 0044 QByteArray data = md->data(QStringLiteral("application/kate.tab.mimedata")); 0045 QDataStream ds(data); 0046 TabMimeData::DroppedData d; 0047 ds >> d.line; 0048 ds >> d.col; 0049 ds >> d.url; 0050 if (!d.url.isValid()) { 0051 return {}; 0052 } 0053 return d; 0054 } 0055 0056 #include "moc_tabmimedata.cpp"