Skip to content

Commit

Permalink
fix: 修复上游filedrag.conf问题
Browse files Browse the repository at this point in the history
将FileDrag中的dbus改为session级别

Log:
Bug: https://pms.uniontech.com/zentao/bug-view-78217.html
Change-Id: I721040c68a9a351e57f50d4ca1b9ba00b5de1a80
  • Loading branch information
Chen Bin committed May 7, 2021
1 parent c0f2e1e commit b26b6ac
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
22 changes: 11 additions & 11 deletions src/filedrag/dfiledragclient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,19 +126,19 @@ DFileDragClient::DFileDragClient(const QMimeData *data, QObject *parent)
}

if (!DFileDragClientPrivate::ifacemap.contains(d->service)) {
QDBusConnection sysbus(QDBusConnection::systemBus());
d->iface = QSharedPointer<QDBusInterface>(new QDBusInterface(d->service, DND_OBJPATH, DND_INTERFACE, sysbus), [d](QDBusInterface* intf){
QDBusConnection sysbus(QDBusConnection::systemBus());
sysbus.disconnect(d->service, DND_OBJPATH, DND_INTERFACE, "progressChanged", "si", d->relay.data(), SLOT(progressChanged(QString, int)));
sysbus.disconnect(d->service, DND_OBJPATH, DND_INTERFACE, "stateChanged", "si", d->relay.data(), SLOT(stateChanged(QString, int)));
sysbus.disconnect(d->service, DND_OBJPATH, DND_INTERFACE, "serverDestroyed", "s", d->relay.data(), SLOT(serverDestroyed(QString)));
QDBusConnection sessionBus(QDBusConnection::sessionBus());
d->iface = QSharedPointer<QDBusInterface>(new QDBusInterface(d->service, DND_OBJPATH, DND_INTERFACE, sessionBus), [d](QDBusInterface* intf){
QDBusConnection sessionBus(QDBusConnection::sessionBus());
sessionBus.disconnect(d->service, DND_OBJPATH, DND_INTERFACE, "progressChanged", "si", d->relay.data(), SLOT(progressChanged(QString, int)));
sessionBus.disconnect(d->service, DND_OBJPATH, DND_INTERFACE, "stateChanged", "si", d->relay.data(), SLOT(stateChanged(QString, int)));
sessionBus.disconnect(d->service, DND_OBJPATH, DND_INTERFACE, "serverDestroyed", "s", d->relay.data(), SLOT(serverDestroyed(QString)));
intf->deleteLater();
DFileDragClientPrivate::ifacemap.remove(d->service);
});
DFileDragClientPrivate::ifacemap[d->service] = d->iface.toWeakRef();
sysbus.connect(d->service, DND_OBJPATH, DND_INTERFACE, "progressChanged", "si", d->relay.data(), SLOT(progressChanged(QString, int)));
sysbus.connect(d->service, DND_OBJPATH, DND_INTERFACE, "stateChanged", "si", d->relay.data(), SLOT(stateChanged(QString, int)));
sysbus.connect(d->service, DND_OBJPATH, DND_INTERFACE, "serverDestroyed", "s", d->relay.data(), SLOT(serverDestroyed(QString)));
sessionBus.connect(d->service, DND_OBJPATH, DND_INTERFACE, "progressChanged", "si", d->relay.data(), SLOT(progressChanged(QString, int)));
sessionBus.connect(d->service, DND_OBJPATH, DND_INTERFACE, "stateChanged", "si", d->relay.data(), SLOT(stateChanged(QString, int)));
sessionBus.connect(d->service, DND_OBJPATH, DND_INTERFACE, "serverDestroyed", "s", d->relay.data(), SLOT(serverDestroyed(QString)));
} else {
d->iface = DFileDragClientPrivate::ifacemap[d->service].toStrongRef();
}
Expand Down Expand Up @@ -190,9 +190,9 @@ void DFileDragClient::setTargetData(const QMimeData *data, QString key, QVariant
Q_ASSERT(checkMimeData(data));
QString service(data->data(DND_MIME_SERVICE));
QString uuid(data->data(DND_MIME_UUID));
QDBusInterface iface(service, DND_OBJPATH, DND_INTERFACE, QDBusConnection::systemBus());
QDBusInterface iface(service, DND_OBJPATH, DND_INTERFACE, QDBusConnection::sessionBus());

QDBusReply<uint> pid = QDBusConnection::systemBus().interface()->servicePid(service);
QDBusReply<uint> pid = QDBusConnection::sessionBus().interface()->servicePid(service);
if (QString::number(pid).toUtf8() != data->data(DND_MIME_PID)) {
return;
}
Expand Down
6 changes: 3 additions & 3 deletions src/filedrag/dfiledragserver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,11 +165,11 @@ DFileDragServerPrivate::DFileDragServerPrivate(DFileDragServer *q)
{
if (dbusifinst.isNull()) {
dbusif = QSharedPointer<DDndSourceInterface>(new DDndSourceInterface(), [](DDndSourceInterface *intf){
QDBusConnection::systemBus().unregisterObject(DND_OBJPATH);
QDBusConnection::sessionBus().unregisterObject(DND_OBJPATH);
intf->deleteLater();
});
dbusifinst = dbusif.toWeakRef();
QDBusConnection::systemBus().registerObject(DND_OBJPATH, DND_INTERFACE, dbusif.data(), QDBusConnection::RegisterOption::ExportAllContents);
QDBusConnection::sessionBus().registerObject(DND_OBJPATH, DND_INTERFACE, dbusif.data(), QDBusConnection::RegisterOption::ExportAllContents);
} else {
dbusif = dbusifinst.toStrongRef();
}
Expand All @@ -182,7 +182,7 @@ DFileDragServerPrivate::~DFileDragServerPrivate()

void DFileDragServerPrivate::writeMimeData(QMimeData *dest)
{
dest->setData(DND_MIME_SERVICE, QDBusConnection::systemBus().baseService().toUtf8());
dest->setData(DND_MIME_SERVICE, QDBusConnection::sessionBus().baseService().toUtf8());
dest->setData(DND_MIME_PID, QString::number(QCoreApplication::applicationPid()).toUtf8());
dest->setData(DND_MIME_UUID, uuid.toString().toUtf8());
}
Expand Down

0 comments on commit b26b6ac

Please sign in to comment.