commit
88f34f9628
|
@ -2,15 +2,20 @@
|
|||
|
||||
#include <QDebug>
|
||||
#include <QThread>
|
||||
#include <QDir>
|
||||
|
||||
static std::once_flag flag;
|
||||
static DirWatcher *global_intance = nullptr;
|
||||
|
||||
DirWatcher::DirWatcher(QObject *parent) : QObject(parent)
|
||||
DirWatcher::DirWatcher(QObject *parent)
|
||||
: QObject(parent), m_semaphore(QStringLiteral("ukui-search-dir-manager-dbus-register-sem"), 0, QSystemSemaphore::AccessMode::Open)
|
||||
{
|
||||
|
||||
m_dbusInterface = new QDBusInterface("com.ukui.search.fileindex.service",
|
||||
"/org/ukui/search/privateDirWatcher",
|
||||
"org.ukui.search.fileindex");
|
||||
m_semaphore.acquire();
|
||||
m_semaphore.release();
|
||||
if (!m_dbusInterface->isValid()) {
|
||||
qCritical() << "Create privateDirWatcher Interface Failed Because: " << QDBusConnection::sessionBus().lastError();
|
||||
return;
|
||||
|
@ -42,7 +47,7 @@ QStringList DirWatcher::currentIndexableDir()
|
|||
QDBusReply<QStringList> reply = m_dbusInterface->call("currentIndexableDir");
|
||||
if (!reply.isValid()) {
|
||||
qCritical() << "currentIndexableDir call filed!";
|
||||
return QStringList();
|
||||
return QStringList() << QString(QDir::homePath());
|
||||
}
|
||||
return reply.value();
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <QObject>
|
||||
#include <QDBusInterface>
|
||||
#include <QDBusReply>
|
||||
|
||||
#include <QSystemSemaphore>
|
||||
|
||||
class DirWatcher : public QObject
|
||||
{
|
||||
|
@ -34,6 +34,8 @@ private:
|
|||
~DirWatcher() = default;
|
||||
|
||||
QDBusInterface *m_dbusInterface = nullptr;
|
||||
|
||||
QSystemSemaphore m_semaphore;
|
||||
};
|
||||
|
||||
#endif // MOUNTDISKLISTENER_H
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
#include <QDBusError>
|
||||
#include <QDebug>
|
||||
|
||||
UkuiSearchDirManagerDbus::UkuiSearchDirManagerDbus(int &argc, char *argv[], const QString &applicationName) : QtSingleApplication (applicationName, argc, argv)
|
||||
UkuiSearchDirManagerDbus::UkuiSearchDirManagerDbus(int &argc, char *argv[], const QString &applicationName)
|
||||
: QtSingleApplication (applicationName, argc, argv), m_semaphore(QStringLiteral("ukui-search-dir-manager-dbus-register-sem"), 0, QSystemSemaphore::AccessMode::Create)
|
||||
{
|
||||
setQuitOnLastWindowClosed(false);
|
||||
setApplicationVersion(QString("v%1").arg(VERSION));
|
||||
|
@ -27,6 +28,7 @@ UkuiSearchDirManagerDbus::UkuiSearchDirManagerDbus(int &argc, char *argv[], cons
|
|||
} else {
|
||||
qWarning() << "Ukui search dir manager is running!";
|
||||
}
|
||||
m_semaphore.release();
|
||||
//parse cmd
|
||||
qDebug()<<"parse cmd";
|
||||
auto message = this->arguments().join(' ').toUtf8();
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef UKUISEARCHDIRWATCHERDBUS_H
|
||||
#define UKUISEARCHDIRWATCHERDBUS_H
|
||||
|
||||
#include <QSystemSemaphore>
|
||||
#include "qtsingleapplication.h"
|
||||
|
||||
class UkuiSearchDirManagerDbus : public QtSingleApplication
|
||||
|
@ -10,6 +11,8 @@ public:
|
|||
UkuiSearchDirManagerDbus(int &argc, char *argv[], const QString &applicationName = "ukui-search-service-dir-manager");
|
||||
protected Q_SLOTS:
|
||||
void parseCmd(QString msg, bool isPrimary);
|
||||
private:
|
||||
QSystemSemaphore m_semaphore;
|
||||
};
|
||||
|
||||
#endif // UKUISEARCHDIRWATCHERDBUS_H
|
||||
|
|
Loading…
Reference in New Issue