generic: adjust to KUrl changes

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-06-25 21:12:46 +03:00
parent cdb188800e
commit 03c195810d
5 changed files with 23 additions and 43 deletions

View file

@ -27,15 +27,16 @@
#include "historyimageitem.h"
#include "historyurlitem.h"
HistoryItem::HistoryItem(const QByteArray& uuid) : m_uuid(uuid) {
HistoryItem::HistoryItem(const QByteArray &uuid)
: m_uuid(uuid)
{
}
HistoryItem::~HistoryItem() {
HistoryItem::~HistoryItem()
{
}
HistoryItem* HistoryItem::create( const QMimeData* data )
HistoryItem* HistoryItem::create(const QMimeData *data)
{
#if 0
int i=0;
@ -45,11 +46,10 @@ HistoryItem* HistoryItem::create( const QMimeData* data )
#endif
if (KUrl::List::canDecode(data))
{
KUrl::MetaDataMap metaData;
KUrl::List urls = KUrl::List::fromMimeData(data, &metaData);
KUrl::List urls = KUrl::List::fromMimeData(data);
QByteArray bytes = data->data("application/x-kde-cutselection");
bool cut = !bytes.isEmpty() && (bytes.at(0) == '1'); // true if 1
return new HistoryURLItem(urls, metaData, cut);
return new HistoryURLItem(urls, cut);
}
if (data->hasText())
{
@ -64,7 +64,8 @@ HistoryItem* HistoryItem::create( const QMimeData* data )
return 0; // Failed.
}
HistoryItem* HistoryItem::create( QDataStream& dataStream ) {
HistoryItem* HistoryItem::create(QDataStream &dataStream)
{
if ( dataStream.atEnd() ) {
return 0;
}
@ -72,12 +73,10 @@ HistoryItem* HistoryItem::create( QDataStream& dataStream ) {
dataStream >> type;
if ( type == "url" ) {
KUrl::List urls;
QMap< QString, QString > metaData;
int cut;
int cut = 0;
dataStream >> urls;
dataStream >> metaData;
dataStream >> cut;
return new HistoryURLItem( urls, metaData, cut );
return new HistoryURLItem( urls, cut );
}
if ( type == "string" ) {
QString text;

View file

@ -24,24 +24,19 @@
#include <QCryptographicHash>
namespace {
QByteArray compute_uuid(const KUrl::List& _urls, KUrl::MetaDataMap _metaData, bool _cut ) {
QByteArray compute_uuid(const KUrl::List& _urls, bool _cut ) {
QCryptographicHash hash(KlipperHashAlgorithm);
foreach(const KUrl& url, _urls) {
hash.addData(url.toEncoded());
hash.addData("\0", 1); // Use binary zero as that is not a valid path character
}
QByteArray buffer;
QDataStream out(&buffer, QIODevice::WriteOnly);
out << _metaData << _cut;
hash.addData(buffer);
return hash.result();
}
}
HistoryURLItem::HistoryURLItem( const KUrl::List& _urls, KUrl::MetaDataMap _metaData, bool _cut )
: HistoryItem(compute_uuid(_urls, _metaData, _cut))
HistoryURLItem::HistoryURLItem( const KUrl::List& _urls, bool _cut )
: HistoryItem(compute_uuid(_urls, _cut))
, m_urls( _urls )
, m_metaData( _metaData )
, m_cut( _cut )
{
}
@ -49,7 +44,7 @@ HistoryURLItem::HistoryURLItem( const KUrl::List& _urls, KUrl::MetaDataMap _meta
/* virtual */
void HistoryURLItem::write( QDataStream& stream ) const
{
stream << QString( "url" ) << m_urls << m_metaData << (int)m_cut;
stream << QString( "url" ) << m_urls << (int)m_cut;
}
QString HistoryURLItem::text() const {
@ -58,7 +53,7 @@ QString HistoryURLItem::text() const {
QMimeData* HistoryURLItem::mimeData() const {
QMimeData *data = new QMimeData();
m_urls.populateMimeData(data, m_metaData);
m_urls.populateMimeData(data);
data->setData("application/x-kde-cutselection", QByteArray(m_cut ? "1" : "0"));
return data;
}
@ -66,10 +61,7 @@ QMimeData* HistoryURLItem::mimeData() const {
bool HistoryURLItem::operator==( const HistoryItem& rhs) const
{
if ( const HistoryURLItem* casted_rhs = dynamic_cast<const HistoryURLItem*>( &rhs ) ) {
return casted_rhs->m_urls == m_urls
&& casted_rhs->m_metaData.count() == m_metaData.count()
&& qEqual( casted_rhs->m_metaData.begin(), casted_rhs->m_metaData.end(), m_metaData.begin())
&& casted_rhs->m_cut == m_cut;
return casted_rhs->m_urls == m_urls && casted_rhs->m_cut == m_cut;
}
return false;
}

View file

@ -29,7 +29,7 @@
class HistoryURLItem : public HistoryItem
{
public:
HistoryURLItem( const KUrl::List& urls, KUrl::MetaDataMap metaData, bool cut );
HistoryURLItem( const KUrl::List& urls, bool cut );
virtual QString text() const;
virtual bool operator==( const HistoryItem& rhs) const;
virtual QMimeData* mimeData() const;
@ -40,7 +40,6 @@ public:
virtual void write( QDataStream& stream ) const;
private:
KUrl::List m_urls;
KUrl::MetaDataMap m_metaData;
bool m_cut;
};

View file

@ -285,15 +285,9 @@ KonqOperations *KonqOperations::doDrop( const KFileItem & destItem, const KUrl &
const QList<QAction*> & userActions )
{
kDebug(1203) << "dest:" << dest;
KIO::MetaData metaData;
// Prefer local urls if possible, to avoid problems with desktop:/ urls from other users (#184403)
const KUrl::List lst = KUrl::List::fromMimeData(ev->mimeData(), &metaData, KUrl::List::PreferLocalUrls);
const KUrl::List lst = KUrl::List::fromMimeData(ev->mimeData(), KUrl::List::PreferLocalUrls);
if (!lst.isEmpty()) { // Are they urls ?
//kDebug(1203) << "metaData:" << metaData.count() << "entries.";
//QMap<QString,QString>::ConstIterator mit;
//for( mit = metaData.begin(); mit != metaData.end(); ++mit ) {
// kDebug(1203) << "metaData: key=" << mit.key() << "value=" << mit.value();
//}
// Check if we dropped something on itself
KUrl::List::ConstIterator it = lst.begin();
for (; it != lst.end() ; it++) {
@ -322,7 +316,7 @@ KonqOperations *KonqOperations::doDrop( const KFileItem & destItem, const KUrl &
}
KonqOperations * op = new KonqOperations(parent);
op->setDropInfo( new DropInfo( modifiers, lst, metaData, QCursor::pos(), action, userActions ) );
op->setDropInfo( new DropInfo( modifiers, lst, QCursor::pos(), action, userActions ) );
// Ok, now we need destItem.
if ( !destItem.isNull() )
@ -620,7 +614,6 @@ void KonqOperations::doDropFileCopy()
switch ( action ) {
case Qt::MoveAction :
job = KIO::move( lst, m_destUrl );
job->setMetaData( m_info->metaData );
setOperation( job, m_method == TRASH ? TRASH : MOVE, m_destUrl );
KIO::FileUndoManager::self()->recordJob(
m_method == TRASH ? KIO::FileUndoManager::Trash : KIO::FileUndoManager::Move,
@ -628,14 +621,12 @@ void KonqOperations::doDropFileCopy()
break;
case Qt::CopyAction :
job = KIO::copy( lst, m_destUrl );
job->setMetaData( m_info->metaData );
setOperation( job, COPY, m_destUrl );
KIO::FileUndoManager::self()->recordCopyJob(job);
break;
case Qt::LinkAction :
kDebug(1203) << "lst.count=" << lst.count();
job = KIO::link( lst, m_destUrl );
job->setMetaData( m_info->metaData );
setOperation( job, LINK, m_destUrl );
KIO::FileUndoManager::self()->recordCopyJob(job);
break;

View file

@ -243,13 +243,12 @@ private:
struct DropInfo
{
DropInfo( Qt::KeyboardModifiers k, const KUrl::List & u, KIO::MetaData &m,
DropInfo( Qt::KeyboardModifiers k, const KUrl::List & u,
const QPoint& pos, Qt::DropAction a, const QList<QAction *> &actions) :
keyboardModifiers(k), urls(u), metaData(m), mousePos(pos), action(a), userActions(actions)
keyboardModifiers(k), urls(u), mousePos(pos), action(a), userActions(actions)
{}
Qt::KeyboardModifiers keyboardModifiers;
KUrl::List urls;
KIO::MetaData metaData;
QPoint mousePos;
Qt::DropAction action;
QList<QAction*> userActions;